项目简介

SkySQL MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端应用,旨在将大语言模型 (LLM) 的能力扩展到 SkySQL 数据库的管理和操作领域。通过标准化的 MCP 接口,该服务器允许 LLM 客户端访问 SkySQL 数据库信息、调用管理功能,并与 SkySQL 的 AI 数据库代理进行交互。

主要功能点

  • 管理 SkySQL 数据库: 支持启动新的 Serverless 数据库实例、删除现有数据库实例。
  • 查询数据库信息: 能够列出用户所有的 SkySQL 数据库服务,获取数据库的连接凭据(主机、端口、用户名、密码)。
  • 更新网络访问控制: 可以自动获取当前运行服务器的公网 IP 并将其添加到指定数据库的 IP 允许列表中,方便连接。
  • 与 AI 代理交互: 允许大语言模型通过该服务器向 SkySQL 的数据库 AI 代理提问,获取关于数据库的建议、SQL 查询等。
  • 执行 SQL 查询: 直接在指定的 SkySQL 数据库实例上执行 SQL 查询语句并返回结果。
  • 发现 AI 代理: 可以列出所有可用的 SkySQL 数据库 AI 代理及其功能描述。

安装步骤

  1. 克隆仓库: 使用 Git 克隆本项目到本地。
    git clone https://github.com/skysqlinc/skysql-mcp.git
    cd skysql-mcp
  2. 创建并激活虚拟环境: 为了隔离项目依赖,建议使用虚拟环境。
    python -m venv .venv
    source .venv/bin/activate # Windows 用户请使用: .venv\Scripts\activate
  3. 安装依赖: 安装运行服务器所需的 Python 包。
    pip install -r requirements.txt
    (如果安装了 'uv' 包管理器,也可以使用 'uv pip install -r requirements.txt',速度可能更快)
  4. 配置 SkySQL API Key: 在项目根目录下创建一个名为 '.env' 的文件,并在其中添加您的 SkySQL API Key。您可以从 SkySQL 官网获取 API Key。
    SKYSQL_API_KEY=您的_skysql_api_key_放这里

服务器配置 (供 MCP 客户端使用)

此部分信息不是让您在服务器上运行的代码,而是供您的 MCP 客户端(如 LobeChat 等支持 MCP 的 LLM 客户端)配置连接时使用的信息。MCP 客户端需要知道如何启动这个 MCP 服务器进程。

{
  "serverName": "SkySQL MCP Server",
  "command": "python",
  "args": ["src/mcp-server/server.py"]
}

参数说明:

  • 'serverName': 服务器的名称,用于在客户端界面标识。
  • 'command': 启动服务器进程的可执行文件命令。通常是 'python'。
  • 'args': 传递给 'command' 的参数列表。'["src/mcp-server/server.py"]' 指定了要运行的 Python 脚本路径。

请注意,配置 MCP 客户端时,需要确保客户端运行的环境能够访问到您安装并配置好的 'skysql-mcp' 仓库目录,并且已经设置了正确的 'SKYSQL_API_KEY' 环境变量或 '.env' 文件。

基本使用方法

  1. 启动 MCP 客户端: 启动支持 MCP 协议的 LLM 客户端(如 LobeChat)。
  2. 配置并连接 MCP 服务器: 在客户端的设置中,添加一个新的 MCP 服务器配置,使用上面提供的服务器配置信息(包括 command 和 args),并指定 'skysql-mcp' 仓库的根目录作为服务器的工作目录(如果需要)。
  3. 与服务器交互: 连接成功后,客户端会自动发现 SkySQL MCP 服务器提供的工具 (Tools) 和提示 (Prompts)。您现在可以通过自然语言或客户端提供的界面,利用这些功能与您的 SkySQL 数据库和 AI 代理进行交互。例如:
    • 询问客户端“列出我的数据库”,客户端可能会调用 'list_services' 工具并显示结果。
    • 使用某个提示来引导 LLM 调用 'launch_serverless_db' 工具来创建一个新的数据库。
    • 向 LLM 提问关于某个数据库的问题,LLM 可能会调用 'ask_agent' 工具,并指定相应的 agent ID 和问题。
    • 请求 LLM 执行特定的 SQL 查询,LLM 可能会调用 'execute_sql' 工具。

信息

分类

数据库与文件