Back to Browse

Postgres MCP Server

Data & AnalyticsLow Risk9.7MCP RegistryLocal
Free

Server data from the Official MCP Registry

Explore and query PostgreSQL read-only: catalogue search, schema introspection and bounded queries.

About

Explore and query PostgreSQL read-only: catalogue search, schema introspection and bounded queries.

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (4 strong, 1 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

14 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Database hostOptional

Environment variable: SEZZLEE_POSTGRES_SERVER

Database portOptional

Environment variable: SEZZLEE_POSTGRES_PORT

Database nameOptional

Environment variable: SEZZLEE_POSTGRES_DATABASE

Login of a read-only principalOptional

Environment variable: SEZZLEE_POSTGRES_USER

Password of that loginRequired

Environment variable: SEZZLEE_POSTGRES_PASSWORD

TLS modeOptional

Environment variable: SEZZLEE_POSTGRES_SSL_MODE

Connect timeout in millisecondsOptional

Environment variable: SEZZLEE_POSTGRES_CONNECT_TIMEOUT_MS

Query timeout in millisecondsOptional

Environment variable: SEZZLEE_POSTGRES_QUERY_TIMEOUT_MS

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-sezzlee-postgres": {
      "env": {
        "SEZZLEE_POSTGRES_PORT": "your-sezzlee-postgres-port-here",
        "SEZZLEE_POSTGRES_USER": "your-sezzlee-postgres-user-here",
        "SEZZLEE_POSTGRES_SERVER": "your-sezzlee-postgres-server-here",
        "SEZZLEE_POSTGRES_DATABASE": "your-sezzlee-postgres-database-here",
        "SEZZLEE_POSTGRES_PASSWORD": "your-sezzlee-postgres-password-here",
        "SEZZLEE_POSTGRES_SSL_MODE": "your-sezzlee-postgres-ssl-mode-here",
        "SEZZLEE_POSTGRES_QUERY_TIMEOUT_MS": "your-sezzlee-postgres-query-timeout-ms-here",
        "SEZZLEE_POSTGRES_CONNECT_TIMEOUT_MS": "your-sezzlee-postgres-connect-timeout-ms-here"
      },
      "args": [
        "-y",
        "@sezzlee/postgres-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Sezzlee MCP

Swagger for agents. Sezzlee turns what you already have — an HTTP backend, a folder of spreadsheets, a SQL Server or PostgreSQL database — into tools an AI agent can find and call over the Model Context Protocol.

It comes in two shapes:

  • The HTTP catalog embeds in an ASP.NET Core or NestJS backend. It exposes your endpoints as a search-first tool catalog and replays every agent call through your backend's own request pipeline, so your authentication, authorization and validation apply unchanged. For a backend on any other stack, an OpenAPI gateway builds the same catalog from its document.
  • Source servers are standalone, read-only MCP servers for local files and databases: Excel, XML, PDF, Microsoft SQL Server and PostgreSQL, plus a server that hands bounded language work to a local model.

Status: early. Every package below is on npm or NuGet; APIs may still change. The spec, the fixture corpus and both SDKs are tested in CI.

Why

A naive MCP adapter turns every endpoint into a tool and forwards calls over the network. That floods the agent's context, loses the caller's identity and silently papers over what it cannot represent. Sezzlee instead:

  • shows the agent three meta-tools (search_tools, load_tool, invoke_tool) rather than the whole catalog, so the size of your API does not grow the agent's context;
  • decides what a caller can see from the backend's own authorization, and still enforces every call in the backend at invoke time;
  • treats every silent resolution — a name collision, an unknown argument, a truncated response — as an error with a code the agent can act on.

The longer argument is on the docs site: why sezzlee is not an OpenAPI adapter.

Quick start

Pick what you need. The servers need Node.js 22+; the ASP.NET Core SDK targets .NET 8 and 10.

I want to…InstallStart here
Expose an ASP.NET Core API to agentsdotnet add package Sezzlee.AspNetCoresdks/dotnet
Expose a NestJS API to agentsnpm install @sezzlee/sdk-nestjssdks/nestjs
Expose any backend that has an OpenAPI filenpx -y @sezzlee/openapi-mcppackages/servers/openapi-mcp
Let an agent read Excel workbooksnpx -y @sezzlee/excel-mcppackages/servers/excel-mcp
Let an agent read XML documentsnpx -y @sezzlee/xml-mcppackages/servers/xml-mcp
Let an agent read PDF documentsnpx -y @sezzlee/pdf-mcppackages/servers/pdf-mcp
Let an agent query SQL Server, read-onlynpx -y @sezzlee/mssql-mcppackages/servers/mssql-mcp
Let an agent query PostgreSQL, read-onlynpx -y @sezzlee/postgres-mcppackages/servers/postgres-mcp
Hand bounded text work to a local modelnpx -y @sezzlee/llm-mcppackages/servers/llm-mcp
Build my own read-only MCP servernpm install @sezzlee/mcp-corepackages/cores/mcp-core

Each package README has its own quick start, configuration and limits. To build from source, see CONTRIBUTING.md.

Packages

HTTP catalog

PackageWhat it isStatus
Sezzlee.AspNetCoreASP.NET Core SDKalpha
@sezzlee/sdk-nestjsNestJS SDKalpha
@sezzlee/openapi-mcpGateway: an OpenAPI document as a catalog over a remote backendalpha
@sezzlee/openapiSwagger 2.0 / OpenAPI 3.0–3.2 ingestionalpha
@sezzlee/coreTypeScript reference implementation of the specalpha
specThe normative spec and JSON Schemas — the single source of truthnormative
conformance480 JSON fixtures across 11 kinds that every implementation must pass—

Source servers and their cores

PackageWhat it isStatus
@sezzlee/excel-mcpReads local Excel workbookspublished
@sezzlee/xml-mcpReads local XML documentspublished
@sezzlee/pdf-mcpReads local PDF documents, with pluggable OCRpublished
@sezzlee/mssql-mcpRead-only Microsoft SQL Serverpublished
@sezzlee/postgres-mcpRead-only PostgreSQLpublished
@sezzlee/llm-mcpDelegates bounded language work to a local model (Ollama)published
@sezzlee/ocr-ollamaOCR provider for pdf-mcppublished
@sezzlee/pdf-raster-pdfjsPage rasterizer for pdf-mcppublished
@sezzlee/mcp-coreSource-agnostic machinery for read-only MCP serverspublished
@sezzlee/file-coreSandboxed file layer over mcp-corepublished
@sezzlee/db-coreRelational layer over mcp-core; dialects and drivers plug inpublished
@sezzlee/ooxml-coreReader for OOXML (zip/OPC) containerspublished

Every package is published from CI with npm provenance; the tarballs are checked and smoke-installed before publication.

Also in this repository

  • apps/docs — the documentation site (TanStack Start). Run it with pnpm --filter @sezzlee/docs dev and open http://localhost:5180.

How the HTTP catalog works

  1. At startup the SDK reads your framework's route and authorization metadata and builds a catalog of tools, named by fixed rules; a name collision fails startup.
  2. An agent calls search_tools, gets compact cards for the tools this caller may use, and load_tool for the full schema of the one it picks, with a version fingerprint of it.
  3. invoke_tool composes an HTTP request from the arguments and replays it through your pipeline as the caller. The response is mapped to a fixed error vocabulary and a size budget before it reaches the agent. A call that passes version back is refused with tool_changed if the server answering it holds a different definition, as can happen mid-deploy. A behaviour change behind an unchanged schema is caught the same way once you declare it as a revision, on the operation, its controller or the whole catalog.

The rules for each step are in the spec, and the conformance corpus pins them so the TypeScript and C# implementations cannot drift apart.

Documentation

License

MIT — see LICENSE.

Reviews

No reviews yet

Be the first to review this server!