Skip to main content
Glama

Model Context Protocol PostgreSQL Server

by endaoment

模型上下文协议 PostgreSQL 服务器

该项目实现了一个连接到 PostgreSQL 数据库的模型上下文协议 (MCP) 服务器。它允许 AI 模型通过标准化协议与数据库进行交互。

特征

  • 使用连接池连接到 PostgreSQL 数据库
  • 实现用于 AI 模型交互的模型上下文协议
  • 提供数据库架构信息作为资源
  • 允许使用重试逻辑执行 SQL 查询
  • 妥善处理连接错误

先决条件

  • Node.js 20 或更高版本
  • PostgreSQL 数据库
  • 数据库的访问凭据

安装

  1. 克隆此存储库
  2. 安装依赖项:
npm install

配置

服务器从项目根目录中的.env文件读取数据库凭据。您需要将数据库凭据以 JSON 字符串的形式添加到DB_CREDENTIALS环境变量中:

  1. 在项目根目录中创建一个.env文件:
touch .env
  1. 使用您的实际数据库凭据添加以下行:
export DB_CREDENTIALS='{"DB_USER":"your-username","DB_PASSWORD":"your-password","DB_HOST":"your-host","DB_PORT":"5433","DB_NAME":"your-database"}'

回退到 Shell 配置文件

如果.env文件不存在或未找到 credentials 变量,服务器将按以下顺序自动在 shell 配置文件中查找凭据:

  1. ~/.zshrc
  2. ~/.bashrc
  3. ~/.bash_profile
  4. ~/.profile

这在 shell 配置文件无法自动获取的环境中特别有用,例如 Cursor MCP 环境。

要在任何 shell 配置文件中设置凭据:

  1. 打开您喜欢的 shell 配置文件,例如:
nano ~/.zshrc # or nano ~/.bashrc
  1. 使用您的实际数据库凭据添加以下行:
export DB_CREDENTIALS='{"DB_USER":"your-username","DB_PASSWORD":"your-password","DB_HOST":"your-host","DB_PORT":"5433","DB_NAME":"your-database"}'

.env文件不可用时,服务器将自动检测并使用这些凭据。

自定义凭证变量

您还可以在启动服务器时使用--credentials-var标志来使用自定义环境变量名称而不是DB_CREDENTIALS

node server.js --credentials-var MY_CUSTOM_DB_CREDS

在这种情况下,您应该在.env文件中定义MY_CUSTOM_DB_CREDS

组合选项

您可以根据需要组合不同的命令行选项:

# Use custom credentials and enable verbose mode node server.js --credentials-var MY_CUSTOM_DB_CREDS --verbose # Short form also works node server.js -c MY_CUSTOM_DB_CREDS -v

用法

启动 MCP 服务器:

# Directly with Node.js node server.js # Or with npm npm start

日志记录选项

默认情况下,服务器以静默模式运行,仅显示错误消息。如果要查看所有日志消息,可以使用 verbose 标志:

# With verbose logging node server.js --verbose # Or with npm npm start -- --verbose

您还可以使用短标志-v

node server.js -v

服务器将:

  1. 测试数据库连接
  2. 使用 stdio 传输启动 MCP 服务器
  3. 处理来自 AI 模型的请求

与 Cursor 集成

该服务器支持模型上下文协议 (MCP) 并与 Cursor AI 集成。

自动配置

该项目包括一个预先配置的.cursor/mcp.json文件,用于在 Cursor 内自动设置。

手动配置

要手动将此服务器添加到 Cursor:

  1. 前往光标设置 → 功能 → MCP
  2. 点击“+ 添加新的 MCP 服务器”
  3. 输入以下详细信息:
    • 名称:Postgres MCP
    • 类型:stdio
    • 命令node /full/path/to/server.js

有关 MCP 与 Cursor 集成的更多信息,请参阅官方文档

可用工具

该服务器为AI模型提供以下工具:

  • query :使用重试逻辑执行 SQL 查询

资源

服务器将数据库表作为资源公开,从而允许 AI 模型:

  • 列出数据库中的所有表
  • 查看每个表的架构信息

错误处理

该服务器包括:

  • 连接重试逻辑
  • 详细的错误日志记录
  • 优雅关机处理

故障排除

连接问题

  1. 数据库连接失败
    • 检查 PostgreSQL 是否正在运行: pg_isready -h localhost -p 5433
    • 验证.env文件中的凭据是否正确
    • 确保您的 IP 地址可以访问数据库(检查 pg_hba.conf)
    • 尝试使用psql等其他工具连接来验证凭据
  2. 环境变量问题
    • 确保您的.env文件位于项目根目录中
    • 检查DB_CREDENTIALS中的 JSON 结构是否有效
    • 验证 JSON 字符串中没有多余的空格或换行符
    • 使用以下命令进行测试: node -e "console.log(JSON.parse(process.env.DB_CREDENTIALS))" < .env
  3. Node.js 版本问题
    • 检查你的 Node.js 版本: node -v
    • 此服务器需要 Node.js 20+
    • 如果使用旧版本,请安装 Node.js 20: nvm install 20 && nvm use 20

光标集成

  1. 服务器未显示在光标中
    • 确保.cursor/mcp.json文件存在且格式正确
    • 尝试重新启动 Cursor 来检测项目特定的配置
    • 检查游标日志中是否有任何错误消息
  2. “无法创建客户端”错误
    • 这通常表示服务器在启动过程中崩溃
    • 使用详细日志记录手动运行服务器以查看错误: node server.js -v
    • 检查数据库凭据是否可以在 Cursor 环境中访问
  3. 光标中没有可用工具
    • 确保服务器正常运行(检查日志)
    • 尝试单击 MCP 工具面板中的刷新按钮
    • 重新启动 Cursor 并重试

PostgreSQL 特定问题

  1. 权限被拒绝错误
    • 确保数据库用户对表具有适当的权限
    • 尝试授予所需的权限: GRANT SELECT ON ALL TABLES IN SCHEMA public TO username;
  2. “关系不存在”错误
    • 验证表是否存在: \dt tablename在 psql 中
    • 检查您是否连接到正确的数据库
    • 确保用户有权访问表所在的架构
  3. 性能问题
    • 查询结果较大可能会造成卡顿,考虑添加 LIMIT 子句
    • 检查您的数据库是否需要优化(索引、清理)

如需更多帮助,您可以使用详细日志记录( -v标志)运行服务器以查看详细的错误消息和操作日志。

执照

麻省理工学院

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

允许AI模型通过标准化协议与PostgreSQL数据库交互的服务器,提供数据库模式信息和SQL查询执行功能。

  1. 特征
    1. 先决条件
      1. 安装
        1. 配置
          1. 回退到 Shell 配置文件
          2. 自定义凭证变量
          3. 组合选项
        2. 用法
          1. 日志记录选项
        3. 与 Cursor 集成
          1. 自动配置
          2. 手动配置
        4. 可用工具
          1. 资源
            1. 错误处理
              1. 故障排除
                1. 连接问题
                2. 光标集成
                3. PostgreSQL 特定问题
              2. 执照

                Related MCP Servers

                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables powerful PostgreSQL database management capabilities including analysis, schema management, data migration, and monitoring through natural language interactions.
                  Last updated -
                  355
                  46
                  TypeScript
                  AGPL 3.0
                  • Linux
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  Enables AI models to interact with PostgreSQL databases through a standardized interface, supporting operations like queries, table manipulation, and schema inspection.
                  Last updated -
                  5
                  127
                  2
                  JavaScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.
                  Last updated -
                  16,948
                  JavaScript
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  Enables AI agents to interact with PostgreSQL databases through the Model Context Protocol, providing database schema exploration, table structure inspection, and SQL query execution capabilities.
                  Last updated -
                  11
                  Python
                  MIT License
                  • Linux
                  • Apple

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/endaoment/endaoment-postgres-mcp'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server