RAWThink logo

RAWThink

Persistent local memory for AI work, combining hybrid session search with a temporal knowledge graph.

Install RAWThink

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "rawthink": {
      "command": "uvx",
      "args": [
        "rawthink-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

RAWThink MCP server gives AI coding sessions persistent local memory through a file-based vault, Qdrant indexing, and Ollama embeddings. It combines hybrid semantic and BM25 search with a temporal graph for entities, relations, decisions, observations, and revisions. Use it when an agent needs to recover prior reasoning, track changing beliefs, or preserve rejected alternatives across sessions. The server runs locally and is documented for Claude Code.

Use cases

  • Search prior sessions for decisions and reasoning
  • Record decisions with rejected alternatives
  • Track entities and changing observations over time
  • Revise beliefs without deleting their history
  • Restore context through session handoffs

Key features

  • Hybrid dense and BM25 search
  • Temporal knowledge graph
  • Decision and alternative recording
  • Observation revision and invalidation
  • Local Qdrant-backed indexing
  • Configurable tool profiles

Tools11

What RAWThink lets your agent do. Expand a tool for its parameters.

Self-reported~161 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

5/5 checks healthy over the last 40d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · rawthink-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

Last commit2mo agoMost recent push to the default branch.
Tools exposed11Callable tools this server registers over MCP.

How RAWThink works

What RAWThink MCP server does

RAWThink MCP server stores AI reasoning outside the current context window in a local vault. It covers two related forms of memory: searchable session and note content, plus a structured knowledge graph. The search layer can retrieve passages from past sessions and quick notes, while the graph records entities, relationships, observations, decisions, and changes to those observations.

The graph separates an entity's role from its subject domain. Supported roles include decisions, concepts, findings, rules, questions, artifacts, insights, tasks, events, and things. Domains include areas such as software, history, philosophy, health, writing, finance, and personal knowledge.

Decisions can include both the selected option and rejected alternatives. Observations can carry an epistemic status and can later be invalidated or superseded instead of silently deleted. This makes the archive useful for recovering not only conclusions, but also how those conclusions changed.

How it works

RAWThink MCP server uses hybrid retrieval: dense BGE-M3 embeddings are combined with BM25 sparse search, with reciprocal rank fusion used to combine results. Qdrant stores the vector index. Ollama supplies the bge-m3 model locally. Qdrant can run through Docker, or embedded mode can be selected with QDRANT_PATH.

The graph is stored in files owned by the user. Graph writes validate relation types and use an atomic record operation for entities, relations, and observations. Canonical relation types include supports, contradicts, depends_on, supersedes, related_to, and informs.

A session can be closed with /rtclose. The close process exports the conversation, extracts information for the graph, and creates a handoff for the next session. Accessed knowledge remains active while unused knowledge decays over roughly a 23-day half-life; older material remains available rather than being removed.

Setup and configuration

Install Python 3.10 or newer, Docker for Qdrant unless using embedded mode, and Ollama with the bge-m3 model. Install the package with pip install rawthink-mcp, then run rawthink-install to create the default ~/rawthink-vault structure. A different vault location can be supplied with rawthink-install --vault ~/my-vault.

Start Qdrant with the generated Docker Compose configuration, then register the command with Claude Code:

Terminal
claude mcp add --scope user rawthink -- rawthink-mcp

Run rawthink-doctor to check the vault, graph schema, BM25 state, Qdrant, index coverage, vector dimensions, Ollama, and MCP registration.

Tool exposure can be reduced with RAWTHINK_TOOL_PROFILE. The recall profile is read-only, record exposes the write path, and full exposes the complete set. The default is full.

Tools and capabilities

RAWThink MCP server exposes tools for:

  • Searching sessions and notes, viewing a complete session, saving qnotes, and rebuilding the Qdrant index.
  • Finding graph nodes with domain and entity-type filters, opening selected entities with their relations, and reading the graph in pages or summary mode.
  • Atomically recording entities, relations, and observations.
  • Recording decisions with reasons and rejected alternatives.
  • Revising observations by marking them superseded and linking their replacements.
  • Invalidating observations when a belief should no longer be treated as valid without adding a replacement relation.

search_thoughts also supports an overview mode that returns one line per session. Bounded node searches report the total number of matches and whether results were truncated.

Limitations and notes

RAWThink MCP server is local and does not provide a cloud-hosted memory service. Its setup depends on Python, Ollama, and either Docker-based Qdrant or embedded Qdrant storage. An incomplete indexing run can leave a usable-looking collection with only part of the vault indexed, so the doctor command's coverage check is important.

Upgrades may require migration. The documented migration path includes a dry-run graph migration, an optional apply step with a timestamped backup, and a full reindex when sparse-index term IDs change. A normal incremental reindex is not sufficient for that specific upgrade.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about RAWThink

RAWThink is an MCP server that connects a local vault to Qdrant and Ollama for persistent AI memory. Its main tools search past thoughts, retrieve sessions, save notes, query and update a temporal knowledge graph, record decisions and rejected alternatives, and revise or invalidate observations. It runs locally rather than in the cloud.

Install it with Python 3.10 or newer using `pip install rawthink-mcp`, then run `rawthink-install`. Start Qdrant with the generated Docker Compose file, or configure embedded mode with `QDRANT_PATH`. Ollama with the `bge-m3` model is also required for the documented search setup.

Yes, RAWThink is documented for Claude Code. Register it with `claude mcp add --scope user rawthink -- rawthink-mcp`, then use `rawthink-doctor` to check MCP registration and the local dependencies.

RAWThink combines dense BGE-M3 embeddings with BM25 sparse retrieval and fuses the rankings with reciprocal rank fusion. Use `search_thoughts` for hybrid searches, `mode="overview"` for one line per session, and `get_session` to retrieve a session by ID.

Use `record` for validated, atomic entities, relations, and observations, or `record_decision` for a choice, its reasoning, and rejected alternatives. Use `revise` to mark observations superseded and link replacements, or `invalidate_observations` when no replacement relation is needed.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewRAWThink AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/rawthink?style=directory)](https://allmcps.com/mcp/rawthink)
HTML Embed
<a href="https://allmcps.com/mcp/rawthink"><img src="https://allmcps.com/api/badge/rawthink?style=directory" alt="RAWThink on AllMCPs" /></a>