目录
特征
- 🌐 通过XiYanSQL获取自然语言数据
- 🤖 支持通用 LLM(GPT、qwenmax)、Text-to-SQL SOTA 模型
- 💻支持纯本地模式(安全性高!)
- 📝 支持 MySQL 和 PostgreSQL。
- 🖱️ 将可用表列为资源
- 🔧 读取表格内容
预览
建筑学
在您的项目中集成此服务器有两种方式,如下图所示:左侧为远程模式,为默认模式,需要 API key 才能从服务商处访问 xiyanSQL-qwencoder-32B 模型(参见配置)。右侧为本地模式,更安全,无需 API key。
最佳实践和报告
“使用 MCP + Modelscope API-Inference 构建本地数据助手,无需编写任何代码”
MCPBench 评估
下图展示了 XiYan MCP 服务器在 MCPBench 基准测试中的性能表现。XiYan MCP 服务器相比 MySQL MCP 服务器和 PostgreSQL MCP 服务器均表现出色,领先幅度达 2-22 个百分点。详细实验结果可参见MCPBench及《MCP 服务器评测报告》 。
工具预览
get_data
工具提供了从数据库检索数据的自然语言接口。该服务器将使用内置模型将输入的自然语言转换为 SQL,并调用数据库返回查询结果。- 当指定特定的 table_name 时
{dialect}://{table_name}
资源允许从数据库中获取一部分样本数据以供模型参考。 {dialect}://
资源将列出当前数据库的名称
安装
从 pip 安装
需要 Python 3.11+ 版本。您可以通过 pip 安装服务器,它将安装最新版本:
如果您想从源代码安装开发版本,您可以从 github 上的源代码安装:
从 Smithery.ai 安装
参见@XGenerationLab/xiyan_mcp_server
未经过全面测试。
配置
您需要一个 YAML 配置文件来配置服务器。config_demo.yml 中提供了一个默认配置文件,如下所示:
MCP 配置
您可以将传输协议设置为stdio
或sse
。
标准输出
对于 stdio 协议,您可以像这样设置:
上交所
对于 sse 协议,您可以按如下方式设置 mcp 配置:
默认端口为8000
。您可以根据需要更改端口。默认日志级别为ERROR
。我们建议将日志级别设置为INFO
以获取更详细的信息。
其他配置如debug
、 host
、 sse_path
、 message_path
也可以自定义,但通常不需要修改它们。
LLM 配置
Name
是要使用的模型的名称, key
是模型的 API Key, url
是模型的 API URL。我们支持以下模型。
版本 | 普通法学硕士(GPT、qwenmax) | Modelscope 的 SOTA 模型 | Dashscope 的 SOTA 模型 | 本地法学硕士 |
---|---|---|---|---|
描述 | 基础、易用 | 性能最佳,稳定,推荐 | 最佳性能,试用 | 速度慢,安全性高 |
姓名 | 官方型号名称(例如 gpt-3.5-turbo、qwen-max) | XGenerationLab/XiYanSQL-QwenCoder-32B-2412 | xiyansql-qwencoder-32b | xiyansql-qwencoder-3b |
钥匙 | 服务提供商的 API 密钥(例如 OpenAI、阿里云) | modelscope 的 API 密钥 | 通过电子邮件获取 API 密钥 | “” |
网址 | 服务提供商的端点(例如“ https://api.openai.com/v1 ”) | https://api-inference.modelscope.cn/v1/ | https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sql | http://localhost:5090 |
普通法学硕士
如果要使用通用的LLM,例如gpt3.5,可以直接这样配置:
如果您想使用阿里巴巴的 Qwen,例如 Qwen-max,您可以使用以下配置:
文本到 SQL SOTA 模型
我们推荐 XiYanSQL-qwencoder-32B ( https://github.com/XGenerationLab/XiYanSQL-QwenCoder ),它是 Text-to-SQL 领域目前最优秀的模型,具体可以参考Bird benchmark 。该模型有两种使用方式,大家可以自行选择。(1) Modelscope ,(2) 阿里云 DashScope 。
(1)Modelscope版本
您需要从 Modelscope 申请一个 API-inference 的key
, https://www.modelscope.cn/docs/model-service/API-Inference/intro然后您可以使用以下配置:
阅读我们的模型描述以了解更多详细信息。
(2)Dashscope 版本
我们将模型部署在阿里云 DashScope 上,因此您需要设置以下环境变量: 请将您的邮箱发送给我以获取key
。( godot.lzl@alibaba-inc.com ) 在邮件中,请附上以下信息:
我们会根据您的邮箱发送key
。您可以将key
填写在 yml 文件中。 key
有效期为 1 个月、200 次查询或其他法律限制。
注:此模型服务仅供试用,如需在生产中使用,请联系我们。
(3)本地版本
或者,您也可以将模型XiYanSQL-qwencoder-32B部署到您自己的服务器上。更多详情,请参阅本地模型。
数据库配置
host
、 port
、 user
、 password
、 database
是数据库的连接信息。
您可以使用本地或任何远程数据库。目前我们支持 MySQL 和 PostgreSQL(更多方言即将推出)。
MySQL
PostgreSQL
步骤 1:安装 Python 包
第 2 步:准备 config.yml,如下所示:
请注意,对于 postgresql, dialect
应该是postgresql
。
发射
服务器启动
如果您想使用sse
启动服务器,您必须在终端中运行以下命令:
然后你就可以在浏览器中访问http://localhost:8000/sse来查看信息了。(默认设置,如果你的 mcp 服务器运行在其他主机/端口,则需要更改设置)
另外,如果您使用stdio
传输协议,通常需要在具体的 mcp 应用程序中声明 mcp 服务器命令,而不是在终端中启动它。不过,如果需要,您仍然可以使用此命令进行调试。
客户端设置
克劳德桌面
将其添加到您的 Claude Desktop 配置文件中,参考 Claude Desktop 配置示例
请注意,此处的 Python 命令需要 Python 可执行文件的完整路径 ( /xxx/python
);否则,将无法找到 Python 解释器。您可以使用命令which python
确定此路径。其他应用程序也一样。
Claude Desktop 目前不支持 SSE 传输协议。
克莱恩
像Claude Desktop一样准备配置
鹅
如果你使用stdio
,请在配置中添加以下命令,参考 Goose 配置示例
否则,如果您使用sse
,请将 Type 更改为SSE
并将端点设置为http://127.0.0.1:8000/sse
光标
使用类似的命令如下。
对于stdio
:
对于sse
:
机智
在命令中添加以下内容:
添加一个环境变量:键为 YML,值是 yml 文件的路径。参考 Witsy 配置示例
它不起作用!
联系我们:鼎集团钉钉群|关注我微博
其他相关链接
引文
如果您发现我们的工作有帮助,请随时引用我们。
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.Last updated -JavaScript
- -security-license-qualityA Model Context Protocol server that enables AI models to interact with MySQL databases, providing tools for querying, executing statements, listing tables, and describing table structures.Last updated -MIT License
- -security-license-qualityA Model Context Protocol server that enables AI models to interact with MySQL databases through a standardized interface, providing tools for querying, executing commands, and managing database schemas.Last updated -JavaScript
- -securityFlicense-qualityA Model Context Protocol server that enables AI models to interact with MySQL databases through natural language, supporting SQL queries, table creation, and schema exploration.Last updated -1Python