跳到主要内容
版本:V1.0.0

seekdb MCP Server 与 Claude Code 集成

MCP(Model Context Protocol) 是 Anthropic 公司于 2024 年 11 月推出并开源,旨在实现大语言模型与外部工具或数据源交互的协议。通过 MCP,用户不需要将大模型的输出手动复制执行,大模型可以直接指挥工具执行相应的动作(Action)。

MCP Server 通过 MCP 协议提供了大模型与 seekdb 交互的能力,可以执行 SQL 语句。通过合适的客户端可以快速搭建项目原型,已在 github 上开源。

Claude Code 是 Anthropic 公司推出的一款 AI 编程工具,它是一个运行在终端中的智能编码助手,可以帮助开发者快速的将想法转化为高质量代码。

本文使用 Claude Code,展示如何通过 seekdb MCP Server 快速构建一个后端应用。

前提条件

  • 您已完成部署 seekdb。

  • 安装 Python 3.11 及以上版本 和相应 pip。如果您的机器上 Python 版本较低,可以使用 Miniconda 来创建新的 Python 3.11 及以上的环境,具体可参考 Miniconda 安装指南

  • 安装 Python 包管理器 uv。安装完成后,可使用 uv --version 命令验证安装是否成功:

    pip install uv
    uv --version
  • Claude Code 安装:

    1. 使用 Visual Studio Code 安装 Claude Code 插件,插件名称为 Claude Code for VS Code

      1

    2. Visual Studio Code 配置 Claude Code。

      配置 Claude Code 第三方 API 信息、打开 Claude Code: Use Terminal

      export ANTHROPIC_BASE_URL=YOUR_BASE_URL
      export ANTHROPIC_API_KEY=YOUR_API_KEY
      export ANTHROPIC_MODEL=YOUR_MODE

      2

    3. 测试链接。

      3

步骤一:获取数据库连接信息

联系 seekdb 部署人员或者管理员获取相应的数据库连接串,例如:

mysql -h$host -P$port -u$user_name -p$password -D$database_name

参数说明:

  • $host:提供 seekdb 连接 IP 地址。

  • $port:提供 seekdb 连接端口,默认是 2881。

  • $database_name:需要访问的数据库名称。

    提示

    连接的用户需要拥有该数据库的 CREATEINSERTDROPSELECT 权限。

  • $user_name:提供数据库连接账户。

  • $password:提供账户密码。

步骤二:配置 seekdb MCP Server

这里以 Visual Studio Code 为例,展示如何配置 seekdb MCP Server。

安装 seekdb MCP Server

执行下面的命令进行安装:

pip install seekdb-mcp-server

配置 seekdb 服务器环境变量到 .env 文件中

在当前目录下创建一个名为 .env 的文件,并添加以下内容:

vi .env

SEEKDB_HOST=localhost # 数据库主机
SEEKDB_PORT=2881 # 数据库端口(默认:2881)
SEEKDB_USER=your_username
SEEKDB_PASSWORD=your_password
SEEKDB_DATABASE=your_database

以 SSE 模式启动

env $(cat .env | xargs) uvx seekdb-mcp-server --transport sse --port 8000 --host 0.0.0.0

打开 VS Code 工具终端,执行 claude mcp add-json 命令

claude mcp add-json sse-seekdb '{
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "sse",
"url": "http://ip:port/sse"
}'

创建 Claude Code 客户端的工作目录并配置 seekdb MCP Server

手动在本地创建一个 Visual Studio Code 的工作目录,并用 Visual Studio Code 打开,后面 Claude Code 生成的文件将放在这个目录下,示例的目录名为 claudecode

验证是否可以连接数据库。输入提示 How many tables in the test database? ,Claude Code 会展示即将执行的 SQL 语句,并输出查询结果:

4

Claude Code 会展示当前 test 库中的表数量,说明可以正常连接 seekdb。

步骤三:使用 FastAPI 快速创建 RESTful API 风格的项目

FastAPI 是一个 Python的 Web 框架,可以快速构建 RESTful API。

  1. 创建表。

    输入提示 Create a "customer" table with "ID" as the primary key and containing fields such as "name", "age", "telephone", and "location" : 。

    5

  2. 插入测试数据。

    输入提示 Insert 10 pieces of data into the customer table

    6

  3. 创建 FastAPI 项目。

    输入提示 Create a FastAPI project on the customer table,自动生成了多个文件。如果有问题再进行二次修改。

    7

  4. FastAPI 项目配置数据库连接信息

    8

  5. 安装项目依赖

    执行如下命令,安装项目依赖:

    cd customer_api
    pip install -r requirements.txt
  6. 启动 FastAPI 项目

    执行如下命令,启动 FastAPI 项目:

    source .env
    uvicorn main:app --reload
  7. 查看表中数据

    在命令行中运行如下命令,或者使用其他请求工具,查看表中的数据:

    curl http://127.0.0.1:8000/customers

    返回结果如下:

    [{"name":"Alice Johnson","age":28,"telephone":"555-0101","location":"New York","ID":1},{"name":"Bob Smith","age":35,"telephone":"555-0102","location":"Los Angeles","ID":2},{"name":"Carol White","age":42,"telephone":"555-0103","location":"Chicago","ID":3},{"name":"David Brown","age":31,"telephone":"555-0104","location":"Houston","ID":4},{"name":"Eve Davis","age":26,"telephone":"555-0105","location":"Phoenix","ID":5},{"name":"Frank Miller","age":39,"telephone":"555-0106","location":"Philadelphia","ID":6},{"name":"Grace Lee","age":33,"telephone":"555-0107","location":"San Antonio","ID":7},{"name":"Henry Taylor","age":45,"telephone":"555-0108","location":"San Diego","ID":8},{"name":"Ivy Martinez","age":29,"telephone":"555-0109","location":"Dallas","ID":9},{"name":"Jack Wilson","age":37,"telephone":"555-0110","location":"San Jose","ID":10}]