Claude Remind Mcp

io.github.emretheus由 GitHub 帳號 emretheus 發布v0.1.1更新於 Oct 24, 2026

Search past Claude Code conversations. Local BM25 over JSONL with one-click claude --resume.

發布方自己的服務:Claude Platform Docs

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

本機 MCP 伺服器,為過去的 Claude Code 工作階段建立索引,讓助理搜尋、閱讀並接續這些工作階段。

可以做什麼
  • 以 BM25 排序搜尋過去的 Claude Code 對話,可依專案、時間範圍與摘要長度篩選,每筆結果附上已解決提示與接續指令
  • 讀取某筆命中訊息的完整內容及前後對話,或讀取整個工作階段
  • 取得結構化的工作階段摘要:標題、訊息數、使用的工具、涉及檔案、錯誤數與時間跨度
  • 把工作階段 ID 解析成可直接執行的 claude --resume 指令,並附上工作目錄與 git 分支
適用情境
適合反覆排查同一類基礎設施、部署或驗證問題,希望助理先查歷史工作階段再從頭診斷的情況;也適合隔一段時間回到某個專案、想找回先前已解決方案時使用。
執行需求
需要 Node.js 20 以上版本,透過 npx 或全域安裝在本機執行。需要會將工作階段日誌寫入 ~/.claude/projects/ 的 Claude Code 安裝。可選環境變數 CLAUDE_CONFIG_DIR 與 CLAUDE_REMIND_DIR 須為絕對路徑,用來覆寫日誌與索引位置。不需網路或帳號。
安裝前請注意
索引檔含對話文字,以 0600 權限寫入;機密資訊遮蔽僅為盡力而為,自訂格式的憑證可能未被辨識。刪除索引目錄即可清除。伺服器讀取本機 Claude Code 日誌,不發出網路請求。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Claude Remind Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

claude-remind-mcp

A Model Context Protocol (MCP) server that searches your local Claude Code conversation history. It indexes every past session under ~/.claude/projects/ with BM25, redacts secrets, and lets the running Claude agent recall and resume solutions you've already worked out — without re-explaining the problem from scratch.

If you've ever caught yourself solving the same Docker, deployment, or auth bug twice in a month, this is for you. The package is local-only (no network calls), pure-JS (no native modules), and ships as a single npx-installable binary.

[npm version] [License: MIT] [TypeScript] [Node.js]

[demo]

Status: experimental (v0.1.x). Tool surface is stable; internals may change.


install

From shell:

bash
claude mcp add claude-remind -- npx -y claude-remind-mcp

From any manually configurable mcp.json (Cursor, Windsurf, etc.):

json
{  "mcpServers": {    "claude-remind": {      "command": "npx",      "args": ["-y", "claude-remind-mcp"]    }  }}

No model downloads, no daemons, no database. The first query builds an index from ~/.claude/projects/ (a few seconds for a typical history) and persists it to ~/.claude-remind/. Subsequent queries reuse the index and only re-parse files whose mtime changed.

If npx resolves the wrong package, force resolution:

bash
npm install -g claude-remind-mcp

use cases

A few patterns where searching past Claude Code conversation history pays off:

  • Recurring infrastructure errors. "We hit ExpiredTokenException on the staging deploy last month — what was the fix?" One remind_search returns the exact session, the resolved snippet, and the resume command.
  • Cross-project knowledge. "How did I configure BuildKit cache on the other Coolify project?" The index spans every project under ~/.claude/projects/, so solutions from project A surface when you're working in project B.
  • Onboarding into your own past work. Coming back to a repo after weeks? Search for "Cognito", "RunPod", "tailwind config" and read the latest session summary instead of grepping through code.
  • Avoiding redundant deep-dives. Before Claude burns 10k tokens diagnosing a problem from scratch, it can call remind_search first and see if you already solved it. The default response is ~1.5 KB.
  • Resuming where you left off. Every search result includes a ready-to-paste claude --resume <id> command, plus the original cwd and gitBranch, so jumping back into a half-finished thread is one paste away.

tools

Four tools, designed to compose: search → read → resume.

remind_search

BM25 search over past messages. Returns ranked hits with a snippet, a solvedHint, a messageUuid, and a ready-to-paste claude --resume command.

ts
{  query: string;  project?: string;       // substring of cwd, e.g. "my-app"  limit?: number;         // 1–50, default 5  sinceDays?: number;     // age filter  format?: "compact" | "detailed" | "full";  // 400 / 1000 / 2000-char snippet}
json
[  {    "sessionId": "abc12345-...",    "messageUuid": "msg-9f8e-...",    "score": 432.8,    "ts": "2026-04-10T11:30:26Z",    "role": "assistant",    "project": "/Users/you/Code/my-app",    "gitBranch": "deploy",    "hasError": false,    "solvedHint": "likely",    "aiTitle": "RunPod serverless deploy walkthrough",    "snippet": "Step-by-step: 1) Push the image to NGC 2) Configure the Network Volume…",    "resumeCommand": "claude --resume abc12345-..."  }]

Query tips: prefer concrete terms — exact error strings, tool/library names, file paths. Generic words like auth or docker on their own dilute relevance.

remind_message

Fetch the full text of one message plus optional surrounding turns. Use after remind_search returns a messageUuid you want to read in full.

ts
{  sessionId: string;       // full or 8-char prefix  messageUuid?: string;    // omit to read whole session (capped at 50 messages)  contextBefore?: number;  // 0–20, default 1  contextAfter?: number;   // 0–20, default 1}

The matched message is flagged with isFocus: true inside the returned window.

remind_session

Structured summary of a session: title, message count, tool names used, files touched, error count, time span, solved hint, last user message.

ts
{  sessionId: string; // full or 8-char prefix}

remind_resume

Resolves a session id (full or 8-char prefix) to a ready-to-run claude --resume <id> command, plus the session's cwd and git branch. remind_search already returns this on every hit, so prefer that; this tool exists for the case where you only have an id.


how it works

  1. Streams every JSONL under ~/.claude/projects/ line-by-line, with a 1 MB per-line cap and a 50 000 message-per-file cap to keep the indexer bounded.
  2. Skips Claude Code's sidecar entries (permission-mode, file-history-snapshot, attachment, system-reminder, etc.) so only real user and assistant turns are indexed.
  3. Redacts well-known secret patterns (API keys, JWTs, private key blocks, env-style assignments) before content enters the index.
  4. Builds a minisearch BM25 index over the message text plus tool names and project path, and persists it atomically to ~/.claude-remind/.
  5. On startup only files whose mtime changed are re-parsed.
  6. For each session derives hasError, endedCleanly, last user message, and a conservative solvedHint (likely only on explicit positive sentiment or a clean end with no errors; unlikely only on explicit negative sentiment; unknown otherwise).

The on-disk index is a single JSON file. It is safe to delete; the next query rebuilds it.


configuration

Environment variableDefaultPurpose
CLAUDE_CONFIG_DIR~/.claudeWhere Claude Code stores its logs.
CLAUDE_REMIND_DIR~/.claude-remindWhere the index is persisted.

Both must be absolute paths if set; otherwise the default is used.


privacy

The index file at ~/.claude-remind/index.json is written with mode 0600 and contains the indexed text from your conversations. A built-in regex pass redacts well-known secret formats (OpenAI / Anthropic / GitHub / AWS / Stripe / Google / Slack keys, JWTs, private key blocks, common KEY=value env assignments) before content enters the index. This is best-effort; if you've pasted a custom credential format into a past conversation it may not be caught. Delete ~/.claude-remind/ to wipe the index.

The server runs entirely locally over stdio. It makes no network calls.


development

bash
git clone https://github.com/emretheus/claude-remind-mcp && cd claude-remind-mcpnpm installnpm run buildnpm test

Scripts:

bash
npm run build         # TypeScript build with executable permissions on dist/index.jsnpm run dev           # tsc --watchnpm run start         # Run the MCP server (stdio)npm run lint          # ESLintnpm run lint:fix      # ESLint --fixnpm run format        # Prettier writenpm run format:check  # Prettier checknpm run typecheck     # tsc --noEmitnpm test              # Vitest run

To point a Claude Code instance at a local checkout:

bash
claude mcp add claude-remind -- node /absolute/path/to/dist/index.js

Smoke-test the MCP handshake from the shell:

bash
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \  | node dist/index.js

Pre-commit runs lint-staged (ESLint + Prettier on staged files) via Husky.


requirements

  • Node.js ≥ 20
  • A Claude Code installation that writes to ~/.claude/projects/

The package has two runtime dependencies: @modelcontextprotocol/sdk and minisearch. No native modules.


license

MIT

來源:README.md,提交 8c510c6

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Claude 整合