Pg Mcp Server

Pg Mcp Server

🚀 PostgreSQL MCP 服务器指南

本指南详细介绍了 PostgreSQL MCP 服务器的使用方法,包括项目结构、核心脚本、协议实现、环境变量配置等内容,帮助您高效、安全地管理 PostgreSQL 数据库。

📦 安装指南

文档未提及安装步骤,暂不提供相关内容。

🏗️ 目录结构

项目结构如下:

  • dist:存放编译后的 JavaScript 文件
  • src:核心库文件
  • package.json:依赖管理和构建脚本配置
  • tsconfig.json:TypeScript 编译配置

✨ 主要特性

  • 负责初始化和管理 PostgreSQL 数据库连接,处理事务,并提供数据库操作接口。
  • 提供高效的数据库连接池,支持高并发访问。
  • 实现事务提交、回滚功能,并提供超时保护机制。
  • 执行 SQL 查询并返回结果集。
  • 获取数据库表结构信息。

🔧 技术细节

核心脚本说明

目的与功能

这些脚本负责初始化和管理 PostgreSQL 数据库连接,处理事务,并提供数据库操作接口。

主要脚本

  • index.ts
    • 作用:初始化 MCP 服务器。
    • 功能
      • 解析命令行参数。
      • 连接 PostgreSQL 数据库。
      • 启动监控线程。
      • 处理客户端请求。
  • connection - pool.ts
    • 作用:管理数据库连接池。
    • 功能
      • 创建和管理数据库连接池。
      • 实现连接复用机制。
      • 设置连接超时参数。
      • 监控连接状态。
  • transaction - monitor.ts
    • 作用:监控事务执行状态。
    • 功能
      • 记录事务开始时间。
      • 检查事务超时情况。
      • 自动回滚长时间未提交的事务。
      • 提供事务统计信息。

MCP 协议实现

功能模块

  • 连接管理:提供高效的数据库连接池,支持高并发访问。
  • 事务控制:实现事务提交、回滚功能,并提供超时保护机制。
  • 查询执行:执行 SQL 查询并返回结果集。
  • 元数据获取:获取数据库表结构信息。

💻 使用示例

基础用法

const { McpServer } = require('./dist/mcp-server');

// 初始化 MCP 服务器
const server = new McpServer({
connectionString: 'postgresql://用户名:密码@数据库地址:端口/数据库名',
transactionTimeoutMs: 15000,
maxConnections: 20
});

// 启动服务器
server.start();

示例使用场景

执行查询

SELECT * FROM users WHERE age > 18;

执行数据修改

INSERT INTO users (name, age) VALUES ('张三', 25);

查看表结构

获取表 "users" 的详细信息

列出所有表

列出数据库中的所有表

📚 详细文档

环境变量配置

环境变量 描述 默认值
TRANSACTION_TIMEOUT_MS 事务超时时间(毫秒) 15000
MONITOR_INTERVAL_MS 监控间隔时间(毫秒) 5000
MAX_CONCURRENT_TRANSACTIONS 最大并发事务数 10
PG_MAX_CONNECTIONS 连接池最大连接数 20
PG_IDLE_TIMEOUT_MS 空闲连接超时时间(毫秒) 30000
PG_STATEMENT_TIMEOUT_MS SQL 语句执行超时时间(毫秒) 30000

附录

错误代码

代码 描述
100 连接池已满
101 事务超时
102 查询执行失败

返回值格式

{
"code": number,
"data": any,
"message": string
}

⚠️ 注意事项

  • 数据库用户需具备相应操作权限。

  • 生产环境建议使用更严格的超时设置。

  • 长时间运行的事务会自动回滚以防资源占用。

  • DML 操作需显式提交才能永久生效。

  • 禁止在配置文件中明文存储敏感信息。

  • 建议定期备份数据库。

  • 确保数据库凭据不泄露。

  • 配置适当的访问控制策略。

  • 定期审计数据库操作日志。

  • 使用 SSL 加密数据库连接。

通过以上配置和使用,您可以高效、安全地管理 PostgreSQL 数据库。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-24 20:57

相似服务问题