Skip to content

Releases: Percona-Lab/percona-dk

v0.2.0 - Self-hosted / remote deployment

16 Apr 18:51

Choose a tag to compare

What's new

Self-hosted remote deployment. percona-dk can now run as a shared service that multiple users (or your entire Claude for Teams account) connect to over the network, instead of everyone installing it locally.

Added

  • SSE / streamable-http transport on the MCP server. Run with percona-dk-mcp --transport sse --port 8402 and any MCP client that supports remote servers can connect over the network.
  • deploy.sh - single-script deployer for Linux VMs. Creates a venv, runs the initial ingestion, installs three systemd user services:
    • percona-dk-mcp (MCP over SSE, port 8402)
    • percona-dk-api (REST API, port 8000)
    • percona-dk-ingest.timer (daily re-ingestion at 03:00 UTC)

Changed

  • Dropped the Dockerfile and docker-compose.yml. A direct venv + systemd install turned out to be simpler for this workload and matches the deployment pattern we were already using for other MCP servers.
  • Added a __main__ guard to server.py so python -m percona_dk.server actually starts uvicorn (needed for running as a systemd service).

Self-hosting quick start

On any Linux VM with Python 3.11+:

git clone https://github.com/Percona-Lab/percona-dk.git
cd percona-dk
bash deploy.sh

After it runs:

MCP (SSE):   http://<host>:8402/sse
REST API:    http://<host>:8000
Swagger UI:  http://<host>:8000/docs

Notes for Claude for Teams custom connectors

Claude for Teams custom connectors are reached from Anthropic's backend, not from the user's browser. That means the server needs a public HTTPS endpoint (not just a VPN-reachable one). Options:

  • Reverse proxy with auto-TLS (Caddy, nginx + certbot)
  • Cloudflare Tunnel
  • Public DNS + certificate

The server itself runs on plain HTTP, so the TLS layer lives in your proxy of choice.

Backward compatibility

The local-install path is unchanged. curl -fsSL .../install-percona-dk | bash still works exactly the same. Remote deployment is purely additive.