Postgresql Mcp Server Y4k

Postgresql Mcp Server Y4k

🚀 PostgreSQL MCP 服务器

PostgreSQL MCP 服务器是一个用于与 PostgreSQL 数据库交互的 Model Context Protocol (MCP) 服务器,支持读取查询、写入查询、创建表和列出表等功能,为数据库操作提供了便捷的解决方案。

🚀 快速开始

安装步骤

先决条件

  • PostgreSQL 数据库实例
  • Go 语言开发环境
  • Make 工具

克隆仓库

git clone https://github.com/yourusername/pgmcp.git
cd pgmcp

安装依赖

go mod tidy

构建服务器

make build

配置说明

将以下环境变量添加到项目的 .env 文件中:

  • DB_NAME: PostgreSQL 数据库名称
  • DB_USER: 连接数据库的用户名
  • DB_PASSWORD: 用户密码
  • DB_HOST: 数据库主机地址(默认为 localhost
  • DB_PORT: 数据库端口号(默认为 5432

示例 .env 文件:

DB_NAME=postgres
DB_USER=pguser
DB_PASSWORD=pgpassword
DB_HOST=localhost
DB_PORT=5432

运行服务器

go run main.go

MCP 配置

config.json 中配置 MCP 服务参数:

{
"name": "PostgreSQL MCP Server",
"version": "1.0",
"description": "A PostgreSQL MCP server implementation.",
"tools": {
"read_query": {
"description": "Execute a SELECT query and return the results."
},
"write_query": {
"description": "Execute an INSERT, UPDATE, or DELETE statement."
},
"create_table": {
"description": "Create a new table in the database."
},
"list_tables": {
"description": "List all tables in the database."
}
}
}

✨ 主要特性

  • 读取查询:执行 SELECT 类型的 SQL 查询。
  • 写入查询:执行 INSERT、UPDATE 和 DELETE 类型的 SQL 操作。
  • 创建表:在数据库中创建新表。
  • 列出表:获取数据库中的所有表信息。

💻 使用示例

基础用法

读取查询

{
"tool": "read_query",
"params": {
"query": "SELECT * FROM users LIMIT 10;"
}
}

写入查询

{
"tool": "write_query",
"params": {
"query": "INSERT INTO users (name, email) VALUES ($1, $2);",
"args": ["John Doe", "john@example.com"]
}
}

创建表

{
"tool": "create_table",
"params": {
"table_name": "users",
"schema": "CREATE TABLE users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(255) NOT NULL,\n    email VARCHAR(255) UNIQUE NOT NULL\n);"
}
}

列出表

{
"tool": "list_tables",
"params": {}
}

🔧 技术细节

安全注意事项

  • 服务器对查询类型进行验证,确保每个工具仅执行其允许的操作。
  • 对输入的 schema 名称进行 sanitization,防止 SQL 注入攻击。
  • 建议使用权限受限的专用数据库用户。
  • 在生产环境中启用 SSL,设置 DB_SSLMODErequire 或更高。

依赖项

📄 许可证

[在此处添加许可信息]

🤝 贡献指南

[在此处添加贡献指南]

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 14:51

相似服务问题