🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@multimail/thinking-mcp

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@multimail/thinking-mcp

MCP server that models how you think, not what you know

latest
Source
npmnpm
Version
0.2.0
Version published
Maintainers
1
Created
Source

thinking-mcp

MCP server that models how you think. Not what you know.

Install

{
  "mcpServers": {
    "thinking": {
      "command": "npx",
      "args": ["-y", "@multimail/thinking-mcp"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "VOYAGE_API_KEY": "pa-..."
      }
    }
  }
}

Works with Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP client.

What this is

Every conversation contains cognitive patterns you don't notice. Decision rules you apply without naming them. Tensions between things you believe. Assumptions you've never tested.

Kahneman calls it System 1 — fast, automatic, invisible. The heuristics that fire before you know you're deciding. Most AI memory systems store what you said. This models how you decide.

thinking-mcp captures your heuristics, values, tensions, assumptions, preferences, and mental models as a typed graph. Nodes connect through real edges — supports, contradicts, depends on, evolved into. When an agent queries the graph, structurally important patterns surface first.

It is not a memory vault. It is a mirror for your decision architecture.

First run

On first use, the server walks you through a bootstrap conversation. It starts from a real decision you made recently. Then it works backward into the heuristics and assumptions behind it.

The bootstrap tool returns questions for your agent to ask you. You answer naturally. Each answer gets captured, typed, and added to the graph. The first pass takes about 20 minutes. After that, capture keeps extending the model.

How it works

Capture starts with typed extraction. An LLM classifies each statement against an ordered checklist — is this a decision rule? A framework for thinking? A tension between beliefs? The checklist forces specific types before falling through to "idea." Nine node types: heuristic, mental_model, tension, value, assumption, preference, question, project, idea.

Then it builds the graph automatically. Two mechanisms create edges:

  • Extraction-suggested relationships. The LLM identifies connections between concepts during classification. "This heuristic contradicts that assumption." These become typed edges.
  • Vector similarity. New nodes connect to semantically similar existing nodes. Edge types are inferred from the node type pair — a heuristic near a value becomes derived_from, a tension near a value becomes contradicts.

The graph gets structural weighting through PageRank. Patterns that connect many other patterns rank higher. Patterns that bridge disconnected domains rank higher. Structural importance propagates through the topology.

Retrieval fuses five signals via Reciprocal Rank Fusion:

  • Vector similarity — semantic closeness to the query
  • Keyword overlap — exact term matches
  • Activation — recency and reinforcement (decays by type: values persist, ideas fade)
  • Outcome history — track record from recorded decisions
  • PageRank — structural importance in the graph

System 1 produces the pattern. System 2 gets the ranked evidence.

Tools

ToolWhat it doesSide effects
pingHealth check with node, chunk, and edge counts plus DB pathREAD-ONLY
what_do_i_thinkQuery your thinking on a topic with 5-signal ranking: vector, keyword, activation, outcome, and PageRankREAD-ONLY (bumps activation)
what_connectsFind bridges between two domainsREAD-ONLY
what_tensions_existSurface contradictions and weak spotsREAD-ONLY
where_am_i_uncertainFind low-confidence or untested patternsREAD-ONLY
suggest_explorationSurface forgotten but structurally important nodes using similarity plus PageRankREAD-ONLY
how_would_user_decideReconstruct likely reasoning for a new decision, ranked with structural importanceREAD-ONLY
what_has_changedTimeline of how your thinking evolvedREAD-ONLY
captureAdd a thought with typed extraction and automatic edge creation through similarity and extracted relationshipsWRITES
correctFix a node. Strongest learning signal.WRITES
record_outcomeTrack what happened after a decisionWRITES
get_nodeInspect a node with all its dataREAD-ONLY
get_neighborsReturn real 1-hop graph topology: connected nodes and the edges between themREAD-ONLY
search_nodesKeyword search with optional type filterREAD-ONLY
merge_nodesCombine duplicate nodesDESTRUCTIVE
archive_nodeDrop a node from results without deletingWRITES
get_framingReturn lens-shaping questions to answer before any substantive responseREAD-ONLY
seed_framingSet or replace framing directives (max 5)DESTRUCTIVE
bootstrapGuided first-run Q&A (5 phases)WRITES

Configuration

VariableRequiredDefaultDescription
ANTHROPIC_API_KEYYesClaude Haiku for inline extraction
VOYAGE_API_KEYYesVoyage AI for embeddings
THINKING_MCP_DB_PATHNo~/.thinking-mcp/mind.dbSQLite database location
THINKING_MCP_EMBEDDING_PROVIDERNovoyagevoyage, openai, or ollama

What leaves your machine

Embedding text goes to Voyage AI (or your configured provider). Extraction text goes to Anthropic when capture is called without a nodeType. Everything else stays local in SQLite. No telemetry. No analytics.

Limitations

Vector search is brute-force cosine similarity over all stored embeddings. This keeps the system zero-infrastructure — no vector database, no external index. Fine for personal use up to roughly 100K nodes. Past that you need a real vector index.

Extraction is still an LLM interpreting your language. It can overread weak evidence. The prompt caps at 8 patterns per input and requires explicit evidence for "strong" confidence, but it is making judgment calls about what you meant.

The graph is only as good as what enters the conversation stream. If you only talk about code, it will only model how you think about code.

Built by multimail.dev

Keywords

mcp

FAQs

Package last updated on 29 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts