MCP
Give any MCP-speaking assistant a memory — a local repository on your machine, or a hosted namespace over the API.
Every GitLoom operation is exposed to an assistant over the Model Context Protocol, generated from the same definitions the CLI dispatches through — the two front-ends cannot drift apart, because they are the same code.
There are two servers, for two different deployments of memory:
| backs onto | needs | when to use it | |
|---|---|---|---|
gitloom mcp |
a git repository on this machine | the CLI, a licence | memory lives with you, no account, works offline |
@gitloomhq/mcp |
a namespace in your GitLoom account | an API key, npx |
memory is hosted, shared across your machines and your app |
The local server
gitloom mcp --repo ~/memory
Speaks JSON-RPC over stdio, which is what every editor launches — this is the mode
--http exists to opt out of, not the exception. Run from a terminal it looks
frozen: that is correct, a terminal is not an MCP client.
gitloom mcp --read-only # search and recall, no writes
gitloom mcp --http 127.0.0.1:7000 --token "$(openssl rand -hex 16)"
Requires the [licensed CLI](/docs/cli.html#install) — a local memory is not a hosted
account, so it authenticates against your machine's activated licence, not an API
key.The hosted server
GITLOOM_API_KEY=gl_live_... npx -y @gitloomhq/mcp
No install step beyond npx fetching it, and no local repository — every call
reaches your GitLoom account over HTTPS. Two tools: recall_memory and
save_memory. Their descriptions and schemas come from
@gitloomhq/sdk, so a tool call
behaves identically whether it arrives through this server, through the SDK
directly, or via the OpenAI/Anthropic tool-calling formats.
{
"mcpServers": {
"gitloom": {
"command": "npx",
"args": ["-y", "@gitloomhq/mcp"],
"env": { "GITLOOM_API_KEY": "gl_live_..." }
}
}
}
| Variable | Purpose |
|---|---|
GITLOOM_API_KEY |
required — create one at app.gitloom.cloud |
GITLOOM_NAMESPACE |
which namespace to use (default: the account's default) |
GITLOOM_BASE_URL |
override the API host |
Connecting an editor
gitloom install writes the configuration in each host's own shape, so there is no
plugin to install for any of them — they already speak MCP, and this just points
them at a server.
gitloom install claude-code # print it
gitloom install codex --write # write it into place
gitloom install opencode --project # scope it to this project
gitloom install claude-code --cloud --write # point at the hosted server instead
Supported hosts: claude-code, openclaw, opencode, codex, hermes. Add
--cloud to any of them to install @gitloomhq/mcp (needs GITLOOM_API_KEY)
instead of the local gitloom mcp (needs a licence and --repo).
Claude Desktop, by hand, in claude_desktop_config.json:
{
"mcpServers": {
"gitloom": {
"command": "gitloom",
"args": ["mcp", "--repo", "/absolute/path/to/memory"]
}
}
}
What a client sees
Every toolkit operation appears as a tool: write, get, search, semantic_search,
related, tree, topics, vocab, embed_pending, and more. Two of them,
ingest and answer, are model-driven and only appear when a model is configured
via GITLOOM_MODEL and a provider key — a client listing tools sees exactly what
will work, not operations that fail on every call because nothing answers them.
Both servers describe every parameter the same way a person reading gitloom --help
would see it, because the schema and the CLI flag come from one op definition in
toolkit. Nothing here is a second copy that can quietly fall out of sync with the
first.