mcpField
P
Postgres Mcp

Postgres Mcp

本地服务
github.com/freakynit数据库350 周前更新

关于 Postgres Mcp

Postgres MCP 是面向 PostgreSQL 数据库的 MCP 服务,支持 SQL 查询和自然语言指令。它提供表结构检查、数据库切换及按查询类型设置权限的能力。

主要功能

  1. 01执行 SQL 并支持试运行
  2. 02按查询类型控制权限
  3. 03查看表、列、索引和约束
  4. 04切换活动数据库
  5. 05错误处理与回滚

适用场景

  1. 01检查数据库表结构及关系
  2. 02验证查询后再执行
  3. 03在权限约束下运行数据库操作

MCP 相关

该服务向 MCP 客户端提供 SQL 执行、表列举、表结构描述和数据库切换工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"postgres-mcp-freakynit": {
"command": "npx",
"args": [
"-y",
"@freakynit/postgres-mcp"
],
"env": {
"POSTGRES_HOST": "<POSTGRES_HOST>",
"POSTGRES_USER": "<POSTGRES_USER>",
"POSTGRES_PASSWORD": "<POSTGRES_PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES_DATABASE>"
}
}
}
}
启动命令npx -y @freakynit/postgres-mcp
需要配置的环境变量
POSTGRES_HOST
POSTGRES_USER
POSTGRES_PASSWORD密钥
POSTGRES_DATABASE

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@freakynit/postgres-mcp

工具

4

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Postgres MCP

一个轻量级 MCP(Model Context Protocol)服务,可使用 SQL 或自然语言命令查询 Postgres 数据库。它提供全面的数据库操作、表结构查看和查询执行工具,并支持智能权限处理。

功能

智能查询权限处理
  • 只读查询:自动批准(SELECT、EXPLAIN、SHOW、VALUES)
  • 读写查询:需要用户确认(INSERT、UPDATE、DELETE、MERGE)
  • 管理/DDL 查询:需要更高权限(CREATE、ALTER、DROP 等)
  • 试运行模式:验证查询但不执行
全面的表结构查看
  • 包含类型和约束的列定义
  • 主键和外键关系
  • 索引定义
  • 触发器和检查约束
数据库管理
  • 可切换多个数据库
  • 强大的错误处理和回滚机制

可用工具

工具描述
execute_raw_query执行 SQL 查询,并进行权限验证,支持试运行
list_tables列出所有非系统表
describe_tables获取全面的表信息,包括列、索引、触发器和约束
switch_database切换当前活动的数据库连接
必需的环境变量
  1. POSTGRES_HOST
  2. POSTGRES_USER
  3. POSTGRES_PASSWORD
  4. POSTGRES_DATABASE
其他环境变量
  1. POSTGRES_PORT
  2. POSTGRES_SSL(布尔值)
  3. POSTGRES_VERIFY(布尔值)
  4. POSTGRES_SEND_RECEIVE_TIMEOUT(秒)
  5. POSTGRES_CONNECT_TIMEOUT(秒)

使用 mcpServers json 进行配置

适用于 Mac 和 Linux

{
  "mcpServers": {
    "postgres-mcp": {
      "command": "npx",
      "args": ["-y", "@freakynit/postgres-mcp@latest"],
      "env": {
        "POSTGRES_HOST": "<POSTGRES HOST>",
        "POSTGRES_USER": "<POSTGRES USER>",
        "POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
        "POSTGRES_DATABASE": "<POSTGRES DATABASE>"
      }
    }
  }
}

适用于 Windows

{
  "mcpServers": {
    "postgres-mcp": {
      "command": "cmd",
      "args": ["/k", "npx", "-y", "@freakynit/postgres-mcp@latest"],
      "env": {
        "POSTGRES_HOST": "<POSTGRES HOST>",
        "POSTGRES_USER": "<POSTGRES USER>",
        "POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
        "POSTGRES_DATABASE": "<POSTGRES DATABASE>"
      }
    }
  }
}

开发文档

前置条件
  • Node.js
  • PostgreSQL 服务
安装
npm i -g @freakynit/postgres-mcp

或

git clone https://github.com/freakynit/postgres-mcp.git
cd postgres-mcp
npm install

配置

在项目根目录下创建 .env 文件,并加入以下变量:

# PostgreSQL
POSTGRES_HOST=your-db-host
POSTGRES_PORT=5432                      # Optional, default 5432
POSTGRES_USER=your-username
POSTGRES_PASSWORD=your-password
POSTGRES_DATABASE=your-database

# SSL settings (optional)
POSTGRES_SSL=false                      # Or true
POSTGRES_VERIFY=false                   # Verify server cert if SSL true

# Timeouts (optional, seconds)
POSTGRES_SEND_RECEIVE_TIMEOUT=60        # Query timeout
POSTGRES_CONNECT_TIMEOUT=60             # Connection timeout

使用方法

本地开发

启动服务(以 stdio 模式启动):

node src/index.js
使用 MCP Inspector

用于调试和开发:

npx @modelcontextprotocol/inspector node src/index.js

使用 MCP inspector 调试

npx @modelcontextprotocol/inspector node src/index.js

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE。

Postgres-MCP 服务头像图片

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。