One quiet rail
for your team’s
AI tools.
Register MCP servers once. Share them across every developer’s editor. Run a temporal team brain that survives every AI session. Open source, self-hosted, MIT.
Register once.
Share everywhere.
Remember forever.
One Fastify server. One SQLite file. Optionally one Python sidecar. Every MCP-compatible editor on your team inherits the same servers, the same memory, the same audit trail.
Three commands.
Local mode in 60 seconds. The npm package ships with a CLI, an HTTP server, and a React dashboard bundled into a single tarball.
$npm install -g opalserve$opalserve init# interactive wizard$opalserve start# opens dashboard at localhost:3456
Two flagship features. One structural refresh.
Team Brain
A Graphiti sidecar runs alongside your team server. Every linked editor inherits a graph_search MCP tool. Searchable memory across every developer, every project, every session.
Drift Detection
Compares each client's local registry to the team's central config. Color-coded states for match, drift, missing, and local-only servers. Backed by POST /api/v1/drift.
Editor link
One command auto-configures Claude Desktop, Cursor, and Cline. Linked editors inherit every server, the team brain, and team-shared context without per-machine setup.
Hardened by default
HMAC-secured API keys, scrypt password hashes, per-IP rate limits, helmet headers, zod validation on every route, and an audit log for every tool call.
SQLite at rest
One file you own. No external database. No telemetry. Self-hostable on a Hetzner VPS, a Raspberry Pi, or your laptop. Backups are file copies.
No vendor lock-in
MIT licensed. No usage-based pricing. No phone-home. Run it where you want, swap it out when you don't. Your data, your servers, your call.
Find the gap before it bites.
Three weeks into rolling out a team server, configs drift. Someone adds a server locally and never registers it. Someone else’s transport URL falls behind a server move. AI sessions become quietly inconsistent across the team.
opalserve drift is the smallest possible answer. Four states. Specific field-level diffs. Same data on the dashboard and at POST /api/v1/drift.
One Node process. One SQLite file.
OpalServe is one Node.js process that runs three things at once. A Fastify HTTP server, an MCP gateway, and an optional Graphiti Python sidecar. Storage is SQLite. The whole runtime is a single binary plus a single data file.
Every team that adopts AI tooling hits the same wall in week three.
Each developer ends up with their own MCP config, their own knowledge cutoff, their own fragmented context. AI tools become inconsistent across the team, and there is no single place to see what they’re doing.
Each developer configures their editor manually.
Admin registers once. opalserve sync on every machine.
Knowledge silos disappear at the end of every chat.
Persistent team brain searchable from any editor.
No visibility into AI tool usage across the team.
Per-tool, per-user usage events with audit log.
Editor configs drift over weeks. Nobody notices.
opalserve drift flags differences in seconds.
MIT licensed.
Self-hosted.
Yours.
No vendor lock-in. No usage-based pricing. No telemetry. Run it on a Hetzner VPS, a Raspberry Pi, or a dedicated cluster. OpalServe doesn’t care.
$git clone https://github.com/adityaidev/opalserve.git$cd opalserve$pnpm install$pnpm dev