Skip to main content

NeuroDock cognitive graph MCP server — persistent entity memory and recall.

Project description

neurodock-mcp-cognitive-graph

Persistent entity memory for the NeuroDock substrate, exposed as an MCP server. Externalises the user's working memory of people, projects, decisions, and concepts so a hyperfocused or context-switched session does not start from zero.

This is v0.0.3 — the current release. Vector recall, fastembed embeddings, and sqlite-vec are deferred to a future version; see CHANGELOG.md.

Install

uv add neurodock-mcp-cognitive-graph
# or
pip install neurodock-mcp-cognitive-graph

Use as an MCP server

Add to your ~/.claude.json (Claude Code) or claude_desktop_config.json (Claude Desktop):

{
  "mcpServers": {
    "neurodock-cognitive-graph": {
      "command": "uv",
      "args": ["run", "neurodock-mcp-cognitive-graph"]
    }
  }
}

Quickstart

# From the workspace root.
uv sync --all-packages

# Start the server on stdio (Claude Desktop / Claude Code MCP config).
uv run neurodock-mcp-cognitive-graph

The server stores its graph at ~/.neurodock/cognitive-graph.sqlite by default. Override with the NEURODOCK_GRAPH_DB_PATH environment variable.

Tools (v0.0.3)

Tool Purpose
recall_entity(name_or_alias) Look up a person/project/decision/concept. Returns the entity, its facts (capped at 500), first-degree neighbours (capped at 20), and a resolution diagnostic.
record_fact(subject, predicate, object, source?, confidence?) Persist a typed-edge fact. Auto-creates entities by (type, name). Enforces the v0.1.0 eight-predicate vocabulary.
recall_decisions(project, since?) Return decisions for a project, ordered by date desc, capped at 200.
weekly_rollup(project?) Server-templated activity summary for the trailing seven UTC days. No LLM call (vendor boundary).

The full input/output contract is in schemas/. The Pydantic v2 models in src/neurodock_mcp_cognitive_graph/types.py mirror those schemas.

Predicate vocabulary

The eight predicates in v0.1.0 are: mentioned_in, decided_in, reports_to, depends_on, resolved_by, blocked_by, tagged, belongs_to. Unknown predicates raise PREDICATE_NOT_IN_VOCABULARY. Extension predicates land via the v0.2 type_extensions mechanism — see ADR 0002 — cognitive-graph tool design.

Privacy

  • Local-first. No network access. No telemetry.
  • source strings are stored verbatim and never fetched by the server.
  • User content (entity names, decision titles, fact text) is never logged. Error logs include only the structured error code.

Storage

SQLite. One file. Migrations live as numbered .sql files in src/neurodock_mcp_cognitive_graph/migrations/ and are applied on first connect. The schema is described in migrations/0001_init.sql.

Architecture

src/neurodock_mcp_cognitive_graph/
├── server.py            FastMCP wiring + CLI entrypoint
├── types.py             Pydantic v2 models (mirror of the JSON Schemas)
├── config.py            Resolves the SQLite path
├── clock.py             SystemClock / FixedClock
├── errors.py            ToolError envelope
├── resolution.py        Entity name/alias cascade (exact, alias only in v0.0.3)
├── rollup.py            Heuristic decision/blocker/next-action assembly
├── storage/
│   ├── base.py          Storage Protocol + row dataclasses
│   ├── memory.py        InMemoryStorage (used by tests)
│   └── sqlite.py        SQLiteStorage (production backing)
├── tools/
│   ├── recall_entity.py
│   ├── record_fact.py
│   ├── recall_decisions.py
│   └── weekly_rollup.py
└── migrations/
    └── 0001_init.sql

ADR pointers

Tests

uv run pytest packages/mcp-cognitive-graph/tests/ -v

25 tests covering: per-tool unit tests, a FastMCP protocol-conformance suite that exercises every tool and validates the response against the JSON Schema using jsonschema, and an end-to-end test that runs against a real file-backed SQLite store.

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

neurodock_mcp_cognitive_graph-0.0.5.tar.gz (56.0 kB view details)

Uploaded Source

Built Distribution

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

neurodock_mcp_cognitive_graph-0.0.5-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file neurodock_mcp_cognitive_graph-0.0.5.tar.gz.

File metadata

  • Download URL: neurodock_mcp_cognitive_graph-0.0.5.tar.gz
  • Upload date:
  • Size: 56.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neurodock_mcp_cognitive_graph-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8c380964fe5f9f0cc079503eb9c0597250b96698637251c57cee7f60703b6c99
MD5 509a1056845a66a529d0a700289c64f8
BLAKE2b-256 a48f6cfaf14f3342eb0681ff3f0eb2d4a8bd6ae4a29d921c1e4fb0a4f9821819

See more details on using hashes here.

File details

Details for the file neurodock_mcp_cognitive_graph-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: neurodock_mcp_cognitive_graph-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for neurodock_mcp_cognitive_graph-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9e0ba7b080d82dbd6b634909aa03adcc1a52a2b15066f165082bfe36e05b273a
MD5 45ff97f9a29b50fae53e0875d55fcec4
BLAKE2b-256 01cbfd332bfff6dfc9d8d8052f5a7200a9b1b7e01164c15d0b18dfed7799bf5a

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