Back to MCP directory
publicPublicdnsLocal runtime

db-mcp-server

DB MCP Server是一个支持多数据库的服务器,实现了模型上下文协议(MCP),为AI助手提供结构化访问数据库的能力。它支持MySQL和PostgreSQL,可同时连接多个数据库,自动生成专用工具,并遵循清晰架构设计。

article

README

🚀 数据库管理控制台服务器

本数据库管理控制台服务器为用户提供了便捷的数据库管理方案,支持多种主流数据库,集成OpenAI的Agents SDK,具备高可用性设计,能高效稳定地进行数据库操作。

✨ 主要特性

  • 多数据库支持:支持MySQL、PostgreSQL等多种主流数据库。
  • SSE模式集成:完美兼容OpenAI的Agents SDK,支持通过SSE协议与人工智能代理交互。
  • 查询超时配置:允许为每个数据库连接单独设置查询超时时间,默认30秒。
  • 高可用性设计:内置连接池和负载均衡功能,确保数据库操作高效稳定。

🚀 快速开始

运行服务器

# 以控制台模式启动
./server -mode=console

# 以SSE模式启动(用于OpenAI代理集成)
./server -mode=sse

最基本的配置文件示例

{
    "connections": [
        {
            "id": "mysql1",
            "type": "mysql",
            "host": "mysql1",
            "port": 3306,
            "name": "db1",
            "user": "user1",
            "password": "pass1"
        }
    ]
}

💻 使用示例

基础用法

控制台操作命令 - 基本命令

  • help:显示所有可用命令。
  • query:执行SQL查询,支持超时参数。
  • describe:查看表结构信息。
  • execute:执行DML操作(如INSERT, UPDATE, DELETE)。
  • schema:获取数据库 schema 信息。
  • connections:管理数据库连接状态。

控制台操作命令 - 示例

# 执行查询操作
query mysql1 "SELECT * FROM users LIMIT 10"

# 带超时设置的查询
query mysql1 --timeout=60 "SELECT * FROM large_table"

# 查看表结构
describe mysql1 users

高级用法

OpenAI 代理 SDK 集成 - 基本集成示例

from openai import OpenAI
from agents.agent import Agent, ModelSettings
from agents.tools.mcp_server import MCPServerSse, MCPServerSseParams

# 初始化 MCP 服务器连接
db_server = MCPServerSse(
    params=MCPServerSseParams(
        url="http://localhost:9095/sse"
    ),
)

# 创建具备数据库操作能力的代理
agent = Agent(
    name="Database Assistant",
    model="gpt-4o",
    model_settings=ModelSettings(temperature=0.1),
    instructions="""
    你是一个专业的数据库助手,能够执行SQL查询、管理事务和分析表结构。
    """,
    tools=[db_server]
)

📚 详细文档

错误处理

常见错误

  • 连接超时:检查目标数据库服务是否正常运行。
  • 权限不足:确认用户拥有相应的数据库权限。
  • 语法错误:仔细检查SQL语句是否有拼写或语法问题。

日志记录

服务器默认输出日志到logs/目录,支持DEBUG、INFO、WARNING、ERROR四级日志级别。

OpenAI 代理 SDK 集成

兼容性说明

  • 支持通过SSE协议与OpenAI的GPT-4o等模型交互。
  • 提供完整的数据库工具链,包括查询、描述和执行功能。

数据库连接池配置

{
    "connections": [
        {
            "id": "mysql1",
            "type": "mysql",
            "host": "mysql1",
            "port": 3306,
            "name": "db1",
            "user": "user1",
            "password": "pass1",
            "pool_size": 5,
            "max_idle_time": 60
        }
    ]
}

表格输出格式

| 属性 | 详情 | |------|------| | 命令 | 描述 | 示例 | | query | 执行查询 | query mysql1 "SELECT * FROM users" | | describe | 查看表结构 | describe mysql1 users | | execute | 执行DML操作 | execute mysql1 "INSERT INTO users VALUES(1, 'test')" | | schema | 获取数据库 schema | schema mysql1 | | connections | 管理连接状态 | connections status |

文献记录

所有文档和设计思路均可在项目仓库中找到。

⚠️ 重要提示

使用本工具前,请确保已阅读并理解相关安全注意事项,特别是在生产环境中使用时要格外小心。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client