Orbit MCP Server
Lets n8n connect to the Orbit MCP HTTP endpoint so workflows can read and write the shared memory, search vault items and files, and participate in the same agent coordination flow.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Local Orbit
One shared memory for all your AI tools, stored on your own machine.
Claude Desktop, Claude Code, Cursor, Codex, Antigravity, the Gemini app, and n8n all read from and write to one SQLite database, so you stop being the copy-paste bridge between them. A dashboard shows what every agent is doing and lets you send instructions to them.

What it does
Shared memory over MCP. Six tools let any MCP client load project state, report progress, save work, and search what other agents saved.
Three trust tiers.
reportholds exploratory work,knowledgeholds decisions you've confirmed, andnoteholds reference material. Agents treat onlyknowledgeas true.Live dashboard. See every agent session, its logs, its insights, and what it produced.
Remote commands. Queue an instruction from the dashboard, and the agent receives it on its next tool call.
Orbits. Turn a plain-English goal into an activation prompt and a cron line for a recurring agent.
Local only by default. Both servers listen on
127.0.0.1. Nothing leaves your machine unless you set up a tunnel.
Vault | Run inspector |
|
|
Related MCP server: light-agent-memory-mcp-server
How it works
flowchart LR
CC[Claude Code] -- stdio --> MCP
CD[Claude Desktop] -- stdio --> MCP
GM[Gemini app / Antigravity] -- stdio --> MCP
N8[n8n / web connectors] -- HTTP :4100 --> MCP
MCP[Orbit MCP server] --> DB[(~/.local-orbit/orbit.db<br/>SQLite + FTS5)]
UI[Dashboard :3100] --> DB
You((You)) --> UIEach client starts its own copy of the MCP server over stdio. All copies, the HTTP server, and the dashboard share one SQLite file in WAL mode.
Requirements
Node.js 22 or later
macOS or Linux. Windows paths are handled, but Windows is untested.
A C++ toolchain only if
better-sqlite3has no prebuilt binary for your platform
Quick start
git clone https://github.com/Akshat-Gurnani/local-orbit.gitcd local-orbit && npm installnpm run buildPreview what init will change in your AI clients' config files, then apply it:
npm run orbit -- init --dry-runnpm run orbit -- initnpm run startThen restart your AI clients and open http://localhost:3100.
To see the dashboard with sample data, run npm run orbit -- seed. It stays in its own orbit-dev project, and npm run orbit -- unseed removes it.
Tip: set the Orbit tools to "Always allow" in your client, or agents will pause for permission on every heartbeat.
Keep the cloned folder where it is. Client configs point at dist/mcp/server.js inside it, so moving the folder breaks the connection until you run init again.
What init changes
init creates ~/.local-orbit/ and adds an orbit server entry to each client it detects:
Client | Config file |
Claude Desktop |
|
Claude Code |
|
Cursor |
|
Antigravity |
|
Gemini CLI |
|
Backups: The original file is copied to
<config>.bak, and that first backup is never overwritten. Later changes get timestamped backups.Other settings: Everything else in the file is preserved. A file it can't parse is left untouched.
Existing
orbitservers: If a different server is already namedorbit,initstops and reports a conflict. Use--forceto replace it.Node path: The entry records the absolute path of the Node binary you ran
initwith, becausebetter-sqlite3only loads under the Node version that compiled it. If you change Node versions, runnpm rebuild better-sqlite3andinitagain.
Codex
init doesn't edit Codex's config. It prints a block to add to ~/.codex/config.toml.
Gemini app
init doesn't configure the Gemini desktop app, which keeps its own connector list. In Gemini, go to Customize > Connectors > Custom > Local MCP and enter the stdio command that init prints. The Default sandbox can't reach Orbit's folders, so choose Customize Sandbox with ~/.local-orbit, this project's folder, and your Node folder, or choose Full Access.
Use Task mode to call Orbit. In testing, a Chat mode conversation reported the connector as unavailable, while Task mode called it successfully. Gemini asks you to approve each Orbit tool call.
Web connectors and n8n
Point them at http://localhost:4100/mcp. Older clients can use the deprecated SSE transport at http://localhost:4100/sse.
Add the protocol to a project
npm run orbit -- workspace ~/code/my-app --project my-appThis writes CLAUDE.md, AGENTS.md, .cursorrules, and GEMINI.md, telling agents to load context first, send heartbeats, and use the right vault tier. The protocol goes in a managed block, so existing content is preserved and you can safely re-run the command.
MCP tools
Tool | Purpose |
| Load project state, recent knowledge, and other agents' active runs |
| Start or update a run and log an event |
| Save a |
| Save a deliverable to the Files repository |
| Full-text search over the vault and files, with knowledge ranked first |
| Replace the project's source-of-truth document |
Every tool response also delivers any queued commands in a [REMOTE COMMAND FROM USER] block. Stored content containing that marker is neutralized, so a vault item can't pass itself off as a command from you.
Behavior worth knowing
Knowledge has no review step. An agent that writes
tier: "knowledge"is immediately treated as canonical. The workspace protocol tells agents to do this only for decisions you've confirmed, but the server doesn't enforce it.Commands reach agents on their next tool call. Nothing is pushed to an idle agent. A command that hasn't been acknowledged is sent once more on the following call, labelled as a repeat, because some clients run a tool and then discard the result (the Gemini app does this on its first permission-gated call).
Broadcasts go to each agent once. A command targeting
allreaches every agent that checks in within a day of the first delivery. Marking it done stops further delivery.Orbits don't run themselves. Local Orbit generates the prompt and the command or cron line. Your own scheduler or client runs it.
Search is keyword-based. It matches word prefixes using SQLite FTS5, and doesn't do semantic search, so
pricingwon't find "monthly cost". Items with every search word rank above items with only some, and results are labelledmatch: "all"or"partial".
Remote access
Both servers accept only local connections by default, and the dashboard has no login. To reach them through a tunnel such as Tailscale or Cloudflare, set these before starting:
Variable | Purpose |
| Comma-separated hostnames to accept, such as |
| Required bearer token for the MCP server |
| Required password for the dashboard (HTTP basic auth, any username) |
The MCP server refuses to start beyond loopback without a token, and the dashboard rejects non-local hosts unless both of its settings are present. Anyone with these credentials can read your memory and send instructions to your agents, so only use them over HTTPS.
For n8n running in Docker, set ORBIT_MCP_HOST=0.0.0.0, ORBIT_ALLOWED_HOSTS=host.docker.internal, and ORBIT_MCP_TOKEN, then point n8n at http://host.docker.internal:4100/mcp with that bearer token.
Other settings
Variable | Default | Purpose |
|
| Where the database, files, and Orbit prompts live |
|
| MCP HTTP port |
|
| Base URL used in links returned to agents |
Development
npm run devnpm testnpm run typecheckPath | Contents |
| Schema, FTS5 triggers, and repository functions |
| MCP tools and the stdio and HTTP transports |
| Installer, workspace generator, and sample data |
| Orbit activation prompt builder |
| Next.js dashboard and API routes |
| Host and origin checks for the dashboard |
| Database, installer, and MCP tests. They use a temporary home and don't touch your real config |
Hosting
Local Orbit is built to run on your own machine. docs/HOSTING.md explains why it can't be deployed to Vercel as is, and what a hosted version would need.
Uninstall
Remove the
orbitentry from each client config, or restore the.bakfileinitcreated. For Claude Code, runclaude mcp remove orbit -s user.Delete
~/.local-orbitto remove all stored memory.Delete the cloned folder.
Status and limits
This is an early project. The automated tests cover the database, the installer, and the MCP server. Claude Code, Claude Desktop, Antigravity, and the Gemini app have each been checked by hand. Cursor, Codex, and n8n are wired up but not yet verified against the real apps.
Credits
The idea comes from Orbit Agents, a hosted product. Local Orbit is an independent, local-first implementation and isn't affiliated with it. The installer's backup-then-patch approach follows morluto/rea.
License
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Shared memory for your AI tools: tasks, notes and context every tool can read and write over MCP.
Shared MCP memory for AI agents: knowledge base, skills, todos and agent-to-agent handoffs.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides AI agents with persistent, local, and shareable project memory by storing decisions and code context in a searchable SQLite index, supporting keyword and semantic search via MCP.3MIT
- AlicenseAqualityCmaintenanceProvides persistent, searchable memory for AI agents across any MCP-compatible client, storing project context, user preferences, and session learnings locally in SQLite with tools to save, retrieve, search, and manage them.129 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to manage SQLite-backed TODOs and schedule durable coding-agent jobs over stdio, with persistent job memory, run history, and a read-only dashboard.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to retrieve project briefings, reserve and track tasks, and record checkpoints, passages, messages, and durable context so another AI can resume work using local SQLite-backed project memory.10,386 npmMIT

