Token导航 LogoToken导航TokenDH.com
Customgpt Mysql MCP logo
数据服务未说明官方级别未说明来源级核验

Customgpt Mysql MCP

MCP Server

一个基于Model Context Protocol的MySQL查询服务器,提供只读SQL执行、表结构查询和自动模式快照功能,适用于需要安全访问MySQL数据库的场景。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
JavaScript数据库工具数据分析

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

authentichamza

提供方

authentichamza

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MySQL MCP服务器(FastMCP风格)

一个模型上下文协议服务器,它镜像了困惑HTTP传输,但对用户提供的MySQL URL执行只读SQL。该服务器重用来自 @modelcontextprotocol/sdk,因此它可以在本地或Fly.io或Heroku等平台上运行,并可供任何符合MCP的客户端使用。

特性

  • mysql_query:运行带有自动写保护和定时信息的只读SQL(SELECT/SHOW/DESCRIBE/EXPLAIN)。
  • list_tables:枚举嵌入在数据库中的用户表 mysql_url,包括行数、存储统计数据和内联 columns 每个表的数组;始终先运行此程序,以便您可以复制的确切表名 mysql_query.
  • 自动架构快照:当会话初始化时 Authorization: Bearer (或默认的MySQL URL),服务器获取一次表/列元数据,缓存它,并将摘要注入MCP系统指令中,这样工具就可以知道结构,而无需发出 list_tables 反复。
  • 通过接受连接信息 mysql_url 论点 Authorization: Bearer 所以秘密永远不必写入磁盘。
  • 为每个MCP会话缓存承载派生的URL,因此SSE/可流式传输客户端只需发送一次标头。
  • 暴露 /mcp 流式HTTP传输加上轻量级REST助手(/tools, /tools/call, /health).

配置

变量默认值描述
PORT3333REST和MCP端点的HTTP端口。
HOST0.0.0.0要绑定的接口
MYSQL_MCP_SERVER_NAMEcustomgpt/mysql-mcpMCP客户端显示的标识符。
MYSQL_MCP_SERVER_VERSION0.1.0向客户端报告的版本字符串。
MCP_DEFAULT_MYSQL_URL_取消设置_当两者都没有使用时,使用可选的回退MySQL URL mysql_url 也不存在授权标头。
MYSQL_QUERY_TIMEOUT_MS60000连接和查询超时(毫秒)。
MYSQL_SCHEMA_MAX_TABLES12缓存模式快照中包含的最大表数(以保持指令紧凑)。
MYSQL_SCHEMA_MAX_COLUMNS12架构快照中每个表的最大列数。

创建一个 .env 文件(或在运行时注入env-vars)中包含任何机密,例如:

HOST=0.0.0.0
PORT=3333
MCP_DEFAULT_MYSQL_URL=mysql://user:pass@db.internal:3306/sandbox
MYSQL_QUERY_TIMEOUT_MS=60000

安装和本地开发

npm install
npm run build
npm start

服务器日志 MySQL MCP server listening on http://0.0.0.0:3333。可用的辅助端点:

  • GET / –服务元数据+工具名称
  • GET /health –正常运行时间和状态
  • GET /tools –工具定义
  • POST /tools/call –在没有完整MCP客户端的情况下调用工具
  • POST|GET|DELETE /mcp –MCP的流式HTTP传输

通过REST调用工具

curl -X POST http://localhost:3333/tools/call \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer mysql://user:pass@host:3306/db" \
  -d '{
        "name": "mysql_query",
        "arguments": {
          "sql": "SELECT * FROM users LIMIT 5"
        }
      }'

# List the available tables (each entry now includes a columns array)
curl -X POST http://localhost:3333/tools/call \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer mysql://user:pass@host:3306/db" \
  -d '{"name":"list_tables"}'

Use the table names from `list_tables` verbatim when crafting `mysql_query` statements to avoid typos.

> **Heads-up:** include the target database in your `mysql_url` (e.g., `mysql://user:pass@host:3306/analytics`) so `list_tables` can scope its output properly.

### Using the MCP Transport

Any MCP client that supports the Streamable HTTP transport can connect:

import { ClientSession } from "mcp"; import { streamablehttp_client } from "mcp/client/streamable_http";

const url = "http://localhost:3333/mcp";

const main = async () => { const headers = { Authorization: "Bearer mysql://user:pass@host:3306/db" };

const [read, write, close] = await streamablehttp_client(url, { headers }); const session = new ClientSession(read, write); await session.initialize(); const tools = await session.list_tools(); await close(); };

main();


## 部署说明

- 适用于Node.js 18+。
- 除此之外,没有捆绑数据库驱动程序 `mysql2`,因此目标数据库必须使用MySQL协议。
- 所有查询都以显式方式运行 `START TRANSACTION` / `ROLLBACK` 块与 `SET SESSION TRANSACTION READ ONLY` 以防止突变。
- 每个MCP会话都会缓存授权标头,并在会话关闭时丢弃。

目录标签

目录标签

JavaScript数据库工具数据分析MySQL查询本地部署只读SQL模式快照MCP协议

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP