sql-mcp
Local MCP server exposed over HTTP that runs inside Docker and provides a single query tool against a PostgreSQL database supplied via DATABASE_URL.
Configure
cp .env.example .env
# edit .env and set DATABASE_URL
Run with Docker
docker compose up --build
The MCP endpoint is then available at http://localhost:3000/mcp.
Run locally (without Docker)
npm install
npm run build
npm start
# or, for hot reload:
npm run dev
Register with an MCP client
Point your MCP-compatible client at the streamable HTTP endpoint:
http://localhost:3000/mcp
The transport is streamable-http. Initialize the session with a standard MCP initialize request; subsequent requests must include the mcp-session-id header returned by the server.
Tool
query({ sql: string, params?: unknown[] })โ runs a parameterized SQL statement and returns{ command, rowCount, rows }as JSON. Use$1,$2, ... insqland pass values inparams.