MCP server: One MCP server.

pREST

@prestMCP server · External

Stdio MCP adapter bridging AI clients to pREST’s HTTP /_mcp endpoint for PostgreSQL APIs.

Databasesv0.1.3MITGo
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

Dockerghcr.io/prest/prest-mcp-adapter:0.1.3

Run

docker run -i --rm ghcr.io/prest/prest-mcp-adapter:0.1.3

MCP client config

{
  "mcpServers": {
    "prest": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/prest/prest-mcp-adapter:0.1.3"
      ]
    }
  }
}
README2 min read

pREST MCP Adapter

Official stdio adapter for pREST’s HTTP MCP endpoint.

This adapter lets MCP clients that require stdio connect to a running pREST instance exposing an HTTP MCP endpoint at /_mcp.

text
MCP client / AI IDE
        ↓ stdio (NDJSON JSON-RPC)
prest-mcp
        ↓ HTTP POST
http://localhost:3000/_mcp
        ↓
pREST

The adapter is a tiny transport bridge. It does not introspect schemas, generate SQL, or implement MCP tools. Those live in pREST.

Requirements

  • A running pREST instance with the /_mcp route available
  • Go 1.26+ (to build from source)

Environment variables

VariableRequiredDefaultDescription
PREST_MCP_URLyes—URL of the pREST HTTP MCP endpoint, e.g. http://localhost:3000/_mcp
PREST_MCP_TOKENno—Bearer token when pREST auth is enabled
PREST_MCP_TIMEOUT_MSno30000HTTP timeout in milliseconds

Install

From source

bash
go install github.com/prest/prest-mcp-adapter/cmd/prest-mcp@latest

Docker / OCI

bash
docker pull ghcr.io/prest/prest-mcp-adapter:0.1.3

Local usage

bash
PREST_MCP_URL=http://localhost:3000/_mcp prest-mcp

With token

bash
PREST_MCP_URL=https://api.example.com/_mcp \
PREST_MCP_TOKEN=secret \
prest-mcp

Docker usage

bash
docker run --rm -i \
  -e PREST_MCP_URL=http://host.docker.internal:3000/_mcp \
  ghcr.io/prest/prest-mcp-adapter:0.1.3

MCP client configuration

Cursor

Add to your MCP settings (e.g. .cursor/mcp.json):

json
{
  "mcpServers": {
    "prest": {
      "command": "prest-mcp",
      "env": {
        "PREST_MCP_URL": "http://localhost:3000/_mcp"
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

json
{
  "mcpServers": {
    "prest": {
      "command": "prest-mcp",
      "env": {
        "PREST_MCP_URL": "http://localhost:3000/_mcp"
      }
    }
  }
}

Generic MCP client

Any client that can launch a stdio MCP server:

bash
PREST_MCP_URL=http://localhost:3000/_mcp prest-mcp

Protocol messages are newline-delimited JSON-RPC on stdin/stdout. Logs go only to stderr.

Security recommendation

Use a read-only PostgreSQL user for AI/MCP workflows unless write access is explicitly required.

Do not expose unauthenticated MCP endpoints publicly.

Prefer local or private-network pREST MCP endpoints.

When pREST auth is enabled, set PREST_MCP_TOKEN to a valid JWT.

Development

bash
make test       # go test -race ./... and overall coverage >= 80%
make coverage   # coverage gate only
make vet
make build      # writes bin/prest-mcp

License

MIT — see LICENSE.

Similar modules

Browse Databases