prest
PostgreSQL ➕ REST, low-code, simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new, MCP server
Links
README
From the repo.
pRESTd
pREST (PostgreSQL REST) is a production-ready API that delivers instant REST and Model Context Protocol (MCP) APIs on top of your existing or new Postgres database—CRUD, custom SQL routes, auth, ACL, and a read-only MCP endpoint—without hand-writing a backend.
PostgreSQL version 9.5 or higher
Contributor License Agreement —
Documentation
Full documentation lives at docs.prestd.com.
| Topic | Link |
|---|---|
| Get pREST (Docker, Homebrew, Go) | Get pREST |
| Configuration | Configuring pREST |
| API reference | API Reference |
| MCP over HTTP | MCP over HTTP |
| Multi-database | Multi-database |
| Databases & roadmap | Databases · Roadmap |
| AI clients (Cursor, Claude, …) | AI and MCP |
Quick start
Install and run options (Docker, Homebrew, or Go) are documented in Get pREST. Point pREST at Postgres (PREST_PG_URL or pg.* / DATABASE_URL), then call:
GET /{database}/{schema}/{table}
See Configuring pREST for auth, ACL, custom queries, and MCP.
1-Click Deploy
Heroku
Deploy to Heroku and get a realtime RESTful API backed by Heroku Postgres:
More: Deploy in Heroku.
Contributing
Contributions are welcome. See the Development Guide and Contributing to pREST. Please sign the CLA.
Questions? GitHub Discussions or Discord.
Testing
Run unit tests locally:
make test-unit
Run integration suites inside Docker (no local Postgres required):
# Postgres (full stack: default, auth, multicluster, queries) — also: make test-integration
make test-integration-postgres
# TimescaleDB (Timescale-specific E2E only)
make test-integration-timescaledb
Or with Docker Compose:
docker compose -f integration/postgres/docker-compose.yml up -d --wait \
postgres postgres-b db-init prestd prestd-multicluster prestd-auth prestd-queries
docker compose -f integration/postgres/docker-compose.yml run --rm --no-deps tests
docker compose -f integration/postgres/docker-compose.yml down -v --remove-orphans
Postgres compose runs ./integration/suites/... and ./integration/postgres/....
TimescaleDB compose runs ./integration/timescaledb/... only (see .github/workflows/test-integration-timescaledb.yml).
Network tests require PREST_TEST_URL (and flavor-specific URLs for the Postgres job); outside Compose those tests skip when the URLs are unset.
Example: Docker Build
Build the Docker image locally for development (compiles from source):
docker build -t prest/prest:latest .
For release builds, GoReleaser uses the same Dockerfile / Dockerfile.noplugins with a pre-built prestd binary. Local source builds can pass version metadata via build arguments:
docker build \
--build-arg VERSION=v1.0.0 \
--build-arg COMMIT=hash \
--build-arg DATE=2026-02-11 \
-t prest/prest:latest .
Collected info
- ★ 4,600 stars
- ⎇ 312 forks
- Language: Go
- Source updated: 7/27/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.