Token导航 LogoToken导航TokenDH.com
pgMCP (Kyagoshi) logo
数据服务stdio官方级别未说明来源级核验

pgMCP (Kyagoshi)

MCP Server

一个用于获取PostgreSQL数据库表结构信息(包括表列表、列信息、索引、外键)并生成ER图的MCP服务。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude数据分析ClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kyagoshi

提供方

kyagoshi

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uvx --from git+https://github.com/kyagoshi/pgmcp pgmcp

详细介绍

PGMCP公司

![Tests](https://github.com/kyagoshi/pgmcp/actions/workflows/test.yml) ![Security Audit](https://github.com/kyagoshi/pgmcp/actions/workflows/pip-audit.yml)

PostgreSQL获取数据库表信息MCP服务器。

机能

  • list_tables:获取指定架构的表列表
  • get_table_schema:指定表中的列信息(名称、类型、NULL获取许可、默认值、主键和注释)
  • get_table_indexes:获取指定表的索引信息(名称、列、唯一、类型、定义)
  • 获取外国人密钥:获取指定表的外键信息(约束名称、列、引用表、引用列)
  • 发电机图 \[BETA\]: 将数据库中的表关系Mermaid格式ER生成为图

安全性

数据库连接只读中所述修改相应参数的值。为了防止误操作和破坏性的查询执行,写入系的SQL(INSERT、UPDATE、DELETE、CREATE 等已弃用的函数的缺少的支持。

要件

  • Python 3.10以上
  • uv(包管理)
  • PostgreSQL访问数据库

安装

uvx(推奨)

uvx无需安装即可直接运行:

uvx --from git+https://github.com/kyagoshi/pgmcp pgmcp

如果要固定特定版本 @ (例如: v0.1.0):

uvx --from git+https://github.com/kyagoshi/pgmcp@v0.1.0 pgmcp

本地安装

git clone https://github.com/kyagoshi/pgmcp.git
cd pgmcp
uv sync

pip 使用时的版本固定示例:

pip install "git+https://github.com/kyagoshi/pgmcp@v0.1.0"

MCP设定

克劳德桌面版

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或%APPDATA%\Claude\claude_desktop_config.json(Windows)添加:

{
  "mcpServers": {
    "pgmcp": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/kyagoshi/pgmcp", "pgmcp"],
      "env": {
        "PGHOST": "localhost",
        "PGPORT": "5432",
        "PGDATABASE": "your_database",
        "PGUSER": "your_username",
        "PGPASSWORD": "your_password"
      }
    }
  }
}

VS代码(GitHub副本)

![Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22pgmcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22--from%22%2C%22git%2Bhttps%3A%2F%2Fgithub.com%2Fkyagoshi%2Fpgmcp%22%2C%22pgmcp%22%5D%2C%22env%22%3A%7B%22PGHOST%22%3A%22localhost%22%2C%22PGPORT%22%3A%225432%22%2C%22PGDATABASE%22%3A%22your_db_name%22%2C%22PGUSER%22%3A%22your_postgres_username%22%2C%22PGPASSWORD%22%3A%22your_postgres_username%22%7D%7D)

.vscode/mcp.json 添加:

{
  "servers": {
    "pgmcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/kyagoshi/pgmcp", "pgmcp"],
      "env": {
        "PGHOST": "localhost",
        "PGPORT": "5432",
        "PGDATABASE": "your_database",
        "PGUSER": "your_username",
        "PGPASSWORD": "your_password"
      }
    }
  }
}

环境变数

|变量名|说明|默认值| |--------|------|-------------| | PGHOST | PostgreSQL主机名| localhost | | PGPORT | PostgreSQL端口号 5432 | | PGDATABASE |数据库名称|(必需)| | PGUSER |用户名|(必需)| | PGPASSWORD |密码|(必需)|

使用方法

list_tables

获取指定架构的表列表。

参数:

  • schema (string, optional): 方案名称。默认值为 "public"

出力例:

| table_name | table_type |
|------------|------------|
| users | BASE TABLE |
| orders | BASE TABLE |

get_table_schema

获取指定表的列信息。

参数:

  • table_name (string, required): 表名称
  • schema (string, optional): 方案名称。默认值为 "public"

出力例:

| column_name | data_type | nullable | default | PK | comment |
|-------------|-----------|----------|---------|-----|----------|
| id | integer | NO | nextval('users_id_seq'::regclass) | ✓ | ユーザーID |
| name | character varying(100) | NO | - |  | ユーザー名 |
| email | character varying(255) | YES | - |  | メールアドレス |

get_table_indexes

获取指定表的索引信息。

参数:

  • table_name (string, required): 表名称
  • schema (string, optional): 方案名称。默认值为 "public"

出力例:

| index_name | columns | unique | type | definition |
|------------|---------|--------|------|------------|
| users_pkey | id | ✓ | btree | CREATE UNIQUE INDEX users_pkey ON public.users USING btree (id) |
| users_email_idx | email | ✓ | btree | CREATE UNIQUE INDEX users_email_idx ON public.users USING btree (email) |

获取外国人密钥

获取指定表的外键信息。

参数:

  • table_name (string, required): 表名称
  • schema (string, optional): 方案名称。默认值为 "public"

出力例:

| constraint_name | column_name | foreign_table | foreign_column |
|-----------------|-------------|---------------|----------------|
| orders_user_id_fkey | user_id | users | id |

发电机原理图

将数据库中的表关系Mermaid格式ER生成为图。

注意:此功能是贝塔版。特殊字符(!, @, #)的表名或列名Mermaid语法不支持,因此可能会出现错误。了解更多信息 问题#9 来修改标记元素的显示属性。

参数:

  • schema (string, optional): 方案名称。默认值为 "public"
  • tables (list\[string\], optional): 目标表列表。省略时为所有表(最多100个)

出力例:

erDiagram
    users {
        integer id PK "ユーザーID"
        varchar name "ユーザー名"
        varchar email "メールアドレス"
    }
    orders {
        integer id PK "注文ID"
        integer user_id FK "ユーザーID"
        numeric total_amount "合計金額"
    }
    users ||--o{ orders : "has"

特徴:

  • 实际外键关系为实线(||--o{),模板名称将采用不同的格式
  • 将虚拟外键(根据命名规则推测)设置为虚线(||..o{),模板名称将采用不同的格式

- _id_no 具有后缀的列 - 与其他表的主键名匹配的列

测试用样本数据

存储库附带的 docker/init.sql 啊Virtual FK 等已弃用的函数的缺少的支持。

  • 简单示例: vfk_uuid_parent/vfk_uuid_child, vfk_no_parent/vfk_no_child
  • 复杂示例(20多个表): vfk_uuid_* 系和 vfk_no_* 系列(订单、库存、促销活动、专利权等)

重新投入时 docker compose down -v && docker compose up -d 的DB中所述修改相应参数的值。

开発

开发人员的信息 贡献.md 来修改标记元素的显示属性。

许可证

这个项目 Apache许可证2.0 中所述修改相应参数的值。

从属库的许可信息 第三方许可证 来修改标记元素的显示属性。

目录标签

目录标签

PythonClaude数据分析PostgreSQL工具本地部署数据库元数据ER图生成数据建模只读查询

支持客户端

ClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP