{"id":"luanvuhlu-mcp-server-postgres","name":"mcp-server-postgres","homepage":null,"repo_url":"https://github.com/luanvuhlu/mcp-server-postgres","category":"infrastructure","subcategories":[],"tags":["mcp","postgresql","spring-boot","read-only-sql","database-access","agent-tools"],"what_it_does":"Provides an MCP (Model Context Protocol) server that exposes PostgreSQL metadata and read-only query capabilities (primarily SELECT) via MCP tools. The server accepts dynamic database connection parameters per request and supports listing schemas/tables and running read-only queries with validation.","use_cases":["LLM/agent-driven database exploration (list schemas/tables) via MCP","Read-only analytics and data retrieval with constrained SQL (SELECT-only policy)","Integrating PostgreSQL data access into MCP-compatible clients (e.g., Claude Desktop)","Prototyping agent workflows that need controlled database access"],"not_for":["Writing/modifying data in PostgreSQL (not intended for non-read-only operations)","Exposing a public internet-facing database tool without additional network/security controls","Workloads requiring complex pagination controls, mutations, or full SQL dialect support without constraints"],"best_when":"You need controlled, read-only PostgreSQL access for an MCP client/agent and can supply database connection details securely per request (or via a trusted environment).","avoid_when":"Avoid if you need data-changing operations, if you cannot enforce network/database access restrictions, or if you cannot securely handle per-request credentials.","alternatives":["Generic PostgreSQL APIs (server-side query endpoints) with RBAC and allowlisted queries","PostgREST / Hasura (GraphQL over Postgres) with strict permissions for read-only use","Custom MCP server wrapping a restricted database proxy (parameterized allowlists)","Direct database read-only connections from the client with least-privilege DB roles (no agent tool mediation)"],"af_score":50.2,"security_score":34.8,"reliability_score":30.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"low","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-04-04T20:01:58.263862+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["No explicit app-level authentication documented for MCP server"],"oauth":false,"scopes":false,"notes":"README shows database credentials (host/database/username/password) are provided as tool arguments per request; no separate MCP authentication mechanism is described."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source project (MIT) with no hosted pricing described."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":50.2,"security_score":34.8,"reliability_score":30.0,"mcp_server_quality":80.0,"documentation_accuracy":75.0,"error_message_quality":null,"error_message_notes":"No concrete error payload examples or JSON-RPC/MCP error code mapping shown in README.","auth_complexity":25.0,"rate_limit_clarity":0.0,"tls_enforcement":30.0,"auth_strength":25.0,"scope_granularity":40.0,"dependency_hygiene":50.0,"secret_handling":35.0,"security_notes":"Security claims include SELECT/WITH/SHOW/EXPLAIN/DESCRIBE allowlisting and input validation, which is a strong intention for preventing writes. However, the README does not describe transport security/TLS requirements for MCP, does not document MCP-level authentication/authorization, and requires per-request database passwords as tool arguments—raising risk of secret exposure if the agent or client mishandles logs/telemetry. No details are provided on rate limiting, query sandboxing beyond validation, or dependency/security posture.","uptime_documented":0.0,"version_stability":45.0,"breaking_changes_history":40.0,"error_recovery":35.0,"idempotency_support":"false","idempotency_notes":"Read-only operations are inherently non-mutating, but the README does not discuss idempotency semantics or retries for MCP tool calls.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Tool inputs include database credentials; agents must avoid logging or leaking them.","Read-only validation is described, but exact SQL validation rules/edge cases are not documented in detail.","Results pagination/limits are only superficially described (e.g., limit parameter) without clear cursoring strategy."]}}