$git clone https://github.com/prest/prest_p_REST (P_ostgreSQL_ 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.
| 1 | # pRESTd |
| 2 | |
| 3 | [](https://github.com/prest/prest/actions/workflows/test-unit.yml) |
| 4 | [](https://pkg.go.dev/github.com/prest/prest/v2) |
| 5 | [](https://goreportcard.com/report/github.com/prest/prest) |
| 6 | [](https://codecov.io/gh/prest/prest) |
| 7 | [](https://formulae.brew.sh/formula/prestd) |
| 8 | [](https://discord.gg/JnRjvu39w8) |
| 9 | |
| 10 | _p_**REST** (**P**_ostgreSQL_ **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. |
| 11 | |
| 12 | > PostgreSQL version 9.5 or higher |
| 13 | |
| 14 | Contributor License Agreement — [](https://cla-assistant.io/prest/prest) |
| 15 | |
| 16 | <a href="https://www.producthunt.com/posts/prest?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-prest" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=303506&theme=light" alt="pREST - instant, realtime, high-performance on PostgreSQL | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a> |
| 17 | |
| 18 | ## Documentation |
| 19 | |
| 20 | **Full documentation lives at [docs.prestd.com](https://docs.prestd.com/).** |
| 21 | |
| 22 | | Topic | Link | |
| 23 | |-------|------| |
| 24 | | Get pREST (Docker, Homebrew, Go) | [Get pREST](https://docs.prestd.com/get-prest) | |
| 25 | | Configuration | [Configuring pREST](https://docs.prestd.com/get-started/configuring-prest) | |
| 26 | | API reference | [API Reference](https://docs.prestd.com/api-reference) | |
| 27 | | MCP over HTTP | [MCP over HTTP](https://docs.prestd.com/get-started/mcp-over-http) | |
| 28 | | Multi-database | [Multi-database](https://docs.prestd.com/get-started/multi-database) | |
| 29 | | Databases & roadmap | [Databases](https://docs.prestd.com/databases) · [Roadmap](https://docs.prestd.com/databases/roadmap) | |
| 30 | | AI clients (Cursor, Claude, …) | [AI and MCP](https://docs.prestd.com/ai) | |
| 31 | ## Quick start |
| 32 | |
| 33 | Install and run options (Docker, Homebrew, or Go) are documented in [Get pREST](https://docs.prestd.com/get-prest). Point pREST at Postgres (`PREST_PG_URL` or `pg.*` / `DATABASE_URL`), then call: |
| 34 | |
| 35 | ```http |
| 36 | GET /{database}/{schema}/{table} |
| 37 | ``` |
| 38 | |
| 39 | See [Configuring pREST](https://docs.prestd.com/get-started/configuring-prest) for auth, ACL, custom queries, and MCP. |
| 40 | |
| 41 | ## 1-Click Deploy |
| 42 | |
| 43 | ### Heroku |
| 44 | |
| 45 | Deploy to Heroku and get a realtime RESTful API backed by Heroku Postgres: |
| 46 | |
| 47 | [](https://heroku.com/deploy?template=https://github.com/prest/prest-heroku) |
| 48 | |
| 49 | More: [Deploy in Heroku](https://docs.prestd.com/deployment/deploy-in-heroku). |
| 50 | |
| 51 | ## Contributing |
| 52 | |
| 53 | Contributions are welcome. See the [Development Guide](https://docs.prestd.com/get-prest/development-guide) and [Contributing to pREST](https://docs.prestd.com/readme/contributing-to-prestd). Please sign the [CLA](https://cla-assistant.io/prest/prest). |
| 54 | |
| 55 | Questions? [GitHub Discussions](https://github.com/prest/prest/discussions) or [Discord](https://discord.gg/JnRjvu39w8). |
| 56 | |
| 57 | ## Testing |
| 58 | |
| 59 | Run unit tests locally: |
| 60 | |
| 61 | ```bash |
| 62 | make test-unit |
| 63 | ``` |
| 64 | |
| 65 | Run integration suites inside Docker (no local Postgres required): |
| 66 | |
| 67 | ```bash |
| 68 | # Postgres (full stack: default, auth, multicluster, queries) — also: make test-integration |
| 69 | make test-integration-postgres |
| 70 | |
| 71 | # TimescaleDB (Timescale-specific E2E only) |
| 72 | make test-integration-timescaledb |
| 73 | ``` |
| 74 | |
| 75 | Or with Docker Compose: |
| 76 | |
| 77 | ```bash |
| 78 | docker compose -f integration/postgres/docker-compose.yml up -d - |