使用说明
项目简介
XiYan MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,旨在为大型语言模型(LLM)应用提供数据库上下文访问能力。该服务器基于 XiYan-SQL 技术,可以将自然语言查询转换为 SQL 语句,并从 MySQL 数据库中检索数据,从而使 LLM 能够理解和操作数据库信息。
主要功能点
- 自然语言查询数据库: 通过 'get_data_via_natural_language' 工具,用户可以使用自然语言提问,服务器会将问题转换为 SQL 查询并在配置的 MySQL 数据库上执行,最终返回查询结果。
- MySQL 表资源浏览: 通过访问 'mysql://数据库名' 资源,客户端可以获取当前数据库中所有表的名称列表,方便用户了解数据库结构。
- MySQL 表数据预览: 通过访问 'mysql://表名' 资源,客户端可以获取指定表的部分示例数据(前100行),帮助 LLM 理解表结构和数据内容。
安装步骤
- 环境准备: 确保已安装 Python 3.11 或更高版本。
- 安装软件包: 使用 pip 命令安装 'xiyan-mcp-server' 包:
pip install xiyan-mcp-server
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到 XiYan MCP Server。请根据您的实际环境修改以下配置:
{ "serverName": "xiyan-mcp-server", // 服务器名称,可以自定义 "command": "python", // 启动服务器的命令,这里使用 python "args": [ // 启动命令的参数 "-m", // 以模块方式运行 "xiyan_mcp_server" // 运行 xiyan_mcp_server 模块 ], "env": { // 环境变量配置 "YML": "PATH/TO/YOUR/CONFIG.YML" // 配置文件路径,请替换为您的 YAML 配置文件实际路径 } }
配置参数说明:
- 'serverName': MCP 服务器的名称,客户端用于标识和调用。可以根据需要自定义。
- 'command': 运行 MCP 服务器的命令,通常为 'python',假设您的 Python 环境已配置到 PATH 环境变量中。
- 'args': 传递给 'command' 的参数列表。
- '"-m"': Python 的 '-m' 参数用于以模块名运行库。
- '"xiyan_mcp_server"': 指定要运行的模块是 'xiyan_mcp_server',即安装的 Python 包。
- 'env': 环境变量配置。
- '"YML"': 指定 YAML 配置文件的路径。请务必将 '"PATH/TO/YOUR/CONFIG.YML"' 替换为您实际的 YAML 配置文件路径。 YAML 配置文件用于配置数据库连接信息和 LLM 模型信息(例如 API 密钥)。您可以参考仓库提供的 'config_demo.yml' 文件进行配置。
YAML 配置文件 (config_demo.yml) 示例:
model: name: "pre-xiyan_multi_dialect_v3" # 建议使用 XiYanSQL 模型,或根据需要配置其他 LLM 模型 key: "YOUR_API_KEY" # 您的 LLM API 密钥,如果使用 XiYanSQL 模型,请联系作者获取 url: "https://poc-dashscope.aliyuncs.com/compatible-mode/v1" # LLM API 的 URL database: host: "localhost" # MySQL 数据库主机地址 port: 3306 # MySQL 数据库端口 user: "root" # MySQL 数据库用户名 password: "YOUR_PASSWORD" # MySQL 数据库密码 database: "YOUR_DATABASE_NAME" # 默认连接的数据库名
注意:
- 您需要根据实际使用的 LLM 模型和 MySQL 数据库信息配置 'config_demo.yml' 文件,并将其路径配置在 MCP 客户端的 'env.YML' 中。
- 如果使用 XiYanSQL 模型,可能需要联系作者获取 API 密钥。
- 确保 MySQL 数据库服务已启动,并且配置的用户名、密码和数据库名是正确的。
基本使用方法
-
启动 MCP 服务器: 在配置好 YAML 文件后,MCP 服务器会在客户端发起连接时自动启动(根据您在客户端配置的 'command' 和 'args')。
-
在 MCP 客户端中调用工具和资源:
- 调用 'get_data_via_natural_language' 工具: 在客户端中,可以使用自然语言提问来调用 'get_data_via_natural_language' 工具,例如:'请查询最近一周销售额最高的商品是什么?' 服务器会将问题转换为 SQL 并在数据库中查询,返回结果。
- 访问 'mysql://数据库名' 资源: 客户端可以请求访问 'mysql://YOUR_DATABASE_NAME' 资源,以获取 'YOUR_DATABASE_NAME' 数据库中的表列表。
- 访问 'mysql://表名' 资源: 客户端可以请求访问 'mysql://YOUR_TABLE_NAME' 资源,以获取 'YOUR_TABLE_NAME' 表的示例数据。
示例:Claude Desktop 配置
如果您使用 Claude Desktop 作为 MCP 客户端,可以将上述 JSON 配置添加到 Claude Desktop 的配置文件中,即可集成 XiYan MCP Server,实现 Claude 与 MySQL 数据库的自然语言交互。
信息
分类
数据库与文件