SQLAlchemy MCP Server for manipulating databases
Project description
项目说明
- 模型上下文协议(MCP)服务器,允许您操作 MySQL 和 SQLite 数据库
- 项目名称:sqlalchemy_fastmcp
- 当前版本:v1.2.6
- 阅读当前目录下的 .env 文件,或者通过环境变量配置:
- DB_TYPE: 数据库类型(支持 mysql、sqlite)
- MySQL 配置:
- DB_HOST: 数据库地址
- DB_PORT: 数据库端口
- DB_USER: 数据库用户名
- DB_PASS: 数据库密码
- DB_NAME: 数据库名称 (可选)
- DB_CHARSET: 数据库编码 (可选)
- SQLite 配置:
- DB_NAME: 数据库文件路径(例如:/path/to/database.db 或 database.db)
- author: ferock
- email: ferock@gmail.com
技术参数
- python 3.11
- 框架使用 fastmcp 2.10.6
- 虚拟目录: .venv
目录说明
- test/ 测试目录 python 用 unittest 写单元测试,文件格式 test_<测试功能>.py
- 测试用 docx 文件:test/office_files/模版/QN-QR-24-01-003 进料检验单(结构件).docx
- src/ 源代码目录
- 下面的文件是一个功能对应一个 py 文件
- pyproject.toml 项目配置文件
- VERSION 版本号文件
- build_and_publish_uv.sh 打包命令
- .env 测试用的环境变量
配置说明
方法一:.env 文件配置
MySQL 配置示例:
DB_TYPE=mysql
DB_HOST=192.168.1.73
DB_PORT=3306
DB_USER=your_username
DB_PASS=your_password
DB_NAME=your_database
DB_CHARSET=utf8mb4
SQLite 配置示例:
DB_TYPE=sqlite
DB_NAME=/path/to/database.db
或使用相对路径:
DB_TYPE=sqlite
DB_NAME=database.db
方法二:环境变量配置
MySQL 环境变量:
export DB_TYPE=mysql
export DB_HOST=1.1.1.1
export DB_PORT=3306
export DB_USER=your_username
export DB_PASS=your_password
export DB_NAME=your_database
export DB_CHARSET=utf8mb4
SQLite 环境变量:
export DB_TYPE=sqlite
export DB_NAME=/path/to/database.db
方法三:MCP 配置中的环境变量
MySQL 配置示例:
{
"mcpServers": {
"sqlalchemy-mcp": {
"command": "uvx",
"args": [
"--from", "sqlalchemy_fastmcp==1.2.6", "sqlalchemy-mcp-server", "stdio"],
"env": {
"DB_TYPE": "mysql",
"DB_HOST": "1.1.1.1",
"DB_PORT": "3306",
"DB_USER": "your_username",
"DB_PASS": "your_password",
"DB_NAME": "your_database",
"DB_CHARSET": "utf8mb4"
}
}
}
}
SQLite 配置示例:
{
"mcpServers": {
"sqlalchemy-mcp-sqlite": {
"command": "uvx",
"args": [
"--from", "sqlalchemy_fastmcp==1.2.6", "sqlalchemy-mcp-server", "stdio"],
"env": {
"DB_TYPE": "sqlite",
"DB_NAME": "/path/to/database.db"
}
}
}
}
权限控制
为了防止误操作,系统默认禁用所有数据修改操作。您可以通过环境变量来控制权限:
ALLOW_INSERT_OPERATION: 控制INSERT操作权限(默认: false)- 影响操作:
INSERT INTO,REPLACE INTO,LOAD DATA
- 影响操作:
ALLOW_UPDATE_OPERATION: 控制UPDATE/ALTER操作权限(默认: false)- 影响操作:
UPDATE SET,ALTER TABLE/DATABASE,CREATE TABLE/DATABASE/INDEX,TRUNCATE TABLE
- 影响操作:
ALLOW_DELETE_OPERATION: 控制DELETE/DROP操作权限(默认: false)- 影响操作:
DELETE FROM,DROP TABLE/DATABASE/VIEW/PROCEDURE/FUNCTION
- 影响操作:
注意: SELECT等查询操作始终被允许,不受权限控制影响。
功能
- show_databases - 显示数据库列表
- get_database_info - 获取数据库配置信息
- test_database_connection - 测试数据库连接
- show_tables - 显示当前数据库内数据表的列表
- exec_query - 执行 SQL 查询
发布
bash ./build_and_publish_uv.sh
使用
使用 uvx 命令可以直接运行,无需预先安装,uvx 会自动处理依赖和安装:
方法一:指定版本号(推荐)
uvx --from sqlalchemy_fastmcp==1.2.6 sqlalchemy-mcp-server stdio
方法二:使用最新版本
uvx --from sqlalchemy_fastmcp sqlalchemy-mcp-server stdio
注意: 必须在命令末尾添加 stdio 子命令来启动 MCP 服务器。
MCP 参考命令
以下命令可以直接在终端中运行以启动 MCP 服务器:
uvx --from sqlalchemy_fastmcp==1.2.6 sqlalchemy-mcp-server stdio
此命令会:
- 从 Nexus3 仓库安装 sqlalchemy_fastmcp 包(版本 1.2.6)
- 自动处理所有依赖关系
- 启动 sqlalchemy-mcp-server 在 stdio 模式下运行
- 无需预先安装包,uvx 会自动下载和运行
数据库支持
MySQL
- 完整支持所有 MySQL 功能
- 支持查看数据库列表、表结构、执行 SQL 查询等
- 需要配置连接信息(主机、端口、用户名、密码等)
SQLite
- 支持本地 SQLite 数据库文件
- 使用文件路径作为数据库标识
- 无需配置用户名密码等连接信息
- 支持绝对路径和相对路径
- 注意:SQLite 是单文件数据库,
show_databases功能会返回当前数据库文件信息
SSH 隧道连接 (v1.2.6+)
- set_database_source_on_ssh_tool - 通过 SSH 隧道安全连接远程数据库
- stop_ssh_tunnel_tool - 关闭 SSH 隧道
- get_ssh_tunnel_status_tool - 获取隧道状态 支持密码和密钥两种认证方式(同时提供时优先密钥),适合长运行 MCP 服务。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqlalchemy_fastmcp-1.2.8.tar.gz.
File metadata
- Download URL: sqlalchemy_fastmcp-1.2.8.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13692bb8a7b5350295a6bdd13dd0a330d1eedc17ac16d1f56e9f7a5d7c4dfe91
|
|
| MD5 |
39ade9827cf35b0d440439991190149e
|
|
| BLAKE2b-256 |
f3f2c133929dd74950c71e24a2b0ee9cd454facb8f27e48e63b297ed3c7a4e38
|
File details
Details for the file sqlalchemy_fastmcp-1.2.8-py3-none-any.whl.
File metadata
- Download URL: sqlalchemy_fastmcp-1.2.8-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd8479b7a603c9e89cbdcdece7913a67ea6cd1cbc2b47d12cfdff33fcc317407
|
|
| MD5 |
0e9b1b20d2491a6bb2b7b59177c026e4
|
|
| BLAKE2b-256 |
b46c2c0f90cbf7226b3739e9189639b483e2f89fca91a2692bf02a5af84ea72f
|