MCP.Market

thread-keeper MCP server

by po4erk91·io.github.po4erk91/thread-keeper·v0.13.1·12 stars

Multi-agent shared brain across Claude, Codex, Antigravity, Gemini, Copilot, and VS Code.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

12 stars157 downloads/wk

Reviews

Write one

Nobody has reviewed thread-keeper yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

thread-keeper tools (100, 17 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • accept_candidate

    Materialize candidate into its target table. target_kind overrides candidate's kind. thread_id optional.

  • agent_memory_cleanup

    Trim ThreadKeeper memory and clean orphan/over-limit server processes.

  • agent_status

    Show autonomous learning loops with state, backlog, last pass, and RSS.

  • askwrite action

    Send a question to a peer and wait synchronously for their answer.

  • brief

    Compact Claude-native memory brief. CALL AT THE START OF EVERY CONVERSATION.

  • broadcastwrite action

    Post a message visible to ALL concurrent claude conversations.

  • candidate_review_runwrite action

    Fire one candidate-review pass.

  • candidate_review_status

    Show candidate-reviewer configuration + last 5 passes + current pending queue size.

  • claim_pickup

    Claim a thread for self-initiated work. Marks it claimed by my cid.

  • consolidate

    Periodic memory hygiene. dry_run=True (default) reports only.

  • context

    Runtime context: session id, age, semantic on/off, db path, thread counts.

  • convene_panel

    Spawn a panel of independent agents to vote on a distillate or claim, filling the promotion quorum the way a second human otherwise would.

  • core_get

    Return the full content of a single core-memory entry.

  • core_list

    List all core-memory entries, ordered by priority DESC then key.

  • core_removewrite action

    Delete a core-memory entry by key.

  • core_set

    Upsert a core-memory entry. ALWAYS shown in brief, sorted by priority DESC.

  • curator_review

    Fire one curator pass.

  • curator_review_status

    Show curator configuration + last 5 passes + latest REPORT path.

  • curator_runwrite action

    Move stale agent-created skills to archive.

  • dialectic_claim

    Register a new claim about the user. Optionally seed with first piece of evidence — pass the supporting (or contradicting) quote in `evidence` and set `evidence_kind` to 'support' (default) or 'contradict'.

  • dialectic_evidence

    Attach evidence to a claim. `kind`: 'support' | 'contradict'.

  • dialectic_mine_runwrite action

    Fire one mechanical capture pass now (force=True runs even when the miner daemon interval is 0).

  • dialectic_mine_status

    Miner config + buffer sizes + last 5 capture passes.

  • dialectic_observation_resolve

    Mark a dialectic_observations buffer row 'processed' so the validator never re-interprets it. Called by the validator child after it has written (or deliberately skipped) the observation's claims/evidence.

  • dialectic_review

    List active claims filtered by confidence floor and optional domain. Retired/superseded claims are omitted.

  • dialectic_supersede

    Retire `old_claim_id` and register `new_claim` that refines or replaces it. The old claim moves to state='superseded' with superseded_by=<new_id>; its evidence is preserved (not deleted).

  • dialectic_synthesis

    Terse rendering of accumulated beliefs about the user, grouped by domain. Used as brief() input. Excludes low/disputed claims and non-active states. Returns at most 12 lines.

  • dialectic_validate_runwrite action

    Fire one validator pass. dry_run shows pending count + would_spawn without spawning or advancing the cursor.

  • dialectic_validate_status

    Validator config + pending observation count + last 5 passes.

  • dialog_search

    Search ingested Claude Code transcripts.

  • distill

    Mark content as worth carrying forward (distillation channel).

  • evolve_apply

    Implement a PROMOTED + not-yet-applied format-evolution suggestion.

  • evolve_apply_curator_report

    Apply a Curator advisory report using the existing evolve_applier role.

  • evolve_apply_roadmap_issue

    Implement one open GitHub issue through the evolve_applier role.

  • evolve_apply_status

    Show evolve-applier config + curator/evolve queues + running applier + the last 5 apply passes.

  • evolve_mark_applied

    Mark a format-evolution suggestion as APPLIED — called by the evolve_applier child after it has opened the PR.

  • evolve_mark_curator_report_applied

    Mark a Curator report as processed by the evolve_applier child.

  • evolve_mark_roadmap_issue_applied

    Mark a roadmap issue as handed off — called by evolve_applier only after it has opened a real pull request for that issue.

  • expand_concept

    Full description + triangulation_notes for one concept.

  • export_distillateswrite action

    Write distillates with vote_sum >= min_vote to a jsonl bucket. Marks them exported_at so the same item isn't re-exported next call. Default output: /tmp/thread-keeper-tasks/distillates.jsonl.

  • extract_recent

    Scan recent dialog_messages and enqueue heuristic candidates.

  • find_invariants

    Find recurring assistant-side patterns that survive prompt variance.

  • find_missed_spawns

    Find assistant responses that decomposed into independent blocks but were answered linearly (no spawn() call nearby).

  • inbox

    Read signals addressed to me (whispers + broadcasts).

  • ingest

    Ingest new Claude Code transcripts. Auto-runs on session start; call manually for backfill or after long absence.

  • lesson_append

    Materialize a class-level lesson into ~/.threadkeeper/lessons.md.

  • lesson_get

    Return the full body of one lesson by slug. Useful when `lesson_list` surfaced something you want to read in full.

  • lesson_list

    Compact listing of materialized lessons, newest first.

  • lesson_removewrite action

    Remove one materialized lesson section by slug.

  • linkwrite action

    Create a typed edge between two entities.

  • list_concepts

    List registered concepts, filtered by minimum confidence.

  • live_status

    See what OTHER concurrent Claude sessions did since this session last polled. Call when brief() shows live=N where N>0, or proactively when you suspect a parallel instance is working on something relevant. Advances this session's cursor by default; pass advance_cursor=False to peek without consuming.

  • memory_guard_checkwrite action

    Run one memory-guard pass now.

  • memory_guard_reclaim

    Unload thread-keeper model/caches now.

  • memory_guard_status

    Show memory-guard thresholds and current thread-keeper RSS rows.

  • mp_cleanupwrite action

    Kill orphaned thread-keeper processes (parent gone AND heartbeat stale for > 5 minutes). Defaults to dry-run — pass dry_run=False to actually send signals. force=True uses SIGKILL instead of SIGTERM.

  • mp_dashboard

    One-call rollup of the whole thread-keeper system: store sizes, how often each autonomous loop fired (in the last `window_days` and 30d), and what those loops actually produced (skills materialized, candidates accepted vs rejected, tier promotions). Read-only; no spawn, no mutate.

  • mp_health

    Diagnostic snapshot of every running thread-keeper server process on this machine. Shows pid, parent status, RSS, heartbeat age, and whether each is classified as orphaned (parent gone + no fresh heartbeat from its session).

  • neighbors

    BFS the graph from a starting node up to `depth` hops away. Returns each visited node with its kind, id, and a short content snippet pulled from its native table. Both directions of edges traversed.

  • note

    Add a note to a thread. Write terse, optimized for future-Claude.

  • open_dialog_window

    Open a Terminal window that tails the live cross-session signal log.

  • open_thread

    Open a thread. `question` should be terse (5-15 words, the open question). `parent_id` optional — pass an existing ID like 'T7f3' for a child. Returns new ID.

  • peers

    List concurrent claude conversations active in the last `window_min`.

  • pending_distillates

    List distillates with vote_sum >= min_vote, not yet exported.

  • pickup_candidates

    Surface unresolved threads that are stale and unclaimed — candidates for self-initiated pickup when context is free.

  • presence

    List concurrent Claude sessions with heartbeats within threshold (default 5 min). Excludes self. Useful for understanding who else is currently active before making changes.

  • record_attempt

    Record a self-test outcome. Updates reliability aggregates.

  • register_concept

    Register a concept that lacks a precise human name.

  • register_probe

    Register a self-test probe: a known weak-spot task with a verifier.

  • reject_candidate

    Mark rejected. Reason appended to rationale for heuristic tuning.

  • release_pickup

    Release a claim. Only the claimant can release.

  • reliability_for

    Reliability stats for one category over a window.

  • respond

    Answer a specific question (signals.id) with a directed whisper.

  • review_candidates

    status ∈ {pending, accepted, rejected, all}. Newest first.

  • review_thread

    Spawn a background review of a closed thread to extract memory/skills.

  • run_probewrite action

    Surface a registered probe for self-attempt. Returns the prompt and the grader hint. After attempting, call record_attempt(category, success=true/false, probe_id=...) — the harness doesn't auto-grade because attempting and judging are the same model.

  • search_via_parent

    Delegate a semantic search to the parent process (or any peer with embeddings loaded). For light children spawned with THREADKEEPER_NO_EMBEDDINGS=1, this is how you reach into the shared DB's semantic index without loading PyTorch yourself.

  • session_end

    Mark current session ended with optional terse summary.

  • shadow_review_runwrite action

    Fire one shadow-review pass.

  • shadow_review_status

    Show shadow-review configuration + last 5 passes.

  • skill_list

    List skills with telemetry. Format: <name> tier=<hypothesis|observed|validated> origin=<...> state=<active|stale|archived> uses=N fg_uses=N views=N patches=N wrong=N pinned=0/1 last_active=<age>

  • skill_managewrite action

    Create, edit, patch, or delete skills under the primary skills root.

  • skill_record

    Record usage telemetry for a mirrored skill.

  • spawn
  • spawn_budget_set

    Override the spawn-budget cap for this process (in MB). Set 0 to disable enforcement. Does NOT persist across restarts — set THREADKEEPER_SPAWN_BUDGET_MB env for persistence.

  • spawn_budget_status

    Report current spawn-budget usage: cap, used, free, plus per-running-task RSS. Used to decide whether another spawn() will be admitted.

  • spawn_status

    Show which CLI thread-keeper detected as its host, and which CLI each spawn role resolves to (after env + file overrides). Use to sanity-check spawn config when you want loops to fire through a specific agent.

  • style_set

    Set a stylistic running rule. Examples: lang=ru | prose=lean | allow=half-baked,weird | deny=sycophancy,headers

  • tag_signal

    Manually attach a signal to a task. Useful when retroactively building a task-thread (auto-tagging happens at signal-emit time when the cid matches a known spawned_cid).

  • task_logs

    Read tail of a spawned task's captured stdout/stderr log.

  • task_thread

    Replay a spawned task as a chronological thread: every signal tagged with the task_id (or to/from the task's spawned_cid), plus optionally notes added during the task window.

  • tasks

    List spawned tasks: id, pid, status, elapsed, spawned_cid (if linked), prompt prefix. Refreshes liveness and resolves spawned_cid lazily.

  • tournament

    Spawn N children with different roles on the same prompt, then collect their answers via a tagged broadcast and return a comparison.

  • unlinkwrite action

    Remove an edge by id.

  • verbatim_user

    Capture a user quote worth surfacing in future briefs. Use when the user's exact phrasing matters (sharp reframes, decisions, pushback).

  • vote_distill

    Vote on a distillate, weight ∈ [-1, +1]. One vote per cid; re-voting overwrites your previous vote. Updates aggregate vote_sum/vote_count.

  • wait

    Block until a new signal arrives for me or `timeout_s` elapses.

  • weak_spots

    List categories ranked by recent failure rate (min 3 attempts in 30d), plus registered probe categories with no attempts yet (= unknown, equally important to test).

  • whisperwrite action

    Post a message visible only to the specified conversation_id.

  • whoami

    Return this conversation's detected conversation_id + how we know.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan82 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How thread-keeper compares

Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 90% of 4,464 AI and agents servers
Tools
100
the typical AI and agents server has 6
Tools that change things
17%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
12
more than 86% of 2,697 AI and agents servers
Downloads a week
157
more than 71% of 1,515 AI and agents servers with a package

What its tools let an agent do: 79 read · 4 create · 15 change · 1 send or post · 1 run or deploy

Install thread-keeper in Claude Code, Cursor or VS Code

claude mcp add thread-keeper -- uvx threadkeeper
Add to Cursor

What the publisher says

From the thread-keeper repository's README, as published. We do not edit it. Read it on GitHub

thread-keeper

Multi-agent shared brain across Claude Code/Desktop, Codex, Antigravity CLI (agy), Copilot, and VS Code. Cross-session memory, self-improving skill loops, and inter-agent signaling — one local MCP server turns parallel agent instances into a coordinated multi-agent system instead of N isolated chats.

Every connected client (Claude Code, Claude Desktop, Codex CLI + desktop, Antigravity CLI, Copilot, every MCP-aware VS Code extension) shares one SQLite store, one set of threads, one user model, and one learning loop that improves the skill library autonomously over time.

The brief format is dense — structural tags, opaque IDs, ~6 KB per session-start injection. Optimized for agent consumption, not human reading.

Why

Every agent CLI starts cold. Context dies at session boundaries. Skills you taught Claude don't transfer to Codex. Threads you closed in yesterday's Antigravity chat are invisible to today's Copilot. Parallel agent instances running the same task don't know about each other and duplicate work or step on each other's writes.

thread-keeper is the substrate underneath. Three things that together make it more than a memory store:

claims about you. Survives session, restart, CLI swap. One agent records, every other agent (any CLI) reads. The brief injected at session start gives a new agent everything the previous one knew.

  • Collective memory — threads, notes, verbatim quotes, dialectic

agents in parallel, each gets a self_cid + sees the same memory. broadcast / whisper / inbox / wait / ask / respond let concurrent sessions signal each other across CLIs. Parent / children / sibling agents become a coordinated swarm, not isolated chats.

  • Multi-agent coordination — spawn primitive launches child

(auto-review on thread close, shadow-review daemon, extract harvester, candidate-reviewer, weekly Curator, and a thread-janitor that auto-closes idle threads so abandoned work reaches the harvest path — closing is reversible, a note reopens a closed thread) materialize class-level skills as the agents work. Adapted to multi-CLI: SKILL.md is the primary write target and gets mirrored to every known/configured skills root simultaneously (~/.claude/skills/, ~/.codex/skills/, ~/.gemini/config/skills/ for Antigravity, existing ~/.agents/skills/, extra roots from THREADKEEPEREXTRASKILLS_DIRS, and ~/.threadkeeper/skills/), with lessons.md as a fallback for CLIs without a native skills loader.

  • Self-improving skill library — autonomous background loops

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

thread-keeper: common questions

Is thread-keeper MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the thread-keeper safety report
How do I install thread-keeper?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does thread-keeper need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is thread-keeper maintained?
The last commit was 36 days ago (2026-09-27). The latest release is v0.13.1.
What can I use instead of thread-keeper?
Servers from other publishers that do the same job: three.ws Brain MCP server, LLM Sandbox MCP server and PaperBanana MCP server.
How does thread-keeper compare with other AI and agents MCP servers?
safety score 92/100 (higher than 90% of 4,464 AI and agents servers); tools 100 (the typical AI and agents server has 6); tools that change things 17% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to thread-keeper

Same job from other publishers: the closest match first, then the best rated.

  • three.ws Brain
    List LLM providers and run chat completions through the three.ws multi-provider router.
    B
  • LLM Sandbox
    Securely run LLM-generated code in isolated containers across 7 languages and 3 container backends.
    A
  • PaperBanana
    Generate academic diagrams and statistical plots from text using multi-agent AI.
    A
  • Agent-Native Chat
    Minimal chat-first app with durable threads, actions, and the app-agent loop
    A
  • SuperCompress
    Compress coding-agent context ~64%. Hosted Neural Keep MCP for Cursor/Claude/Codex.
    B