Multigres
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ต้องมี DATABASE_URI, MULTIGRES_ADMIN_TOKEN
- หมวด ฐานข้อมูลและชุดข้อมูล
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Postgres diagnostics and cluster operations for Multigres clusters.ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
ดาวน์โหลดไฟล์ติดตั้งของผู้ทำ
ไฟล์ .mcpb มาจากผู้ทำโดยตรง เราไม่ได้แก้ไฟล์
ดับเบิลคลิกไฟล์ แล้วกด Install ในแอป Claude บนคอม
ลองเลย
ใช้ Multigres บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Multigres หรือมีชื่อเครื่องมือของ Multigres ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Multigres ไม่ได้
Multigres ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Multigres ได้
- ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
ข · ตัวอื่นในหมวด ฐานข้อมูลและชุดข้อมูล ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- Supabase✓ ChatGPT
- Appwrite MCP✓ ChatGPT
- Pg Aiguide✓ ChatGPT
Claude Code ยังต่อ Multigres ไม่ได้
ผู้ทำมีแต่ไฟล์ติดตั้งสำหรับแอป Claude บนคอม
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Multigres ได้
- ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
Cursor ยังต่อ Multigres ไม่ได้
ผู้ทำมีแต่ไฟล์ติดตั้งสำหรับแอป Claude บนคอม
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Multigres ได้
- ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
VS Code ยังต่อ Multigres ไม่ได้
ผู้ทำมีแต่ไฟล์ติดตั้งสำหรับแอป Claude บนคอม
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Multigres ได้
- ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ค่าที่ต้องใส่เอง
DATABASE_URIความลับ จำเป็น envPostgres connection string of the Multigres gateway.MULTIGRES_ADMIN_URLenvmultiadmin HTTP address. The cluster tools are registered only when it is set.MULTIGRES_ADMIN_TOKENความลับ envBearer token for multiadmin started with --enable-auth.MULTIGRES_NODE_HOST_MAPenvreported=reachable host pairs, comma separated, for direct node connections.MULTIGRES_MCP_ACCESS_MODEenvrestricted (read-only) or unrestricted (adds the write tools).MULTIGRES_MCP_SQL_TIMEOUTenvStatement timeout for the SQL every tool sends, as a Go duration.
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
สรุป
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 12 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub JoongHyuk-Shin ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด เมื่อวาน
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ Apache-2.0
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
พูดคุย
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด ฐานข้อมูลและชุดข้อมูลi
- ดาวมากกว่า 79% ของอีก 1170 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 98% ของอีก 1170 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1170 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Multigres ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
ต้องใส่ค่าเหล่านี้: DATABASE_URI, MULTIGRES_ADMIN_TOKEN
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด เมื่อวาน และส่งรุ่นล่าสุด (0.1.7) เข้า registry วันนี้
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases
ตัวอื่นในหมวดเดียวกัน
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
multigres-mcp
An MCP server for Multigres clusters. It gives an MCP client two groups of tools:
- Postgres diagnostics through the Multigres gateway: schemas and objects, read-only SQL, query plans with hypothetical indexes, top queries, index advice and a health check. These follow the tools of postgres-mcp.
- Cluster tools through multiadmin: cluster status, backups, node logs, and in the unrestricted mode switching the primary and starting or expiring backups.
The server is read-only by default. Write tools are registered only in the unrestricted mode.
It has been tested against a local Multigres Docker cluster built from commit 5fa0f2955ede (2026-11-10, PostgreSQL 17.7, two cells) on Linux with Docker Engine. Other setups have not been tested.
Install
Each release has a multigres-mcp- .mcpb file. It is an MCP Bundle: clients that install bundles ask for the settings under "Configuration" and run the server. It is also a zip file whose server/ directory holds binaries for Linux and macOS on amd64 and arm64 and for Windows on amd64, which any other client can run directly.
Build
Requires Go 1.26 or later.
git clone https://github.com/JoongHyuk-Shin/multigres-mcp
cd multigres-mcp go build -o multigres-mcp ./cmd/multigres-mcp
The server talks MCP over standard input and output. ./multigres-mcp --help prints the options.
packaging/build-mcpb.sh builds the release bundle into dist/. It also needs jq, Node.js and openssl.
Configuration
Every option can be given as a flag or as an environment variable. A flag wins over the variable.
| Flag | Variable | Default | Meaning |
|---|---|---|---|
--database-url | DATABASE_URI | none, required | Connection string of the Multigres gateway. |
--admin-url | MULTIGRES_ADMIN_URL | none | multiadmin HTTP address. The cluster tools are registered only when it is set. |
--admin-token | MULTIGRES_ADMIN_TOKEN | none | Bearer token for multiadmin started with --enable-auth. |
--node-host-map | MULTIGRES_NODE_HOST_MAP | none | reported=reachable host pairs, comma separated, for the direct node connections of read_node_log and of the node option of diagnose and get_top_queries. multiadmin reports each node's host as the cluster sees it; this replaces a host that the server cannot reach. Ports are not changed. |
--access-mode | MULTIGRES_MCP_ACCESS_MODE | restricted | restricted (read-only) or unrestricted (adds the write tools). |
--sql-timeout | MULTIGRES_MCP_SQL_TIMEOUT | 25s | Statement timeout for the SQL every tool sends. See "Things to know". |
Direct node connections reuse the user, password and database of --database-url and take the host and port from multiadmin.
In the local Docker cluster both nodes report the host localhost, while their Postgres ports are reachable only at the container's address. Find that address in the Multigres checkout with:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$(docker compose ps -q multigres)"
and pass it as --node-host-map localhost= .
Adding it to an MCP client
With Claude Code, for the local Docker cluster (replace 172.18.0.2 with the address found above):
claude mcp add multigres -e DATABASE_URI=postgres://postgres:postgres@localhost:15432/postgres -- /path/to/multigres-mcp --admin-url http://localhost:15000 --node-host-map localhost=172.18.0.2
Other clients take the same command, arguments and environment in their server configuration, for example:
{
"mcpServers": { "multigres": { "type": "stdio", "command": "/path/to/multigres-mcp", "args": ["--admin-url", "http://localhost:15000", "--node-host-map", "localhost=172.18.0.2"], "env": { "DATABASE_URI": "postgres://postgres:postgres@localhost:15432/postgres" } } } }
Tools
| Tool | Mode | What it does |
|---|---|---|
list_schemas | both | List the schemas. The multigres schema is internal to Multigres. |
list_objects | both | List the tables, views, sequences or extensions of a schema. |
get_object_details | both | Columns, constraints and indexes of a table or view, or details of a sequence or extension. |
execute_sql | both | Run one read-only statement (SELECT, EXPLAIN of a SELECT, or SHOW). In both modes it only reads. |
explain_query | both | The plan of a query, optionally with ANALYZE or with hypothetical indexes. A query with $1 placeholders, as stored in query statistics, gets a generic plan. |
get_top_queries | both | The slowest or most expensive queries, from pg_stat_statements and from the query statistics each gateway keeps, shown separately. |
analyze_workload_indexes | both | Index advice for the workload in pg_stat_statements, by comparing planner costs with hypothetical indexes. Nothing is created. |
analyze_query_indexes | both | The same for up to 10 given queries. |
diagnose | both | Health checks: bloat, vacuum, locks, activity, waits, slow queries, missing indexes, cache, log, index health, sequences, replication and constraints. It starts with the statistics period of the node that answered. |
cluster_status | both, needs --admin-url | Cells, databases, the primary and replicas of each shard with LSN and lag, gateways, orchestrators, recent primary changes, and whether the connected user is a superuser. |
list_backups | both, needs --admin-url | Backups of a shard. |
verify_backups | both, needs --admin-url | Run pgBackRest verify on a shard's backups, which checks that the backups and archived WAL in the repository are valid. It does not run a restore. |
get_backup_job_status | both, needs --admin-url | Status of a backup job. |
read_node_log | both, needs --admin-url | The end of a node's Postgres log, read over a direct connection to that node. |
execute_write_sql | unrestricted | Run one statement that may change data or schema, committed if it succeeds. |
switch_primary | unrestricted, needs --admin-url | Ask Multigres to switch a shard's primary, then report the old and new primary and terms. Multigres may elect the same node again; the tool says so and does not retry. |
create_backup | unrestricted, needs --admin-url | Start a backup and return its job id. |
expire_backups | unrestricted, needs --admin-url | Expire backups with the retention rules configured in the cluster. |
set_postgres_restarts | unrestricted, needs --admin-url | Turn automatic Postgres restarts on a node on or off. |
That is 14 tools in the restricted mode and 19 in the unrestricted mode, or 9 and 10 without --admin-url. diagnose and get_top_queries take an optional node to read one node directly instead of through the gateway, for example the old primary after a failover.
Safety
The restricted mode does not register any tool that can write. Writing SQL is a tool of its own, execute_write_sql, so a client permission given to execute_sql never covers a write, even after the server is restarted in the unrestricted mode.
Every statement that execute_sql, explain_query and analyze_query_indexes receive passes these checks. They do not rely on each other: checks 1, 3 and 4 each stop a write on their own.
- It is parsed with the Multigres parser. It must be exactly one statement, the top statement must be
SELECT,EXPLAINof aSELECT, orSHOW, and the tree must not contain data-changing statements,SELECT INTOor locking clauses. Functions must be on an allow list (the postgres-mcp list with functions that have side effects removed), and a schema-qualified function must be inpg_catalog. - It is sent with the extended query protocol, which carries one statement only.
- The read-only connection is opened with
default_transaction_read_only=on. - It runs in
BEGIN TRANSACTION READ ONLY, which is always rolled back. search_pathis pinned, and a statement that calls an unqualified function whose name also exists outsidepg_catalogis not sent.- A statement timeout is set.
This covers the statements the model sends and the functions they call directly. The bodies of objects already in the database (views, functions, operators, policies) are trusted and not checked. Against a production database, connect as a read-only role as well. cluster_status shows whether the connected user is a superuser.
Multigres hands pooled Postgres connections from one client to the next. Within the same transaction, the server removes the hypothetical indexes and session advisory locks a tool call may have left on its connection. If that cleanup fails, it ends its own Postgres session rather than hand the state on. execute_write_sql rejects transaction control, session-level SET and RESET, multigres.* settings, hypopg functions, and statements that leave session state behind (temporary objects, PREPARE, LISTEN, DECLARE ... WITH HOLD, LOAD, DISCARD, DO). Session settings (set_config(..., false)) and the random seed (setseed) changed inside the body of a function or trigger are not removed and can reach the next client of that connection; like the other object bodies, they are trusted.
Direct node connections run fixed queries only, never SQL from the model.
The multiadmin address (in full and as host:port), the admin token and the database password are removed from tool results and error messages. The removal replaces text, so a password that is a common word is masked wherever that word appears. A password equal to the user or database name is not masked, because results show those names; the server prints a warning when it starts.
Things to know
--sql-timeoutdefaults to 25s because the multipooler ends a transaction's connection when one statement runs past--connpool-user-reserved-inactivity-timeout(default 30s). To use a longer timeout, raise that pooler setting too.- The results of
execute_sqlandexecute_write_sqlend with a line naming the settings the server set for that call only (statement_timeout,lock_timeout, and for readssearch_path), and thestatement_timeoutits own session had before. The gateway enforcesstatement_timeoutitself without setting it on the node, so the node'spg_settingsshows 0 for it whileSHOWthrough the gateway answers with the gateway's value. - Cumulative statistics are kept per node. After a failover the new primary's statistics do not include what happened on the old primary. The tools that use statistics start with the period they cover; the
nodeoption ofdiagnoseandget_top_queriesreads another node. - Index sizes in the advice are hypopg estimates and ignore btree deduplication. On a column with many repeated values the estimate can be several times the real size (on 200,000 rows with 1,000 distinct values: 4,644,864 bytes estimated, 1,384,448 bytes real).
- The gateway truncates the query text it keeps to
--query-metrics-sql-max-bytes(default 4096) without a marker. Plans and index advice use the fullpg_stat_statementstext or the full statement you give. get_top_queriesshows the first 2,000 characters of eachpg_stat_statementstext anddiagnosethe first 500, with the full length and thequeryid, so one very long statement cannot fill the 50,000-character result. The result says how to read a longer text withexecute_sqlin pieces of 20,000 characters. The lock check shows the first 500 characters of the waiting and blocking statements. The index advisors analyze the full text but list each skipped or costed query by its first 200 characters and full length, plus thequeryidfor workload queries, and show the first 500 characters of