PostgreSQL MCP 服务器

PostgreSQL MCP Server 是一个允许LLM与PostgreSQL数据库交互的MCP(Model Context Protocol)服务器,提供查询执行、表检查和安全操作等功能。

  • by ssakihara
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ssakihara/postgres-mcp-server

使用说明

PostgreSQL MCP服务器

一种允许LLM与PostgreSQL数据库交互的MCP(Model Context Protocol)服务器。

特徴

  • 查询执行:自动限制SELECT语句执行SQL查询
  • 工作台检查:描述表和表结构(列、类型、约束和索引)
  • 安全操作:对危险操作(DROP、TRUNCATE、ALTER、DELETE)的保护功能
  • Docker支持:用于简单集成的容器化部署

快速启动

使用Claude Code时

claude mcp add -s project pms docker \
  --env PGSCHEMA=public \
  --env PGDATABASE=test_db \
  --env PGHOST=host.docker.internal \
  --env PGPORT=5432 \
  --env PGUSER=postgres \
  --env PGPASSWORD=your_password \
  -- run --pull always -i --rm \
  -e PGSCHEMA \
  -e PGDATABASE \
  -e PGHOST \
  -e PGPORT \
  -e PGUSER \
  -e PGPASSWORD \
  ghcr.io/ssakihara/postgres-mcp-server:latest

请根据实际环境更改环境变量的值。

环境变数

|变量|说明|默认|必需| |----------|-------------|---------|----------| | PGHOST PostgreSQL主机 localhost 不,不 | PGPORT PostgreSQL端口 5432 不,不 | PGDATABASE 数据库名称 是 | | PGUSER |数据库用户|当前用户/ postgres 不,不 | PGPASSWORD 数据库密码|-|否| | PGSCHEMA 默认架构名称 public 不,不

MCP工具

query

对数据库执行SQL查询。

入力:

{
  "sql": "SELECT * FROM users WHERE active = true LIMIT 10",
  "params": [],
  "limit": 1000
}

响应:

{
  "success": true,
  "rowCount": 10,
  "rows": [...],
  "fields": [...]
}

list_tables

列出PGSCHEMA环境变量中设置的架构中的表。

入力:

{
  "includeRowCount": false
}

响应:

{
  "success": true,
  "schema": "public",
  "tables": [...],
  "count": 5
}

describe_table

获取PGSCHEMA环境变量中设置的架构中的表的详细信息。

入力:

{
  "tableName": "users"
}

响应:

{
  "success": true,
  "table": { "schema": "public", "name": "users" },
  "columns": [...],
  "primaryKeys": ["id"],
  "foreignKeys": [...],
  "indexes": [...]
}

在Docker中使用

从GitHub Container Registry中使用

docker run -i --rm \
  -e PGHOST=host.docker.internal \
  -e PGPORT=5432 \
  -e PGDATABASE=mydb \
  -e PGUSER=myuser \
  -e PGPASSWORD=mypassword \
  -e PGSCHEMA=public \
  ghcr.io/ssakihara/postgres-mcp-server:latest

在本地构建和使用

# Docker イメージをビルド
docker build -t postgres-mcp-server .

# 実行
docker run -i --rm \
  -e PGHOST=host.docker.internal \
  -e PGPORT=5432 \
  -e PGDATABASE=mydb \
  -e PGUSER=myuser \
  -e PGPASSWORD=mypassword \
  -e PGSCHEMA=public \
  postgres-mcp-server

开发人员

安装,安装

# 依存関係をインストール
pnpm install

# 開発モードで実行(ウォッチ機能)
pnpm run dev

# 本番用にビルド
pnpm run build

# テストを実行
pnpm test

项目配置

postgres-mcp-server/
├── src/
│   ├── index.ts           # メインエントリーポイント
│   ├── server.ts          # MCP サーバー設定
│   ├── tools/
│   │   ├── query.ts       # SQL クエリ実行ツール
│   │   ├── schema.ts      # データベーススキーマ一覧
│   │   └── tables.ts      # テーブル一覧・詳細取得ツール
│   └── db.ts              # PostgreSQL 接続
├── package.json
├── tsconfig.json
├── Dockerfile
└── README.md

许可证

国际学生委员会