GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
제작자가 쓴 설명(영어 원문)
Read-only MCP server for Huawei GaussDB (centralized & distributed), built for coding agents.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 gxc 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 18일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요.
같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
[简体中文] | English
[!NOTE]
English: A read-only MCP server for Huawei GaussDB (centralized & distributed), built for
coding agents (Claude Code, OpenCode, etc.). Three layers of read-only enforcement — static SQL
validation, server-side
READ ONLYtransactions, and least-privilege account guidance — in a
single static binary designed for non-SSL intranet environments. Full documentation:
README_en.md.
面向 Coding Agent(Claude Code、OpenCode 等)的 GaussDB 只读 MCP 服务器。基于 GaussDB 官方 Go 驱动 (华为云官方开源的 pgx v5 适配版,源码随仓库内置于 third_party/gaussdb-go,支持离线构建), 通过 stdio 传输提供数据库只读探查工具。
专为内网非 SSL 环境设计:默认 sslmode=disable,配置文件支持同时管理多个 GaussDB 实例。
| 层级 | 机制 | 说明 |
|---|---|---|
| 1. SQL 静态校验 | internal/guard | 仅放行单条 SELECT/WITH 查询:拒绝 DML/DDL(含 CTE 内写语句)、SELECT ... INTO、FOR UPDATE/SHARE 行锁、多语句、危险函数(dblink*、set_config、setval、pg_read_file*、pg_terminate_backend、pg_advisory_*、大对象写等,可配置)。词法分析正确跳过字符串/注释/引号标识符,避免误报 |
| 2. 事务级强制 | internal/db | 所有查询统一在显式只读事务中执行:BEGIN → SET LOCAL TRANSACTION READ ONLY → 查询 → COMMIT(失败回滚)。GaussDB 分布式版仅支持事务级只读设置,该方式在集中式/主备与分布式实例上通用;另设 SET statement_timeout。即使第 1 层被绕过,服务端也会拒绝事务内一切写入(包括函数内部的写) |
| 3. 部署建议 | README | 建议使用仅授予 SELECT 权限的数据库账号(见下文),实现权限最小化 |
| 工具 | 功能 |
|---|---|
test_connection | 连通性测试:服务器版本、当前库/用户、只读状态、延迟;可选 instance 参数 |
list_schemas | schema(模式)清单:对象数、注释;include_system 控制是否含系统模式 |
list_tables | 表/视图清单:类型(表/视图/物化视图/分区表/外表)、估算行数、注释;可按 schema 过滤 |
describe_table | 表结构:列(类型/可空/默认值/注释)、主键与约束、全部索引及定义;视图返回视图定义 SQL;分区表返回分区清单(GaussDB pg_partition) |
execute_select | 执行 SELECT:仅接受单条 SELECT/WITH,受 max_rows/超时限制,返回列名+行数据+是否截断 |
所有工具均接受可选 instance 参数以选择数据源,缺省使用 default_instance。全部实例名(含默认标注)会写入该参数的 schema 描述,agent 在获取工具列表阶段即可发现可选实例,无需试错。
| gaussdb-ro-mcp(本项目) | GaussDB-MCP | Multi DB MCP | 通用 PostgreSQL MCP 服务器 | |
|---|---|---|---|---|
| 定位 | GaussDB 专用只读探查 | GaussDB 全功能访问:查询、写入、事务、诊断运维、用户权限 | 17 种数据库通用连接器(含 GaussDB/openGauss),MCP + REST API | 原生 PostgreSQL |
| GaussDB 适配 | 官方 Go 驱动,集中式/主备/分布式均适配 | 官方 Node.js 驱动(gaussdb-node) | 走 PostgreSQL 通用协议 | 未适配 GaussDB 专有系统目录(如 pg_partition) |
| 只读保障 | 三层纵深防御:SQL 静态校验 + 事务级 READ ONLY 强制 + 最小权限建议 | 无只读模式(默认 root 管理员账号,按设计支持写入) | 应用层默认只读 | 各项目实现不一 |
| GaussDB 特有元数据 | 分区表(pg_partition)、外表、物化视图、视图定义 SQL、全部索引定义 | 部分支持 | 按 PG 协议探测,部分支持 | 无 |
| 运行时依赖 | 无(静态编译单二进制,可离线部署) | Node.js ≥ 20 | Node.js(npx) | 各异 |
| 多实例管理 | 配置文件集中管理多实例,工具按 instance 参数切换 | 单实例(环境变量) | 单连接(启动参数) | 一般单实例 |
| 内网非 SSL | 默认 sslmode=disable | 支持(默认关闭 SSL) | 支持 | 支持 |
| 许可证 | Apache-2.0 | 未声明 | 未声明 | 各异 |
各项目定位不同:需要完整读写与运维能力时,全功能服务器是合理选择;如果目标是让 Coding Agent 安全地探查数据(尤其在生产库上),只读约束与纵深防御是本项目的价值所在。 以上信息基于各项目公开 README 整理(2026-10),如有出入欢迎 提 Issue 指正。
macOS / Linux(Homebrew):
brew install gxc/tap/gaussdb-ro-mcp
gaussdb-ro-mcp --version
从 Releases 下载对应平台的二进制 (linux-amd64 / linux-arm64 / darwin-arm64 / windows-amd64.exe;其他平台或内网环境可自行构建,见下节)。
Linux:
curl -LO https://github.com/gxc/gaussdb-ro-mcp/releases/latest/download/gaussdb-ro-mcp-linux-amd64
sudo install -Dm 755 gaussdb-ro-mcp-linux-amd64 /usr/local/bin/gaussdb-ro-mcp gaussdb-ro-mcp --version
macOS(Apple Silicon):
curl -LO https://github.com/gxc/gaussdb-ro-mcp/releases/latest/download/gaussdb-ro-mcp-darwin-arm64
sudo install -Dm 755 gaussdb-ro-mcp-darwin-arm64 /usr/local/bin/gaussdb-ro-mcp gaussdb-ro-mcp --version
Windows(PowerShell;放入 PATH 目录后即可直接调用):
Invoke-WebRequest -Uri "https://github.com/gxc/gaussdb-ro-mcp/releases/latest/download/gaussdb-ro-mcp-windows-amd64.exe" -OutFile "gaussdb-ro-mcp.exe"
Move-Item .\gaussdb-ro-mcp.exe "$env:LOCALAPPDATA\Microsoft\WindowsApps\" # 该目录默认在 PATH 中 gaussdb-ro-mcp --version
各产物校验值见 Release 页的 SHA256SUMS.txt。
要求 Go 1.26.10+(与 go.mod 一致)。驱动源码已内置于 third_party/gaussdb-go(通过 replace 指令引用), 正常联网环境下 go build 会自动解析其余依赖;纯内网环境请先在有网环境执行 go mod vendor 后携带 vendor/ 目录,用 go build -mod=vendor 构建。
go build -o gaussdb-ro-mcp ./cmd/gaussdb-ro-mcp
sudo install -Dm 755 gaussdb-ro-mcp /usr/local/bin/gaussdb-ro-mcp gaussdb-ro-mcp --version
交叉编译其他平台(纯 Go,CGO_ENABLED=0 即可):CGO_ENABLED=0 GOOS= GOARCH= go build -o ... ./cmd/gaussdb-ro-mcp。
复制 gaussdb-ro-mcp.example.yaml 为 gaussdb-ro-mcp.yaml 并修改。 配置文件查找顺序:-config 参数 > 环境变量 GAUSSDB_RO_MCP_CONFIG > ./gaussdb-ro-mcp.yaml。
server:
max_rows: 500 # execute_select 默认行数上限 max_rows_cap: 10000 # 单次调用可放宽的硬上限 statement_timeout: 30s connect_timeout: 10s
instances:
default_instance: prod
方式一:项目根目录 .mcp.json(或 claude mcp add 命令):
{
"mcpServers": { "gaussdb-readonly": { "command": "/usr/local/bin/gaussdb-ro-mcp", "args": ["-config", "/path/to/gaussdb-ro-mcp.yaml"] } } }
claude mcp add gaussdb-readonly -- /usr/local/bin/gaussdb-ro-mcp -config /path/to/gaussdb-ro-mcp.yaml
opencode.json:
{
"$schema": "https://opencode.ai/config.json", "mcp": { "gaussdb-readonly": { "type": "local", "command": ["/usr/local/bin/gaussdb-ro-mcp", "-config", "/path/to/gaussdb-ro-mcp.yaml"] } } }
CREATE USER readonly_user WITH PASSWORD 'your-strong-password';
GRANT USAGE ON SCHEMA public TO readonly_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly_user; -- 其他模式按需逐个授权
即使数据库账号被限定为只读,本服务的 SQL 校验与会话强制仍会拦截 锁行(FOR UPDATE)、SELECT INTO、危险函数调用、长查询等行为。
所有运行日志输出到 stderr(stdout 为 MCP 协议通道),包括配置加载、 数据源就绪、会话只读校验结果等,便于在代理客户端的 MCP 日志中排障。
go test ./... # 单元测试(SQL 校验、配置解析)
GAUSSDB_RO_MCP_TEST_DSN="host=... port=... user=... password=... dbname=... sslmode=disable" \ go test -count=1 ./... # 集成测试(需 GaussDB/openGauss 实例)
可用 Docker 快速起一个 openGauss 测试实例并灌入测试数据:
docker run -d --name opengauss-ro-test -e GS_PASSWORD='Gaussdb@123' \
-p 127.0.0.1:15433:5432 --privileged docker.m.daocloud.io/enmotech/opengauss:latest
go run ./scripts/devseed "host=127.0.0.1 port=15433 user=gaussdb password=Gaussdb@123 dbname=postgres sslmode=disable"
集成测试覆盖:只读会话强制(服务端拒绝写入)、5 个工具的端到端行为、 真实二进制 stdio 子进程冒烟。注意:本驱动使用 GaussDB 扩展协议(3.51), 无法连接原生 PostgreSQL,集成测试需要真实的 GaussDB / openGauss 实例。
cmd/gaussdb-ro-mcp/ 程序入口(stdio MCP 服务器)
internal/config/ YAML 配置:多实例数据源、行数/超时等 internal/guard/ 第 1 层防护:SQL 只读静态校验器 internal/db/ 多实例连接池 + 第 2 层防护:会话级 READ ONLY 强制、元数据查询 internal/tools/ MCP 工具注册与实现 scripts/devseed/ 集成测试数据灌入工具(开发用) third_party/gaussdb-go/ GaussDB 官方 Go 驱动源码(go.mod replace 引用)
欢迎提交 Issue 和 Pull Request:
go vet ./... 与 go test ./... 通过;涉及安全防护逻辑(SQL 静态校验 / 只读强制)的改动请附带回归测试