Postgres Query

Postgres Query

🚀 MCP PostgreSQL 查询服务器

本项目实现了一个模型上下文协议(MCP)服务器,可用于以只读模式查询 PostgreSQL 数据库。它专为与 Claude Desktop 及其他 MCP 客户端协同工作而设计,为数据库查询提供了安全、高效的解决方案。

🚀 快速开始

本项目实现了一个具备特定功能的模型上下文协议(MCP)服务器,可安全地以只读模式访问 PostgreSQL 数据库,并与 Claude Desktop 集成。

✨ 主要特性

  • 安全的只读接口:提供安全的只读接口访问 PostgreSQL 数据库,仅允许执行 SELECT 查询,确保数据库安全。
  • 与 Claude Desktop 集成:通过 MCP 协议与 Claude Desktop 集成,方便使用。
  • SQL 查询验证:对 SQL 查询进行验证,确保仅执行 SELECT 查询,防止潜在的有害 SQL 操作。
  • 查询超时保护:设置了 10 秒的查询超时保护,避免长时间运行的查询占用资源。
  • JSON 响应格式化:查询结果以结构化的 JSON 格式返回,便于处理和解析。

📦 安装指南

先决条件

  • Node.js (v14 或更高版本)
  • npm(随 Node.js 提供)
  • PostgreSQL 数据库(通过命令行提供的连接详细信息)

安装步骤

# 克隆仓库
git clone https://github.com/RathodDarshil/mcp-postgres-query-server.git
cd mcp-postgres-query-server

# 安装依赖项
npm install

# 构建项目
npm run build

💻 使用示例

连接到 Claude Desktop

您可以配置 Claude Desktop 自动启动并连接到 MCP 服务器:

  1. 访问 Claude Desktop 配置文件:
    • 打开 Claude Desktop
    • 转到 设置 > 开发者 > 编辑配置
    • 这将在默认文本编辑器中打开配置文件
  2. claude_desktop_config.jsonmcpServers 部分添加 postgres-query 服务器:
{
"mcpServers": {
"postgres-query": {
"command": "node",
"args": [
"/path/to/your/mcp-postgres-query-server/dist/index.js",
"postgresql://username:password@hostname:port/database"
]
}
}
}
  1. /path/to/your/ 替换为您实际项目的路径。
  2. 将 PostgreSQL 连接字符串替换为您的实际数据库凭据。
  3. 保存文件并重新启动 Claude Desktop。MCP 服务器现在应该出现在 设置 中的 MCP 服务器选择下拉菜单中。

示例配置

以下是带有 postgres-query 的完整配置文件示例:

{
"mcpServers": {
"postgres-query": {
"command": "node",
"args": [
"/Users/darshilrathod/mcp-servers/mcp-postgres-query-server/dist/index.js",
"postgresql://user:password@localhost:5432/mydatabase"
]
}
}
}

更新配置

要更新您的 Claude Desktop 配置:

  1. 打开 Claude Desktop
  2. 转到 设置 > 开发者 > 编辑配置
  3. 对配置文件进行修改
  4. 保存文件
  5. 重新启动 Claude Desktop 以使更改生效
  6. 如果您已更新 MCP 服务器代码,请确保在重新启动之前使用 npm run build 重建

API 使用示例

工具

query-postgres

对配置的 PostgreSQL 数据库执行只读 SQL 查询。

参数:

  • query (string):要执行的 SELECT SQL 查询

响应:

  • 包含以下内容的 JSON 对象:
    • rows:结果集行
    • rowCount:返回的行数
    • columns:查询的结果列

示例

{
"query": "SELECT * FROM users LIMIT 5",
"result": {
"rows": [
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
],
"rowCount": 2,
"columns": ["id", "name"]
}
}

📚 详细文档

项目结构

  • src/:包含核心的服务器实现
  • dist/:构建输出目录
  • package.json:项目依赖和脚本
  • README.md:项目文档

贡献指南

  • 提交代码前,请确保通过 npm 脚本运行测试。
  • 遵循项目的代码规范。

🔧 技术细节

该项目实现了一个模型上下文协议(MCP)服务器,通过 Node.js 与 PostgreSQL 数据库进行交互。服务器提供了安全的只读接口,对 SQL 查询进行验证,确保仅执行 SELECT 查询,并设置了 10 秒的查询超时保护。通过 MCP 协议与 Claude Desktop 集成,查询结果以结构化的 JSON 格式返回。

📄 许可证

文档未提及许可证信息。

🔒 安全考虑

⚠️ 重要提示

  • 确保数据库凭据的安全性,避免在代码中明文存储。
  • 使用环境变量或配置管理工具来管理敏感信息。
  • 定期审计和更新服务器安全策略。
  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-24 18:27

相似服务问题