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

seekdb MCP Server 与 Cursor 集成

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

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

Cursor 是一款集成了 AI 技术的代码编辑器,支持多种操作系统,包括 Windows、macOS 和 Linux。

本文将展示如何使用 Cursor 与 seekdb MCP Server 集成,快速构建后端应用程序。

前提条件

  • 您已完成部署 seekdb。

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

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

    pip install uv
    uv --version
  • 下载 Cursor,根据自己的操作系统选择合适的版本进行安装。注意首次使用 Cursor 时,需要注册一个新账号或使用已有账号进行登录。登录后,可以创建新项目或打开已有项目。

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

联系 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

安装 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 模式启动 seekdb MCP Server

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

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

手动创建一个 Cursor 的工作目录,并用 Cursor 打开,后面 Cursor 生成的文件将放在这个目录下,示例的目录名为 cursor

使用快捷键 Ctrl + L(Windows)或者 Command + L(MacOS)打开聊天对话框,点击右上角的齿轮,选择 MCP Tools

1

添加并配置 MCP Servers

  1. 点击 Add Custom MCP 填写配置文件。

    2

  2. 填写配置文件,点击确认。

    {
    "mcpServers": {
    "sse-seekdb": {
    "autoApprove": [],
    "disabled": false,
    "timeout": 60,
    "type": "sse",
    "url": "http://ip:port/sse"
    }
    }
    }
  3. 如配置成功,将显示 可使用 状态。

    3

测试 MCP Server

在对话框中输入提示:How many tables in the test database?,Cursor 客户端会展示即将执行的 SQL 语句。确认无误后,点击 Run tool 按钮执行。Cursor 客户端会展示 test 库中的所有表名称,这表明我们已经成功连接到 seekdb。

4

使用 FastAPI 快速创建 RESTful API 风格的项目

你可以使用 FastAPI 快速创建 RESTful API 风格的项目。FastAPI 是一个 Python 的 Web 框架,可以快速构建 RESTful API。

  1. 创建 customer 表

    在对话框中输入提示:Create a "customer" table with "ID" as the primary key and containing fields such as "name", "age", "telephone", and "location",确认 SQL 语句后,点击 Run tool 按钮执行。

    5

  2. 插入测试数据

    在对话框中输入提示:Insert 10 pieces of data into the customer table,确认 SQL 语句后,点击 Run tool 按钮执行。插入成功后,会有 Done! Here are the 10 customer records inserted: 的提示。

    6

  3. 创建 FastAPI 项目

    在对话框中输入提示:Create a FastAPI project on the customer table,点击 Run tool 按钮执行。

    7

    此步骤将自动生成多个文件。建议首次使用时选择 全部接受,因为 AI 生成的文件内容可能具有不确定性,后续可根据实际需求进行调整。

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

    在 .env 文件内配置 seekdb 连接信息。

    8

  5. 安装项目依赖

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

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

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

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

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

    curl http://127.0.0.1:8000/customers

    返回结果如下:

    [{"name":"John Smith","age":32,"telephone":"555-0101","location":"New York, NY","ID":1},{"name":"Emily Johnson","age":28,"telephone":"555-0102","location":"Los Angeles, CA","ID":2},{"name":"Michael Chen","age":45,"telephone":"555-0103","location":"San Francisco, CA","ID":3},{"name":"Sarah Williams","age":36,"telephone":"555-0104","location":"Chicago, IL","ID":4},{"name":"David Brown","age":29,"telephone":"555-0105","location":"Houston, TX","ID":5},{"name":"Jessica Lee","age":41,"telephone":"555-0106","location":"Phoenix, AZ","ID":6},{"name":"Robert Garcia","age":55,"telephone":"555-0107","location":"Philadelphia, PA","ID":7},{"name":"Amanda Martinez","age":23,"telephone":"555-0108","location":"San Antonio, TX","ID":8},{"name":"Christopher Wilson","age":38,"telephone":"555-0109","location":"San Diego, CA","ID":9},{"name":"Nicole Taylor","age":31,"telephone":"555-0110","location":"Dallas, TX","ID":10}]