Skip to main content
Glama
edintwi
by edintwi
README.md
# 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

```bash
cp .env.example .env
# edit .env and set DATABASE_URL
```

## Run with Docker

```bash
docker compose up --build
```

The MCP endpoint is then available at `http://localhost:3000/mcp`.

## Run locally (without Docker)

```bash
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`, ... in `sql` and pass values in `params`.