Poco 使用手册
快速开始

数据库 MCP 配置

使用 universal-db-mcp 让 Poco Agent 通过 MCP 访问数据库。

数据库 MCP 用于让 Poco Agent 在任务中读取数据库结构、查询数据并辅助分析业务问题。Poco 执行器镜像已预装 universal-db-mcp,通过页面向导新建的数据库连接会直接调用镜像内命令,不依赖任务启动时临时下载 npm 包。

本文只介绍 Poco 中最常用的 stdio MCP 配置方式。更多高级参数、HTTP/SSE 模式和权限说明,请查看 universal-db-mcp 仓库

配置前检查

新增数据库 MCP 前,先确认下面几点:

  1. 数据库地址能从 Executor 容器访问。
  2. localhost 表示 Executor 容器自身,不一定是宿主机或数据库容器。
  3. 生产环境建议使用只读数据库账号。
  4. 使用页面向导时,密码会在测试通过后自动加密保存,MCP 配置只保留环境变量占位符。
  5. 只给任务选择真正需要的数据库 MCP,避免工具过多影响判断。

常见网络写法:

数据库位置--host 建议
与 Executor 在同一个 Docker Compose 网络数据库服务名,例如 mysql
在宿主机上运行macOS/Windows 通常用 host.docker.internal
在内网或云数据库中使用 Executor 容器可访问的内网地址或域名

使用页面向导添加

  1. 打开能力配置中的 MCP 管理页面,点击“添加连接”。
  2. 选择“数据库”,填写连接名称和数据库类型。
  3. 填写主机、端口、数据库名、用户名和密码。
  4. 点击“测试并添加”。

Poco 会先使用本次填写的信息测试连接。只有测试通过后,才会加密保存密码、创建 MCP 并自动启用;测试失败时不会留下未完成的配置。

MySQL 配置示例

页面向导生成的配置与下面的 JSON 等价:

{
  "mcpServers": {
    "mysql-database": {
      "command": "universal-db-mcp",
      "args": [
        "--type",
        "mysql",
        "--host",
        "mysql",
        "--port",
        "3306",
        "--user",
        "readonly_user",
        "--password",
        "${MYSQL_PASSWORD}",
        "--database",
        "your_database"
      ]
    }
  }
}

mysql-database 是 MCP 内部服务名。页面向导会自动生成符合要求且不重复的名称。

字段说明:

参数说明
--type数据库类型,例如 mysqlpostgressqlite
--host数据库主机,注意这是从 Executor 容器视角访问的地址
--port数据库端口
--user数据库用户名
--password数据库密码,推荐使用环境变量占位符
--database默认连接的数据库名

需要上游 MCP 的其他参数时,可以在“添加连接”中选择“导入 JSON”。使用环境变量占位符的高级配置,需要先在环境变量页面保存对应密钥,再执行连接测试。已有的 npx universal-db-mcp 配置仍然兼容,但 npx 是否访问网络取决于容器内 npm 缓存;新建数据库连接建议使用页面向导或直接执行预装命令。

连接启用后,可以在新任务入口、会话能力栏或场景 Agent 中选择这个 MCP。

任务中可以这样提问:

请查看订单表结构,并统计最近 7 天每天的订单数量。
只做查询分析,不要修改数据。

切换数据库类型

PostgreSQL 示例:

{
  "mcpServers": {
    "postgres-database": {
      "command": "universal-db-mcp",
      "args": [
        "--type",
        "postgres",
        "--host",
        "postgres",
        "--port",
        "5432",
        "--user",
        "readonly_user",
        "--password",
        "${POSTGRES_PASSWORD}",
        "--database",
        "your_database"
      ]
    }
  }
}

SQLite 示例:

{
  "mcpServers": {
    "sqlite-database": {
      "command": "universal-db-mcp",
      "args": ["--type", "sqlite", "--database", "/workspace/data/app.db"]
    }
  }
}

SQLite 文件路径必须是 Executor 容器内可访问的路径。任务需要读取项目内 SQLite 文件时,建议放在工作区内,例如 /workspace/...

权限建议

universal-db-mcp 默认是只读模式,适合绝大多数分析任务。生产环境建议同时做到:

  • 使用只读数据库账号。
  • 不在 MCP 配置里写明文密码。
  • 不给普通分析任务启用写入权限。
  • 涉及敏感数据时,限制数据库账号可访问的库、表和字段。

如果确实要允许写操作,请先确认业务风险,再参考上游仓库的权限配置说明。

支持的数据库

数据库--type默认端口类型
MySQLmysql3306开源
PostgreSQLpostgres5432开源
Redisredis6379NoSQL
Oracleoracle1521商业
SQL Serversqlserver1433商业
MongoDBmongodb27017NoSQL
SQLitesqlite-嵌入式
达梦dm5236国产
人大金仓kingbase54321国产
GaussDBgaussdb5432国产
OceanBaseoceanbase2881国产
TiDBtidb4000分布式
ClickHouseclickhouse8123OLAP
PolarDBpolardb3306云数据库
Vastbasevastbase5432国产
HighGohighgo5866国产
GoldenDBgoldendb3306国产

更多数据库参数、传输模式和安全配置,请查看 universal-db-mcp 项目文档

On this page