One memory for all your AIs

MCP integration

MemoryFirst exposes a Model Context Protocol (MCP) server. Any compatible client (Claude, ChatGPT, Cursor, LM Studio, your own agent) reads and writes your company's memory with your identity and verifiable citations. A local model without an MCP client can use it too: it receives the context as text.

The shortcut: ask your AI

If you cannot find the connectors menu, or you are on your phone, paste this message into your assistant: it will read this page and walk you through the exact steps for your client.

https://mcp.memoryfirst.ai Install this as an MCP connector and tell me the exact steps for my AI client.

Two ways to connect

Remote (recommended)

One HTTP endpoint for every client and every team member. Nothing to install; works from your phone and from claude.ai.

https://mcp.memoryfirst.ai

The previous URL keeps working for anyone who already has it configured: https://api.memoryfirst.ai/mcp

Stdio-only clients

For clients that can only launch local processes (older Claude Desktop, scripts), the open-source mcp-remote bridge connects to the same remote server and signs in with OAuth. There is no npm package of our own.

npx -y mcp-remote https://mcp.memoryfirst.ai

Authentication and identity

  • API key: for scripts, CLIs and agents. Created in Settings → API keys. Sent as Authorization: Bearer mf_live_…
  • OAuth: for people: the client opens the MemoryFirst sign-in screen, you log in with your account and every call is signed with your name and the AI that made it. No keys to copy.
  • Team: every workspace member has a role: owner, member or viewer. A viewer can recall and query but not write. Events keep who wrote them (person and model).

Per-client setup

  • Claude Code: claude mcp add --transport http memoryfirst https://mcp.memoryfirst.ai --header "Authorization: Bearer mf_live_…"
  • claude.ai, Claude Desktop, Claude iOS: Settings → Connectors → Add custom connector with the URL above; sign-in happens over OAuth.
  • ChatGPT: Settings → Connectors → Create with the URL above. Uses the connector's search and fetch tools on top of the mf_* ones.
  • Cursor, VS Code, Windsurf: add to the MCP servers file: { "mcpServers": { "memoryfirst": { "url": "https://mcp.memoryfirst.ai", "headers": { "Authorization": "Bearer mf_live_…" } } } }
  • LM Studio, Open WebUI, Jan: any desktop client with MCP support uses the same URL and key; the model running on your machine reads and writes the company's memory.
  • Custom agents: JSON-RPC 2.0 over HTTP (initialize, tools/list, tools/call), stateless. Any MCP SDK works.

One-click install

Opens the editor with the server already configured. The first time you use it, it will ask you to sign in to MemoryFirst.

Local models without an MCP client

Ollama, llama.cpp or any model that only takes a system prompt: request the project context already trimmed to a token budget and pass it in. Same state everyone else sees; the client changes, the memory doesn't.

# Project state as markdown, within the requested budget
CONTEXT=$(curl -s "https://api.memoryfirst.ai/v1/brain/context?project=lexiel&max_tokens=3000" \
  -H "Authorization: Bearer $MEMORYFIRST_API_KEY")

ollama run llama3.1 --system "$CONTEXT"

In Claude Code this is already automated (context on start, session distilled into events on stop) with @memoryfirst/claude-hooks.

Tools

The same set remote and local; parity is checked by tests.

  • mf_recall · decisions, blockers, deploys and current state of a project
  • mf_query · natural-language question with citations; scoped by partition and document type
  • mf_record · record a decision, blocker, deploy or customer contact; signed with your identity and your AI
  • mf_projects · lists the workspace's projects, with how many events each one has
  • mf_morning · the workspace's last 24 h, grouped by type
  • mf_skills · catalogue of skills compiled from repeated questions, and their SKILL.md
  • mf_assets · the workspace's asset and project registry
  • mf_state · the project's current state (what is still in force, not the history)
  • search · search for the ChatGPT connector
  • fetch · one full event by id, for the ChatGPT connector

Verifiable citations

Every mf_query answer carries a spanRef per citation: page and box in documents, milliseconds in audio, event id in the brain. Your client renders them as links to the source.

{
  "answer": "The contract scope is fixed-fee €4,500.",
  "citations": [
    {
      "sourceType": "doc",
      "spanRef": { "page": 3, "bbox": [120, 450, 380, 60] },
      "snippet": "Fixed fee of €4,500 for the scope defined..."
    },
    {
      "sourceType": "ops",
      "spanRef": { "source": "brain.event:decision_taken:78048c2c-…", "eventId": "chunk:0" },
      "snippet": "Decision (Jose, claude-code): fixed fee confirmed with the client on 12 May."
    }
  ]
}

Detailed schemas, error codes and per-plan limits live in the API reference. Missing something? Write to hola [at] memoryfirst.ai.