Repository navigation
Quick Start
Install MCP Station 2.7.0 stable. All 18 service modules are bundled, plus _template.
Pin :2.7.0; moving :2.7 and :latest track stable updates. See Versions and Images.
Create a private .env with a strong APP_PASSWORD; exclude it from Git and restrict permissions.
Save the following as compose.yaml in the same directory:
services:
mcp-station:
image: dbzocchi/mcp-station:2.7.0
restart: unless-stopped
ports:
- "127.0.0.1:8788:8788"
environment:
APP_PASSWORD: ${APP_PASSWORD:?set APP_PASSWORD in .env}
PUBLIC_URL: ${PUBLIC_URL:-}
COOKIE_SECURE: ${COOKIE_SECURE:-0}
MCP_TOKEN: ${MCP_TOKEN:-}
volumes:
- ./data:/data
- ./mcps:/app/mcps
- ./files:/filesdocker compose up -d
curl --fail http://127.0.0.1:8788/healthzOpen http://127.0.0.1:8788 and sign in. The health response describes the running app, not
proof that any upstream API or client connection works. OAuth is off with PUBLIC_URL unset.
On first startup, missing bundled folders are seeded into /app/mcps; a new empty volume gets
all 18 modules. Existing folders are never overwritten, so upgrading an image preserves your
edited sources. Disable unwanted modules; deleting a bundled folder alone causes reseeding
on restart. Persist /data, /app/mcps, and any Files storage.
Open Integrations → choose the account → Configure; inspect Tools in its workspace.
Enter required service URLs and credentials in the manifest-generated settings fields, not
arbitrary environment variables. Save and run Test. A source without test() may only verify that
it loads. Review tools before enabling the endpoint; passing Test does not imply a connected client.
An additional account is blank, disabled, and untested. Configure and enable it explicitly; existing credentials, tokens, and tests are not copied. See Accounts.
Configure a reverse proxy or tunnel to the station. Set PUBLIC_URL to the exact externally
reachable HTTPS origin (no path), set COOKIE_SECURE=1, and recreate the container. Remove any
intervening login wall from the connector path. Match the connector hostname to the issuer.
The loopback port above is for a host-local proxy/browser. A proxy in a different container or on another host needs deliberate networking; do not assume it can access that binding.
Copy https://your-station.example/<slug>/mcp into a compatible connector. Approve OAuth consent,
or configure a bearer token in the client. Prefer endpoint-scoped access over the master token.
Copy the selected account's endpoint. ChatGPT, Claude, Claude Code, and LibreChat.
Persist /data and /app/mcps. Keep the generated secret.key, or preserve your fixed
SESSION_SECRET separately if you set one. Back up Files storage separately.
Use a full station backup before upgrading: Backups.
Start
- Quick Start · 2.7.0
- Versions and Images
- Configuration
- Connecting AI Clients
- Claude connection details
Account workflows
Build and operate