Rails PG Extras MCP
An MCP interface for the rails-pg-extras gem, providing PostgreSQL metadata and performance analysis through LLM prompts.
Rails PG Extras MCP

MCP (Model Context Protocol) interface for rails-pg-extras gem. Easily explore PostgreSQL metadata and debug performance issues. Check for table bloat, slow queries, unused indexes, and more. Run EXPLAIN ANALYZE on bottlenecks and get clear, LLM-powered insights to optimize your database.
Use a minimally privileged, read-only user to eliminate the risk of data modification or exposure.
Check out this post for more in-depth info on the project.

Installation
bundle add rails-pg-extras-mcp
The library supports MCP protocol via HTTP SSE interface.
config/routes.rb
mount RailsPgExtrasMcp::App.build, at: "pg_extras_mcp"
with optional authorization:
opts = { auth_token: "secret" }
mount RailsPgExtrasMcp::App.build(opts), at: "pg_extras_mcp"
Refer to the fast-mcp docs for a complete list of supported options (the opts hash is passed directly as-is). For production deployments, you'll likely need a similar config:
opts = { allowed_origins: [ /.*./ ], allowed_ips: [ "*" ], auth_token: "secret", localhost_only: false }
mount RailsPgExtrasMcp::App.build(opts) at: "pg_extras_mcp"
Next, install mcp-remote:
npm install -g mcp-remote
and in your LLM of choice:
{
"mcpServers": {
"pg-extras": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3000/pg_extras_mcp/sse",
"--header",
"Authorization: secret"
]
}
}
}
You can now ask LLM questions about the metadata and performance metrics of your database.
Optional EXPLAIN ANALYZE support
calls and outliers methods return a list of bottleneck queries. LLM can get better insights into these queries by performing EXPLAIN and EXPLAIN ANALYZE analysis. MCP server exposes two optional methods for this purpose: explain and explain_analyze.
You can enable them by setting the following ENV variables:
ENV['PG_EXTRAS_MCP_EXPLAIN_ENABLED'] = 'true'
ENV['PG_EXTRAS_MCP_EXPLAIN_ANALYZE_ENABLED'] = 'true'
Enabling these features means that an LLM, can run arbitrary queries in your database. The execution context is wrapped in a transaction and rolled back, so, in theory, any data modification should not be possible. But it's advised to configure a read-only permission if you want to use these features. By specifying ENV['RAILS_PG_EXTRAS_MCP_DATABASE_URL'] you can overwrite the default Rails ActiveRecord database connection to restrict an access scope:
Least responsibility
If you're not planing to use EXPLAIN ANALYZE features, you should configure a user with read access only to the metadata tables:
CREATE ROLE extras_viewer NOLOGIN;
CREATE USER extras_user WITH PASSWORD 'your_password';
GRANT extras_viewer TO extras_user;
GRANT CONNECT ON DATABASE your_db_name TO extras_user;
GRANT USAGE ON SCHEMA public TO extras_user;
GRANT SELECT ON pg_stat_statements TO extras_user;
GRANT SELECT ON pg_stat_activity, pg_locks TO extras_user;
GRANT SELECT ON pg_stat_user_indexes, pg_index TO extras_user;
GRANT SELECT ON pg_stat_all_tables, pg_stat_database, pg_settings, pg_namespace TO extras_user;
GRANT EXECUTE ON FUNCTION pg_relation_size(regclass) TO extras_user;
GRANT EXECUTE ON FUNCTION pg_indexes_size(regclass) TO extras_user;
GRANT EXECUTE ON FUNCTION pg_table_size(regclass) TO extras_user;
GRANT EXECUTE ON FUNCTION pg_total_relation_size(regclass) TO extras_user;
You can ask an LLM to check which db user it's connected with using connections tool.
Status
The project is in an early beta, so proceed with caution.
Máy chủ liên quan
MCP Memory Dashboard
A desktop application for managing and interacting with the MCP Memory Service, a semantic memory system built on the Model Context Protocol.
SET-MCP
Access financial statements, including income, balance sheets, and cash flow, for companies listed on the Securities Exchange of Thailand (SET).
BioMCP
Connects AI assistants to authoritative biomedical data sources like PubMed and ClinicalTrials.gov, enabling natural language queries.
Octopus MCP Server
A high-performance, persistent knowledge base MCP server built with Rust. Supports local deployment with hybrid datastores like Qdrant, Neo4j, and Redis.
Alpha Vantage MCP Server
Enables AI agents and applications to access real-time and 20+ years historical financial market data through natural language queries.
Snowflake MCP Server
A read-only server for interacting with Snowflake databases, allowing SELECT queries and access to schema context.
MongoDB MCP Server
An MCP server providing tools and prompts for interacting with a MongoDB database.
InfluxDB MCP Server
An MCP server for interacting with InfluxDB time-series databases, enabling AI assistants to work with time-series data.
CData EnterpriseDB MCP Server
A read-only MCP server by CData that enables LLMs to query live data from EnterpriseDB databases.
MCP ArcKnowledge
Manage and query custom knowledge bases using webhook endpoints.