{"id":"9df618f9-5c93-496e-b6fc-662e3402908d","shortId":"H3RSed","kind":"mcp","title":"PostgreSQL Secure","tagline":"Security-hardened read-only PostgreSQL MCP server with AST-based SQL guard using pglast, per-transaction safety envel...","description":"Security-hardened read-only PostgreSQL MCP server with AST-based SQL guard using pglast, per-transaction safety envelope, and JSON-Lines audit logging.\n\nProvides agents with read-only PostgreSQL access through schema introspection, query execution with row caps and timeouts, EXPLAIN analysis, pg_stat_statements summaries, and pgvector similarity search. Implements a layered security model: least-privilege database role as the primary guard, pglast AST parsing to reject dangerous SQL patterns, per-transaction read-only envelopes, and structured audit logging. Includes 30 adversarial payload tests validating read-only enforcement. Supports PostgreSQL 13–17 and requires Python 3.11+.","tags":["postgresql","secure"],"capabilities":["mcp","transport-stdio","open-source"],"categories":[],"synonyms":[],"warnings":[],"endpointUrl":"https://github.com/bettyguo/mcp-postgres","protocol":"mcp","transport":"stdio","auth":{"type":"mcp","details":{"transport":"stdio"}},"qualityScore":"0.564","qualityRationale":"deterministic score 0.56 from registry signals: · indexed on pulsemcp · has source repo · 7 github stars · registry-generated description present","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:mcp:v1","enrichmentVersion":1,"enrichedAt":"2026-05-31T22:23:02.949Z","embedding":null,"createdAt":"2026-05-15T09:22:00.371Z","updatedAt":"2026-05-31T22:23:02.949Z","lastSeenAt":"2026-05-31T22:23:02.949Z","tsv":"'13':126 '17':127 '3.11':131 '30':115 'access':60 'adversari':116 'agent':54 'analysi':72 'ast':14,36,96 'ast-bas':13,35 'audit':51,112 'base':15,37 'cap':68 'danger':100 'databas':89 'enforc':123 'envel':24 'envelop':46,109 'execut':65 'explain':71 'guard':17,39,94 'harden':5,27 'implement':81 'includ':114 'introspect':63 'json':49 'json-lin':48 'layer':83 'least':87 'least-privileg':86 'line':50 'log':52,113 'mcp':10,32 'model':85 'open-source' 'pars':97 'pattern':102 'payload':117 'per':21,43,104 'per-transact':20,42,103 'pg':73 'pglast':19,41,95 'pgvector':78 'postgresql':1,9,31,59,125 'primari':93 'privileg':88 'provid':53 'python':130 'queri':64 'read':7,29,57,107,121 'read-on':6,28,56,106,120 'reject':99 'requir':129 'role':90 'row':67 'safeti':23,45 'schema':62 'search':80 'secur':2,4,26,84 'security-harden':3,25 'server':11,33 'similar':79 'sql':16,38,101 'stat':74 'statement':75 'structur':111 'summari':76 'support':124 'test':118 'timeout':70 'transact':22,44,105 'transport-stdio' 'use':18,40 'valid':119","prices":[{"id":"d0c11e40-226a-41f3-99ed-e5fe264f4475","listingId":"9df618f9-5c93-496e-b6fc-662e3402908d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"mcp-free","isPrimary":true,"details":{"transport":"stdio"},"createdAt":"2026-05-15T09:22:00.371Z"}],"sources":[{"listingId":"9df618f9-5c93-496e-b6fc-662e3402908d","source":"pulsemcp","sourceId":"https://www.pulsemcp.com/servers/bettyguo-postgres","sourceUrl":"https://api.pulsemcp.com/v0beta/servers","isPrimary":true,"firstSeenAt":"2026-05-15T09:22:00.371Z","lastSeenAt":"2026-05-31T22:23:02.949Z"}],"details":{"listingId":"9df618f9-5c93-496e-b6fc-662e3402908d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"source":"pulsemcp","transport":"stdio","server_name":"PostgreSQL Secure","github_stars":7,"registry_url":"https://www.pulsemcp.com/servers/bettyguo-postgres","source_code_url":"https://github.com/bettyguo/mcp-postgres"},"updatedAt":"2026-05-31T22:23:02.949Z"}}