Quickstart¶
Get Memcove running locally against a full lakehouse stack (MinIO, an Iceberg REST catalog, Trino, and Postgres) in Docker, then start the MCP server.
Prerequisites¶
- Docker (with Compose) for the data-plane stack.
- Python 3.12+.
uvis recommended;pipworks too.
1. Bring up the data plane¶
This starts five services (Compose project memcove):
| Service | Image | Host port | Purpose |
|---|---|---|---|
minio |
minio/minio |
9000 (API), 9001 (console) | S3-compatible object store |
minio-init |
minio/mc |
— | one-shot: creates the warehouse, memcove-staging, memcove-artifacts buckets |
iceberg-rest |
apache/iceberg-rest-fixture |
8181 | Iceberg REST catalog |
trino |
trinodb/trino |
8080 | query engine (read / derive / export) |
postgres |
postgres:16 |
5433 | control-plane metadata & lineage registry |
The --wait flag blocks until every service (Trino included) reports healthy, so
there's no need to guess at a startup delay. The MinIO console is at
http://localhost:9001 (user minio, password minio12345).
An optional mysql service (for exercising the MySQL registry backend) sits behind a
Compose profile and is skipped by default — start it with
docker compose --profile mysql up -d --wait.
2. Install Memcove¶
The defaults in .env.example already point at the local Docker stack, so no edits are
needed for local dev. See the settings reference for
what each variable does.
3. Run the tests¶
uv run pytest -m "not integration" # fast unit tests, no stack needed
uv run pytest -m integration # end-to-end, requires the stack from step 1
You can also drive the full agent journey in-process:
uv run python scripts/smoke.py # ingest -> query -> derive -> export -> isolation check
uv run python scripts/flight_smoke.py # Arrow Flight stream in/out
4. Start the servers¶
memcove-server # MCP control plane, Streamable HTTP on :8090
memcove-flight # Arrow Flight data plane, gRPC on :8815 (only needed for streaming)
memcove-server initializes the Postgres registry on startup and serves MCP over
Streamable HTTP at http://localhost:8090/mcp.
No OIDC proxy needed for local development
Memcove trusts a tenant header set by an upstream proxy in production, but you do not need a proxy to develop. See Local development (no proxy).
Next¶
- Connect an MCP client and make your first call.
- Follow the walkthrough to store, query, derive, and export data.