项目简介
本项目提供一个 Web 图形界面(GUI),帮助用户批量生成基于 Python 的 MCP 服务器脚本。这些生成的脚本专门用于连接 MySQL 数据库,并通过 MCP 协议向 LLM 客户端提供数据库查询能力。每个生成的脚本同时支持 'stdio'(本地管道)和 'SSE/HTTP'(远程访问)两种传输方式。
主要功能点
- 生成 MCP 服务器脚本: 通过简单的 Web 表单配置,自动生成可直接运行的 Python MCP 服务器文件。
- MySQL 集成: 生成的服务器能够连接指定的 MySQL 数据库,执行查询并将结果返回给 LLM。
- 工具定义: 支持将特定的 SQL 查询定义为 MCP 工具,LLM 可以通过调用这些工具来获取数据。
- 灵活的传输支持: 生成的服务器脚本同时支持 stdio(适合本地或容器内调用)和 SSE/HTTP(适合远程访问或 MCP Inspector)两种 MCP 标准传输协议。
- 自定义格式化: 可以编写简单的 Python 代码片段来定制 SQL 查询结果的输出格式,以适应 LLM 的需求。
安装步骤
- 确保你的系统已安装 Python 3.8 或更高版本。
- 克隆或下载本项目代码。
- 打开终端或命令行,进入项目根目录。
- 创建并激活 Python 虚拟环境(推荐):
- 'python -m venv .venv'
- Windows: '.venv\Scripts\activate'
- macOS / Linux / WSL: 'source .venv/bin/activate'
- 安装项目依赖:
- 'pip install -r requirements.txt'
服务器配置(供 MCP 客户端使用)
你生成的 MCP 服务器脚本需要被 MCP 客户端(如 MCP Inspector 或其他 LLM 应用)调用和连接。客户端通常需要配置服务器的名称、传输方式以及如何启动服务器。以下是根据本项目生成的脚本特点,为 MCP 客户端提供的典型配置信息:
- Server Name: 服务器名称,通常是您生成的文件名(不带 '.py' 后缀),例如:'my_server'。
- Transport: 传输协议,可选值为 'stdio' 或 'sse'。
- Command: 启动服务器的可执行命令,固定为 'python'。
- Arguments: 传递给 Command 的参数列表,一个包含字符串的数组。
- 如果选择 'stdio' 传输:Arguments 为 '["你的服务器文件名.py"]',例如 '["my_server.py"]'。
- 如果选择 'sse' 传输:Arguments 为 '["你的服务器文件名.py", "--http"]',例如 '["my_server.py", "--http"]'。
- URL (仅 SSE 传输需要): 服务器监听的地址。
- 默认情况下,使用 '--http' 启动的服务器会监听 'http://0.0.0.0:9000',提供 SSE 服务的路径是 '/sse'。
- 默认 URL 为 'http://127.0.0.1:9000/sse'。请注意,如果在服务器启动时设置了 'MCP_PORT' 环境变量,端口会相应改变。
基本使用方法
- 启动生成器:
- 在项目根目录激活虚拟环境后,运行 'python app.py'。
- 访问 Web 界面:
- 在浏览器中打开 'http://127.0.0.1:5000'。
- 生成基础服务器脚本:
- 在 Web 界面上输入你的 MySQL 连接信息和想要生成的 Python 文件名(例如 'my_server.py')。
- 点击“生成”。这将在项目根目录生成一个包含基本结构和 'check_database' 工具的服务器脚本。
- 添加自定义工具:
- 在 Web 界面上导航到“新增工具函数”页面。
- 选择你刚刚生成的服务器文件。
- 填写工具名、说明、SQL 语句(使用 '%s' 作为参数占位符)和可选的输出格式代码。
- 点击“保存”,工具将被添加到你的服务器脚本中。可以重复此步骤添加更多工具。
- 运行生成的服务器:
- 打开一个新的终端或命令行窗口,激活虚拟环境。
- 进入生成脚本所在的目录。
- 运行脚本:
- Stdio 模式(默认):'python 你的服务器文件名.py'
- SSE/HTTP 模式:'python 你的服务器文件名.py --http' (默认监听 '0.0.0.0:9000')
- 连接 MCP 客户端:
- 使用 MCP Inspector 或其他支持 MCP 协议的客户端。
- 根据第 4 步的说明,配置客户端以连接你正在运行的服务器(选择对应的传输方式和提供正确的启动命令/URL)。
- 连接成功后,你定义的工具将显示在客户端中,你可以调用它们来测试功能。
信息
分类
开发者工具