multigres-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATABASE_URI | Yes | Connection string of the Multigres gateway. Required. | |
| MULTIGRES_ADMIN_URL | No | multiadmin HTTP address. The cluster tools are registered only when this is set. | |
| MULTIGRES_ADMIN_TOKEN | No | Bearer token for multiadmin started with --enable-auth. | |
| MULTIGRES_NODE_HOST_MAP | No | reported=reachable host pairs, comma separated, for direct node connections used by read_node_log and the node option of diagnose and get_top_queries. | |
| MULTIGRES_MCP_ACCESS_MODE | No | Access mode: restricted (read-only) or unrestricted (adds the write tools). | restricted |
| MULTIGRES_MCP_SQL_TIMEOUT | No | Statement timeout for the SQL every tool sends. | 25s |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_query_indexesA | Recommend indexes for up to 10 given SELECT queries, by comparing planner costs with hypothetical indexes (hypopg). Nothing is created. |
| analyze_workload_indexesB | Recommend indexes for the current workload in pg_stat_statements, by comparing planner costs with hypothetical indexes (hypopg). Nothing is created. |
| diagnoseA | Run health checks (bloat, vacuum, locks, activity, waits, slow queries, missing indexes, cache, log, index health, sequences, replication, constraints), after the statistics period of the node that answered. |
| execute_sqlA | Run one read-only SQL statement (SELECT, EXPLAIN of a SELECT, or SHOW) through the Multigres gateway. The statement is checked before it is sent and runs in a read-only transaction that is always rolled back. Functions must be on the allow list. |
| explain_queryA | Show the execution plan of a SQL query with cost estimates. A query with $1-style placeholders (as in query statistics) is explained with a generic plan. Hypothetical indexes need the hypopg extension. |
| get_object_detailsA | Show columns, constraints and indexes of a table or view, or details of a sequence or extension. |
| get_top_queriesA | Report the slowest or most resource-intensive queries from pg_stat_statements and from the query statistics each Multigres gateway keeps. The two sources cover different periods and are shown separately. |
| list_objectsC | List objects in a schema. |
| list_schemasA | List all schemas in the database. The multigres schema is internal to Multigres. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
The two index advisors are cleanly separated by input source (user-supplied SELECTs vs. pg_stat_statements workload), and read paths (list_schemas, list_objects, get_object_details) are distinct. Minor overlap exists between explain_query and execute_sql's EXPLAIN mode, and between get_top_queries and diagnose's slow-query/log checks, but descriptions make the intended split clear.
Nearly all tools follow a predictable snake_case verb_noun pattern (list_schemas, list_objects, get_top_queries, analyze_workload_indexes). The lone bare verb 'diagnose' is the only deviation, though it is still readable and distinct.
Nine tools is well-scoped for a read-only Postgres diagnostics/monitoring server, with no redundant entries and each tool earning its place. Nothing feels padded or missing at the count level.
The surface covers discovery, inspection, ad-hoc querying, plan explanation, index advising, and health checks — a solid lifecycle for a diagnostic (non-mutating) server. Gaps are minor: no direct access to server settings/pg_settings or explicit index list, though get_object_details and diagnose cover much of that indirectly.