XiYan MCP Server

Official
by XGenerationLab
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables natural language queries to MySQL databases, allowing users to fetch data, list available tables, and read table contents using natural language commands, powered by XiYanSQL text-to-SQL technology.

  • Supports use of OpenAI models like GPT-3.5-turbo for processing natural language queries to SQL databases, configurable through the server settings.

目录

特征

  • 🌐 通过XiYanSQL获取自然语言数据
  • 🤖 支持通用 LLM(GPT、qwenmax)、Text-to-SQL SOTA 模型
  • 💻支持纯本地模式(安全性高!)
  • 📝 支持 MySQL 和 PostgreSQL。
  • 🖱️ 将可用表列为资源
  • 🔧 读取表格内容

预览

建筑学

在您的项目中集成此服务器有两种方式,如下图所示:左侧为远程模式,为默认模式,需要 API key 才能从服务商处访问 xiyanSQL-qwencoder-32B 模型(参见配置)。右侧为本地模式,更安全,无需 API key。

最佳实践和报告

“使用 MCP + Modelscope API-Inference 构建本地数据助手,无需编写任何代码”

“Xiyan MCP 在 Modelscope 上”

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 安装服务器,它将安装最新版本:

pip install xiyan-mcp-server

之后,您可以通过以下方式直接运行服务器:

python -m xiyan_mcp_server

但它不会提供任何功能,直到您完成以下配置。您将获得一个 yml 文件。之后,您可以通过以下方式运行服务器:

env YML=path/to/yml python -m xiyan_mcp_server

从 Smithery.ai 安装

参见@XGenerationLab/xiyan_mcp_server

未经过全面测试。

配置

您需要一个 YAML 配置文件来配置服务器。config_demo.yml 中提供了一个默认配置文件,如下所示:

model: name: "XGenerationLab/XiYanSQL-QwenCoder-32B-2412" key: "" url: "https://api-inference.modelscope.cn/v1/" database: host: "localhost" port: 3306 user: "root" password: "" database: ""

LLM 配置

Name是要使用的模型的名称, key是模型的 API Key, url是模型的 API URL。我们支持以下模型。

版本普通法学硕士(GPT、qwenmax)Modelscope 的 SOTA 模型Dashscope 的 SOTA 模型本地法学硕士
描述基础、易用性能最佳,稳定,推荐最佳性能,试用速度慢,安全性高
姓名官方型号名称(例如 gpt-3.5-turbo、qwen-max)XGenerationLab/XiYanSQL-QwenCoder-32B-2412xiyansql-qwencoder-32bxiyansql-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-sqlhttp://localhost:5090

普通法学硕士

如果要使用通用的LLM,例如gpt3.5,可以直接这样配置:

model: name: "gpt-3.5-turbo" key: "YOUR KEY " url: "https://api.openai.com/v1" database:

如果您想使用阿里巴巴的 Qwen,例如 Qwen-max,您可以使用以下配置:

model: name: "qwen-max" key: "YOUR KEY " url: "https://dashscope.aliyuncs.com/compatible-mode/v1" database:

文本到 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 的keyhttps://www.modelscope.cn/docs/model-service/API-Inference/intro然后您可以使用以下配置:

model: name: "XGenerationLab/XiYanSQL-QwenCoder-32B-2412" key: "" url: "https://api-inference.modelscope.cn/v1/"

阅读我们的模型描述以了解更多详细信息。

(2)Dashscope 版本

我们将模型部署在阿里云 DashScope 上,因此您需要设置以下环境变量: 请将您的邮箱发送给我以获取key 。( godot.lzl@alibaba-inc.com ) 在邮件中,请附上以下信息:

name: "YOUR NAME", email: "YOUR EMAIL", organization: "your college or Company or Organization"

我们会根据您的邮箱发送key 。您可以将key填写在 yml 文件中。 key有效期为 1 个月、200 次查询或其他法律限制。

model: name: "xiyansql-qwencoder-32b" key: "KEY" url: "https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sql" database:

注:此模型服务仅供试用,如需在生产中使用,请联系我们。

或者,您也可以在自己的服务器上部署模型XiYanSQL-qwencoder-32B

本地模型

注意:本地模型运行速度较慢(在我的 MacBook 上,每个查询大约需要 12 秒)。如果您需要稳定快速的服务,我们仍然建议您使用 modelscope 版本。

要在本地模式下运行 xiyan_mcp_server,您需要

  1. 至少具有 16GB RAM 的 PC/Mac
  2. 6GB磁盘空间

步骤 1:安装其他 Python 包

pip install flask modelscope torch==2.2.2 accelerate>=0.26.0 numpy=2.2.3

步骤 2:(可选)手动下载模型我们推荐使用xiyansql-qwencoder-3b 。您可以通过以下方式手动下载模型

modelscope download --model XGenerationLab/XiYanSQL-QwenCoder-3B-2502

它将占用您 6GB 的磁盘空间。

第三步:下载脚本并运行服务器。src/xiyan_mcp_server/local_xiyan_server.py

python local_xiyan_server.py

服务器将在http://localhost:5090/上运行

步骤 4:准备配置并运行 xiyan_mcp_server,config.yml 应如下所示:

model: name: "xiyansql-qwencoder-3b" key: "KEY" url: "http://127.0.0.1:5090"

至此本地模式已经准备就绪。

数据库配置

hostportuserpassworddatabase是数据库的连接信息。

您可以使用本地或任何远程数据库。目前我们支持 MySQL 和 PostgreSQL(更多方言即将推出)。

MySQL

database: host: "localhost" port: 3306 user: "root" password: "" database: ""

PostgreSQL

步骤 1:安装 Python 包

pip install psycopg2

第 2 步:准备 config.yml,如下所示:

database: dialect: "postgresql" host: "localhost" port: 5432 user: "" password: "" database: ""

请注意,对于 postgresql, dialect应该是postgresql

发射

克劳德桌面

将其添加到您的 Claude Desktop 配置文件中,参考 Claude Desktop 配置示例

{ "mcpServers": { "xiyan-mcp-server": { "command": "python", "args": [ "-m", "xiyan_mcp_server" ], "env": { "YML": "PATH/TO/YML" } } } }

克莱恩

Claude Desktop一样准备配置

在配置中添加以下命令,参考 Goose 配置示例

env YML=path/to/yml python -m xiyan_mcp_server

光标

使用与Goose相同的命令。

机智

在命令中添加以下内容:

python -m xiyan_mcp_server

添加一个环境变量:键为 YML,值是 yml 文件的路径。参考 Witsy 配置示例

它不起作用!

联系我们:鼎集团钉钉群|关注我微博

引文

如果您发现我们的工作有帮助,请随时引用我们。

@article{xiyansql, title={A Preview of XiYan-SQL: A Multi-Generator Ensemble Framework for Text-to-SQL}, author={Yingqi Gao and Yifu Liu and Xiaoxia Li and Xiaorong Shi and Yin Zhu and Yiming Wang and Shiqi Li and Wei Li and Yuntao Hong and Zhiling Luo and Jinyang Gao and Liyu Mou and Yu Li}, year={2024}, journal={arXiv preprint arXiv:2411.08599}, url={https://arxiv.org/abs/2411.08599}, primaryClass={cs.AI} }
-
security - not tested
A
license - permissive license
-
quality - not tested

模型上下文协议服务器,支持对 MySQL 数据库进行自然语言查询,由 XiYanSQL 文本到 SQL 技术提供支持。

  1. Features
    1. Preview
      1. Architecture
      2. Best practice and reports
      3. Evaluation on MCPBench
      4. Tools Preview
    2. Installation
      1. Installing from pip
      2. Installing from Smithery.ai
    3. Configuration
      1. LLM Configuration
      2. Database Configuration
    4. Launch
      1. Claude Desktop
      2. Cline
      3. Goose
      4. Cursor
      5. Witsy
    5. It Does Not Work!
      1. Citation
        ID: 38egctvcux