GitLoom

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.