项目简介
该项目是一个 MCP (Model Context Protocol) 服务器的实现,专注于为大型语言模型 (LLM) 提供访问 TiDB Serverless 数据库的能力。通过此服务器,LLM 客户端可以安全、便捷地查询、操作 TiDB 数据库,实现数据驱动的智能应用。
主要功能点
- TiDB Serverless 数据库连接: 支持连接到 TiDB Serverless 数据库,利用连接池高效管理数据库连接。
- 工具 (Tools) 注册与执行: 内置多种数据库操作工具,例如:
- 查看数据库表: 列出指定数据库中的所有表。
- 执行 SQL 查询: 在 TiDB 数据库上执行 SQL 查询语句,并返回结果。
- 查看建表 SQL: 获取指定表的 CREATE TABLE 语句。
- 执行 SQL 语句: 在 TiDB 数据库上执行 DML 或 DDL SQL 语句。
- 创建/删除数据库用户: 管理 TiDB 数据库用户。
- 获取数据库地址: 获取 TiDB Serverless 数据库的连接地址。
- 环境配置: 通过环境变量或 '.env' 文件灵活配置数据库连接信息。
- 标准 MCP 协议: 遵循 MCP 协议规范,易于与任何兼容 MCP 协议的 LLM 客户端集成。
安装步骤
-
克隆仓库:
git clone https://github.com/c4pt0r/mcp-server-tidb cd mcp-server-tidb -
安装依赖: 使用 'uv' 创建虚拟环境并安装项目依赖。
uv venv uv pip install -e .
服务器配置
要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是 'claude_desktop_config.json' 的配置示例:
{ "mcpServers": { "tidb": { "command": "uv", "args": [ "--directory", "/path/to/mcp-server-tidb", "run", "src/main.py" ] } } }
配置参数说明:
- '"tidb"': 服务器名称,您可以自定义。
- '"command": "uv"': 指定使用 'uv' 命令来运行服务器。
- '"args"': 启动参数列表:
- '"--directory"': 指定工作目录为仓库根目录 '/path/to/mcp-server-tidb',请替换为实际路径。
- '"run"': 'uv run' 子命令用于运行 Python 脚本。
- '"src/main.py"': 指定服务器主程序入口为 'src/main.py'。
数据库连接配置:
在运行服务器之前,您需要配置 TiDB Serverless 数据库的连接信息。可以通过以下两种方式配置:
-
环境变量: 设置以下环境变量:
- 'TIDB_HOST': TiDB 主机地址 (例如: 'gateway01.us-east-1.prod.aws.tidbcloud.com')
- 'TIDB_PORT': TiDB 端口 (默认为 '4000')
- 'TIDB_USERNAME': 数据库用户名 (例如: 'xxxxxxxxxx.<username>')
- 'TIDB_PASSWORD': 数据库密码
- 'TIDB_DATABASE': 数据库名称 (默认为 'test')
-
.env 文件: 在项目根目录下创建 '.env' 文件,并将上述环境变量写入文件,例如:
TIDB_HOST=gateway01.us-east-1.prod.aws.tidbcloud.com TIDB_PORT=4000 TIDB_USERNAME=xxxxxxxxxx.<username> TIDB_PASSWORD=your_tidb_password TIDB_DATABASE=test注意: 推荐使用 '.env' 文件管理敏感信息。
基本使用方法
-
启动 MCP 服务器: 配置好 'claude_desktop_config.json' 和数据库连接信息后,启动您的 MCP 客户端 (例如 Claude Desktop)。客户端会自动根据配置启动 'mcp-server-tidb' 服务器。
-
通过 LLM 客户端与 TiDB 交互: 在 LLM 客户端中,您可以指示 LLM 使用已注册的工具来访问和操作 TiDB 数据库。例如,您可以让 LLM 执行 SQL 查询、查看表结构或管理数据库用户等操作。
具体的工具调用方式取决于您使用的 LLM 客户端的功能和界面。通常,LLM 客户端会提供某种方式来选择和调用 MCP 服务器提供的工具。
信息
分类
数据库与文件