About pREST
pREST MCP Adapter is a stdio transport bridge for MCP clients that need to connect to a running pREST instance's HTTP `/_mcp` endpoint. It forwards protocol messages without implementing tools or inspecting schemas.
Key features
- 01Bridge stdio MCP traffic to HTTP
- 02Connect to pREST `/_mcp` endpoint
- 03Optional bearer-token authentication
- 04Configurable HTTP timeout
- 05Logs written to stderr
Use cases
- 01Connect a stdio-only MCP client to pREST
- 02Use a bearer token with an authenticated pREST endpoint
- 03Run the adapter in Docker
MCP support
The adapter forwards MCP JSON-RPC messages between a client's stdio transport and pREST's HTTP MCP endpoint. The MCP tools and schema handling are provided by pREST, not the adapter.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm -e PREST_MCP_URL -e PREST_MCP_TOKEN -e PREST_MCP_TIMEOUT_MS ghcr.io/prest/prest-mcp-adapter:0.1.3PREST_MCP_URLURL of your running pREST HTTP MCP endpoint, for example http://localhost:3000/_mcpPREST_MCP_TOKENSecretOptional bearer token used to authenticate with the pREST MCP endpoint.PREST_MCP_TIMEOUT_MSOptional HTTP timeout in milliseconds. Defaults to 30000.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/prest/prest-mcp-adapter:0.1.3stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEpREST 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.
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
/_mcproute available - Go 1.26+ (to build from source)
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
PREST_MCP_URL | yes | — | URL of the pREST HTTP MCP endpoint, e.g. http://localhost:3000/_mcp |
PREST_MCP_TOKEN | no | — | Bearer token when pREST auth is enabled |
PREST_MCP_TIMEOUT_MS | no | 30000 | HTTP timeout in milliseconds |
Install
From source
go install github.com/prest/prest-mcp-adapter/cmd/prest-mcp@latest
Docker / OCI
docker pull ghcr.io/prest/prest-mcp-adapter:0.1.3
Local usage
PREST_MCP_URL=http://localhost:3000/_mcp prest-mcp
With token
PREST_MCP_URL=https://api.example.com/_mcp \
PREST_MCP_TOKEN=secret \
prest-mcp
Docker usage
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):
{
"mcpServers": {
"prest": {
"command": "prest-mcp",
"env": {
"PREST_MCP_URL": "http://localhost:3000/_mcp"
}
}
}
}
Claude Desktop
Add to claude_desktop_config.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:
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
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.