PostgreSQL

PostgreSQL

site icon
2025.04.12 0
JavaScript数据库中间件PostgreSQL 访问数据库
mcp-server-postgres 是一个基于 Model Context Protocol 的服务,提供对 PostgreSQL 数据库的只读访问能力。该服务允许 LLMs(大型语言模型)检查数据库模式并执行只读查询。
View on GitHub

Overview

基本能力

产品定位

mcp-server-postgres 是一个数据库访问中间件,专注于为 LLMs 提供安全、只读的 PostgreSQL 数据库访问能力。

核心功能

  1. 只读查询:通过 query 工具执行只读 SQL 查询
  2. 模式发现:自动发现并暴露数据库表结构信息
  3. 事务隔离:所有查询都在 READ ONLY 事务中执行

适用场景

  • LLMs 需要访问数据库信息进行数据分析
  • 需要安全地暴露数据库结构给 AI 系统
  • 开发基于数据库信息的 AI 应用

工具列表

  • query 工具
  • 能力:执行只读 SQL 查询
  • 输入参数:sql (字符串类型的 SQL 查询)
  • 限制:所有查询都在 READ ONLY 事务中执行

  • 表模式资源

  • 提供格式:postgres://<host>/<table>/schema
  • 内容:包含列名和数据类型的 JSON 模式信息
  • 特点:自动从数据库元数据中发现

常见问题

  • 在 macOS 上使用 Docker 时,如果服务运行在主机网络上,需要使用 host.docker.internal 代替 localhost
  • 用户名和密码可以通过 URL 传递:postgresql://user:password@host:port/db-name

使用教程

使用依赖

  1. 确保已安装 Docker 或 Node.js (用于 NPX 方式)
  2. 需要有可访问的 PostgreSQL 数据库实例

安装教程

Docker 方式

docker build -t mcp/postgres -f src/postgres/Dockerfile .

NPX 方式

无需安装,直接通过 npx 运行

调试方式

  1. 检查 Docker 容器是否正常运行
  2. 验证数据库连接字符串是否正确
  3. 测试简单查询是否返回预期结果

配置示例

Docker 配置

{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run", 
        "-i", 
        "--rm", 
        "mcp/postgres", 
        "postgresql://host.docker.internal:5432/mydb"]
    }
  }
}

NPX 配置

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}

许可证

该项目遵循 MIT 开源许可条款。