使用FastMCP构建MySql Mcp Server,支持Streamable HTTP, STDIO, SSE
Project description
MySQL MCP Xu
项目简介
MySQL MCP Xu 是一个基于 FastMCP 的 MySQL MCP Server项目,提供了一个安全、高效的接口来执行 SQL 操作。该项目支持多种权限控制(读、写、管理员),并通过工具函数实现了表结构查询、索引信息获取、健康状态监控等功能。
目录结构
.
├── src
│ └── mysql_mcp_xu
│ ├── __init__.py
│ ├── config.py
│ └── mcp_server.py
├── README.md
└── pyproject.toml
快速开始
- 安装:
pip install mysql-mcp-xu - 执行命令的目录创建一个
.env文件,内容如下:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
MYSQL_ROLE=r # 可选值: r, w, a
- 启动命令:
- STDIO:uv run -m mysql_mcp_xu.mcp_server
- Streamable HTTP: uv run -m mysql_mcp_xu.mcp_server sh
- SSE: uv run -m mysql_mcp_xu.mcp_server sse
- 使用 MCP 客户端连接服务并执行 SQL 操作。
功能特性
- SQL 执行:支持执行多条 SQL 语句,并返回结果。
- 权限控制:根据角色(读、写、管理员)限制 SQL 操作。
- 表结构查询:获取指定表的字段名、字段注释等信息。
- 索引信息获取:获取指定表的索引名、索引字段、索引类型等信息。
- 健康状态监控:获取 MySQL 的健康状态,包括连接数、查询次数、缓冲池使用情况等。
权限控制
权限控制通过 PERMISSIONS 字典实现,支持以下角色:
r:只读权限,允许执行SELECT,SHOW,DESCRIBE,EXPLAIN,USE操作。w:读写权限,允许执行SELECT,SHOW,DESCRIBE,EXPLAIN,INSERT,UPDATE,DELETE,USE操作。a:管理员权限,允许执行所有操作,包括CREATE,ALTER,DROP,TRUNCATE等。
工具函数
execute_sql: 执行 SQL 语句并返回结果,SELECT语句没有LIMIT时,自动在sql后加LIMIT 1000。get_table_structure: 获取指定表的字段信息。get_table_indexes: 获取指定表的索引信息。search_table_by_chinese: 根据表中文名或表描述搜索数据库中对应的表名。get_mysql_health: 获取 MySQL 的健康状态。
部署方式
使用 uvx 部署
在 MCP 配置文件中添加如下配置,以使用 uvx 部署 MySQL MCP Xu 服务:
STDIO
{
"mcpServers": {
"mysql-mcp-xu": {
"command": "uvx",
"args": [
"mysql-mcp-xu"
],
"env": {
"MYSQL_HOST": "",
"MYSQL_PORT": "3306",
"MYSQL_USER": "",
"MYSQL_PASSWORD": "",
"MYSQL_DATABASE": "",
"MYSQL_ROLE": "r",
}
}
}
}
Streamable HTTP
{
"mcpServers": {
"mysql-mcp-xu": {
"name": "mysql-mcp-xu",
"type": "streamableHttp",
"description": "",
"isActive": true,
"baseUrl": "http://localhost:9009/mcp"
}
}
}
SSE
{
"mcpServers": {
"mysql-mcp-xu": {
"name": "mysql-mcp-xu",
"description": "",
"isActive": true,
"baseUrl": "http://localhost:9009/sse"
}
}
}
使用 uv 部署
{
"mcpServers": {
"mysql-mcp-xu": {
"command": "uv",
"args": [
"--directory",
"D:/mysql-mcp-xu/src/mysql_mcp_xu",
"run",
"-m",
"mcp_server"
]
}
}
}
Streamable HTTP
{
"mcpServers": {
"mysql-mcp-xu": {
"command": "uv",
"args": [
"--directory",
"D:/mysql-mcp-xu/src/mysql_mcp_xu",
"run",
"-m",
"mcp_server",
"sh"
]
}
}
}
sse
{
"mcpServers": {
"mysql-mcp-xu": {
"command": "uv",
"args": [
"--directory",
"D:/mysql-mcp-xu/src/mysql_mcp_xu",
"run",
"-m",
"mcp_server",
"sse"
]
}
}
}
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
mysql_mcp_xu-0.0.8.tar.gz
(62.9 kB
view details)
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 mysql_mcp_xu-0.0.8.tar.gz.
File metadata
- Download URL: mysql_mcp_xu-0.0.8.tar.gz
- Upload date:
- Size: 62.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0cde5bf12a645b2c13857b7eb4b0a1b4f85584f53cda6f2f0dee07cb9e2e89d
|
|
| MD5 |
4e9c2db622441d3ded3683919fff4b04
|
|
| BLAKE2b-256 |
89adf7030aeb4b3e013777f59eb83911f3bffee8881a799e282939067424a857
|
File details
Details for the file mysql_mcp_xu-0.0.8-py3-none-any.whl.
File metadata
- Download URL: mysql_mcp_xu-0.0.8-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ed7d22326d8183f34be2c0ff906c3f19ca42b3db3e5a91d7a020d523454191b
|
|
| MD5 |
c9ba8f4e92fe8d903c283c1de05b70e0
|
|
| BLAKE2b-256 |
865a24f12e7255c0f761ac35c08d8de8d282d2f417d76353f8cb87b6394a0a86
|