{"id":"krdk01-postgresql-mcp-server","name":"postgresql-mcp-server","homepage":null,"repo_url":"https://github.com/krdk01/postgresql-mcp-server","category":"databases","subcategories":[],"tags":["mcp","postgresql","spring-boot","stdio","sse","database-access","read-only","agent-tools"],"what_it_does":"Provides an MCP server (implemented as a Spring Boot app) that exposes read-only access to a PostgreSQL database. It offers an MCP tool to run validated SQL queries (requires WHERE clause; blocks SELECT *) and a resource endpoint for table schema discovery from information_schema.","use_cases":["Allowing an AI agent to query a PostgreSQL database in read-only mode","Providing schema discovery for prompt/context (table/column metadata)","Building Claude Desktop or VS Code MCP workflows that need read access to database tables"],"not_for":["Write/update/delete access to PostgreSQL","Use as a general-purpose database proxy for arbitrary SQL without guardrails","Handling sensitive workloads where strong transport and authentication guarantees for the MCP process are not documented"],"best_when":"You want an MCP-compatible, STDIO-based (or optional SSE mode) way to retrieve read-only, paged query results and schema metadata with basic SQL safety constraints.","avoid_when":"You need robust security controls beyond “database credentials in env vars,” or you require guarantees about pagination/rate limiting/error handling behavior under load that are not documented.","alternatives":["A dedicated read-only PostgreSQL API layer (REST/GraphQL) with strict query builders","Direct use of a SQL read-only user with an internal query service/ORM","Existing MCP servers (if available) that provide higher-level query abstractions and stronger security/auth guidance"],"af_score":42.0,"security_score":31.8,"reliability_score":12.5,"package_type":"mcp_server","discovery_source":["github"],"priority":"low","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-04-04T20:02:01.710557+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":["Database credentials via environment variables (DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD)","Assumes MCP client connects over local transport (STDIO) as configured via container/command"],"oauth":false,"scopes":false,"notes":"No MCP-layer authentication/authorization is described in the provided README; security appears to rely on deploying the server in a trusted environment and using a read-only database account."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":null},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":42.0,"security_score":31.8,"reliability_score":12.5,"mcp_server_quality":78.0,"documentation_accuracy":62.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":45.0,"rate_limit_clarity":0.0,"tls_enforcement":20.0,"auth_strength":35.0,"scope_granularity":20.0,"dependency_hygiene":40.0,"secret_handling":45.0,"security_notes":"Security relies primarily on using a read-only PostgreSQL account and providing database credentials via environment variables. The tool validates SQL to require WHERE and disallow SELECT * / wildcard-like patterns, which reduces but does not eliminate injection or data-exfiltration risk. TLS/authz at the MCP transport layer (especially for SSE mode) are not documented, and there is no mention of MCP-layer authorization or fine-grained scopes.","uptime_documented":0.0,"version_stability":20.0,"breaking_changes_history":0.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":"Read-only queries are inherently non-mutating, but no idempotency semantics (retries, transaction boundaries beyond read-only) are documented at the MCP tool level.","pagination_style":"pageNumber/pageSize (zero-based pages; max 50)","retry_guidance_documented":false,"known_agent_gotchas":["The query tool requires a WHERE clause and forbids SELECT *; the agent must ensure compliant SQL to avoid tool rejections.","Pagination is LIMIT/OFFSET based; ordering is not specified in the tool contract, so results may be nondeterministic across pages unless the agent includes an ORDER BY in the SQL.","Schema resources are dynamically discovered on each request; an agent may incur repeated metadata lookups and potential latency."]}}