Skip to main content

Hebbrix MCP server — long-term memory and knowledge graph for any MCP-compatible agent (Claude Desktop, Cline, Cursor, etc.)

Project description

Hebbrix MCP Server

PyPI CI Python License: MIT

A Model Context Protocol server that gives any AI agent long-term memory and a temporal knowledge graph, backed by Hebbrix.

Your agent forgets everything when the session ends. This fixes that, and goes further than a plain memory store:

  • Memory — store, search, correct, and version facts across sessions
  • Knowledge graph — entities, relationships, timelines, and "what was true at time X"
  • Reasoning — ask how confident the agent should be before acting, and log outcomes so it improves

Works with Claude Desktop, Claude Code, Cursor, Cline, Continue, and any other MCP client.

Quick start (no account needed)

Add this to your MCP client config. On first run with no API key, the server mints a free agent account automatically (no email, no dashboard, ~1 second) and saves it to ~/.hebbrix/config.json.

{
  "mcpServers": {
    "hebbrix": { "command": "uvx", "args": ["hebbrix-mcp"] }
  }
}

[!NOTE] uvx (from uv) runs the server with no install step. If you prefer, pip install hebbrix-mcp and use "command": "hebbrix-mcp" instead.

Restart the client. Done — your agent now has persistent memory.

The free agent account includes 300 learning events and 2,000 retrievals, and expires 14 days after last use if unclaimed. Every tool result carries a hebbrix_usage block so the agent always knows where it stands and will tell you when it's time to claim.

Keep it forever (same key, all memories carry over, unlocks the free monthly tier):

uvx hebbrix-mcp claim --email you@example.com

Claude Code plugin (recommended)

Install as a Claude Code plugin and Claude starts every session already knowing you — a SessionStart hook auto-loads your compiled Hebbrix profile into context, and the memory tools are wired up in one step:

/plugin marketplace add Hebbrix/hebbrix-mcp
/plugin install hebbrix@hebbrix

That's it. No account needed (agent mode mints one on first run); set your api_key in the plugin config to use your own account instead. The hook degrades gracefully — a brand-new profile just shows (none yet) until you've saved a few facts, and it never blocks a session.

Configuration

Get an API key at hebbrix.com/dashboard/api-keys to use your own account instead of agent mode.

Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "hebbrix": {
      "command": "uvx",
      "args": ["hebbrix-mcp"],
      "env": {
        "HEBBRIX_API_KEY": "mem_sk_...",
        "HEBBRIX_COLLECTION_ID": "your-default-collection-uuid"
      }
    }
  }
}
Claude Code
claude mcp add hebbrix -- uvx hebbrix-mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "hebbrix": { "command": "uvx", "args": ["hebbrix-mcp"] }
  }
}
Cline / Continue / other

Point your MCP servers config at the uvx hebbrix-mcp command (stdio). Same shape as above. Set HEBBRIX_API_KEY in env to skip agent mode.

The env var always wins over saved agent-mode credentials.

Environment variables

All optional. With nothing set, the server starts in agent mode.

Variable Default Purpose
HEBBRIX_API_KEY (agent mode mints one) Your Hebbrix bearer token
HEBBRIX_COLLECTION_ID (agent mode sets one) Default collection for writes/reads
HEBBRIX_API_BASE https://api.hebbrix.com/v1 API endpoint override
HEBBRIX_CONFIG ~/.hebbrix/config.json Where agent-mode credentials are saved
HEBBRIX_MCP_HOST 127.0.0.1 Bind host (HTTP transports)
HEBBRIX_MCP_PORT 8080 Bind port (HTTP transports)
HEBBRIX_MCP_MULTI_TENANT off Hosted mode: per-request Authorization header auth

Available Tools

A server-level instruction block teaches the model when to reach for each tool, so a well-behaved agent searches before answering and remembers what matters without being told.

Memory

  • hebbrix_remember - Store a fact, decision, or preference.
    • content (string, required): the memory text
    • tags (list, optional), collection_id (string, optional)
    • extract (bool, default false): false stores the text exactly (one memory); true runs fact-extraction and may create several atomic memories
    • wait_for_index (bool, default true): guarantees memory-search availability — hebbrix_search returns the fact the moment the call returns. It does not cover knowledge-graph enrichment (entities/timelines/graph), which lands asynchronously (~30s); the response's graph_enrichment: "processing" flags this.
  • hebbrix_remember_many - Store many facts in one call (one round-trip, one rate-limit hit). Pass facts (list of strings). Falls back to sequential writes on free/agent tiers.
  • hebbrix_search - Semantic search (hybrid vector + BM25 + graph retrieval).
    • query (string, required), limit (int, optional), collection_id (string, optional)
    • min_score (float, default 0.0): drop weak matches — zero-relevance padding is always dropped; raise this to filter noise so you don't pay tokens for it.
  • hebbrix_get - Fetch one memory by id, with metadata.
  • hebbrix_update - Correct a memory in place (old versions are kept).
  • hebbrix_forget - Delete a memory by id.
  • hebbrix_list - List recent memories.
  • hebbrix_history - See how a memory changed over time.
  • hebbrix_mark_used - Reinforce a memory you actually used (helpful=True strengthens it, False weakens it) so recall improves over time.
  • hebbrix_export - Export a whole collection (memories + graph entities + profile) as JSON or Markdown, in one call.

Knowledge graph — Hebbrix automatically extracts entities and relationships from the memories you write, on every tier including agent mode, so all the graph reads below (entities, timelines, traversal, contradictions) work in agent mode too. Only explicit graph write / inference operations require a Pro plan.

  • hebbrix_search_entities - List known entities (people, orgs, tools, places).
  • hebbrix_entity_timeline - What was true about an entity, and when.
  • hebbrix_graph_query - Traverse relationships out from a named entity; pass a timestamp for point-in-time truth. Results are trimmed (from/to/type/valid_from), not raw backend payloads. (Free-text questions: use hebbrix_ask.)
  • hebbrix_contradictions - Surface facts that conflict with each other.

Reasoning & account

  • hebbrix_ask - One-call GraphRAG. Ask a natural-language question; it searches memory, synthesizes an answer with an LLM, cites the memory ids it used, and enriches with knowledge-graph relationships + your profile. Use instead of orchestrating search + graph + profile yourself.
  • hebbrix_confidence - How confident should the agent be before acting? Grounded in memory + past outcomes.
  • hebbrix_log_decision - Record a decision and its outcome; feeds future confidence. Right after a hebbrix_confidence check you can log just the outcome — the description auto-fills from what you asked.
  • hebbrix_list_collections - List the memory spaces this key can use.
  • hebbrix_account_status - Tier, usage, limits, and expiry.

The server also exposes a hebbrix://profile resource and a context prompt that inject the user's compiled profile.

Make Hebbrix the agent's memory

The server ships an instruction block telling the model to use Hebbrix for anything it would "remember." But some hosts (notably Claude Code) have their own file-based memory whose instructions live at the system-prompt level and can outrank an MCP server's instructions — so the agent may quietly write notes to a local file instead of Hebbrix.

The reliable fix is one line in your project's CLAUDE.md (or your assistant's system prompt / rules file):

## Memory
Use the Hebbrix MCP server as the single source of truth for long-term memory.
When you would remember, note, or save anything durable, call `hebbrix_remember`
(and `hebbrix_search` to recall). Do not write memory to local files or the
host's built-in memory.

Cursor users: add the same to .cursorrules. This puts the preference at the level the host respects, so Hebbrix wins consistently.

Running modes

Local (default) — stdio. What the quick start does: one process per client.

Self-hosted HTTP — one instance, your machines:

HEBBRIX_API_KEY=mem_sk_... uvx hebbrix-mcp --transport streamable-http
# serves http://127.0.0.1:8080/mcp

Hosted — nothing to run. Point any HTTP-capable MCP client at the official hosted endpoint and authenticate with your own key (get one at hebbrix.com/dashboard/api-keys):

{ "mcpServers": { "hebbrix": {
  "url": "https://mcp.hebbrix.com/mcp",
  "headers": { "Authorization": "Bearer mem_sk_..." }
}}}

Self-hosted multi-tenant — one instance, many users. Same shape on your own infra. The server holds no key; every request authenticates with its own Authorization header:

HEBBRIX_MCP_MULTI_TENANT=1 HEBBRIX_MCP_HOST=0.0.0.0 uvx hebbrix-mcp --transport streamable-http

Or run the container (multi-tenant by default, GET /healthz for load-balancer probes):

docker build -t hebbrix-mcp . && docker run -p 8080:8080 hebbrix-mcp

In multi-tenant mode there is no default collection — pass collection_id on tool calls.

How it works

┌──────────────────┐   MCP (stdio or HTTP)   ┌─────────────┐    HTTPS     ┌──────────┐
│ Claude / Cursor / │ ───────────────────────→│ hebbrix-mcp │─────────────→│ Hebbrix  │
│ Cline / any agent │      tool calls         │   (this)    │   REST API   │  cloud   │
└──────────────────┘                          └─────────────┘              └──────────┘

This package owns zero state. Tool calls become REST calls against your Hebbrix account; memories, embeddings, the knowledge graph, and retrieval all live in the Hebbrix backend. Delete this package and your memories are still there.

Agent-mode accounts never break mid-task: when a limit is reached you get a structured error with a resolve field, not a failure. Writes stop before reads; reads keep working; the account goes read-only before it expires.

Debugging

Inspect the server with the MCP Inspector:

npx @modelcontextprotocol/inspector uvx hebbrix-mcp

Common issues:

  • HTTP 401 on every call — the key is wrong or revoked. Unset HEBBRIX_API_KEY, delete ~/.hebbrix/config.json, and restart to re-provision, or paste a fresh key from the dashboard.
  • Agent mode won't start (auto-signup unavailable) — signup may be at daily capacity or your network blocks the API. Set HEBBRIX_API_KEY instead.
  • claim says EMAIL_IN_USE — claiming needs an email with no existing Hebbrix account. Use a fresh address (a you+agent@gmail.com alias works).
  • A memory isn't searchable immediately — pass wait_for_index=true (the default) for read-after-write on hebbrix_search. Otherwise indexing is asynchronous; typical convergence is under 30 seconds.
  • A just-written fact's entities aren't in the graph yet — knowledge-graph enrichment (entities, timelines, graph queries) runs asynchronously after the write and is not covered by wait_for_index. It typically lands within ~30s; the write response's graph_enrichment: "processing" signals it's still in flight.

Development

git clone https://github.com/Hebbrix/hebbrix-mcp
cd hebbrix-mcp
./quick_setup.sh            # venv + editable install
source venv/bin/activate
pytest tests/ -q            # 82 offline tests, no network needed
hebbrix-mcp                 # starts in agent mode on stdio

See CONTRIBUTING.md and CHANGELOG.md.

License

MIT — see LICENSE.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hebbrix_mcp-0.3.16.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hebbrix_mcp-0.3.16-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file hebbrix_mcp-0.3.16.tar.gz.

File metadata

  • Download URL: hebbrix_mcp-0.3.16.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for hebbrix_mcp-0.3.16.tar.gz
Algorithm Hash digest
SHA256 042ddb5882e3227a2a289d0750c965334f12cf212a4545cfa4a52335acc8e51a
MD5 6770b3aeea0249c31085288a721c8e74
BLAKE2b-256 9de9193642d9b4a24f22c373137d6c65ef817a73571f4cbcd3285ee76dbd2a34

See more details on using hashes here.

File details

Details for the file hebbrix_mcp-0.3.16-py3-none-any.whl.

File metadata

  • Download URL: hebbrix_mcp-0.3.16-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for hebbrix_mcp-0.3.16-py3-none-any.whl
Algorithm Hash digest
SHA256 7ea395e84cabbc8a3620785126461be4158d5979bda0773eda0ac6f3b7bd25e6
MD5 b949bf8c8a53c62698e0122b84d0536f
BLAKE2b-256 11fdf22f48134dd01128e15674fbae2cbfcc84f1e2208e8f314b0f7f78b95051

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page