Skip to main content
Glama

claude-historian-mcp

An Model Context Protocol (MCP) server for searching your Claude Code conversation history. Find past solutions, track file changes, and learn from previous work.

claude-historian-mcp

npm version License: MIT TypeScript Node.js Claude GitHub stars CodeRabbit Pull Request Reviews


install

Requirements:

Claude Code

From shell:

claude mcp add claude-historian-mcp -- npx claude-historian-mcp

From inside Claude (restart required):

Add this to our global mcp config: npx claude-historian-mcp

Install this mcp: https://github.com/Vvkmnn/claude-historian-mcp

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

{
  "mcpServers": {
    "claude-historian-mcp": {
      "command": "npx",
      "args": ["claude-historian-mcp"],
      "env": {}
    }
  }
}

There is no npm install required -- no external dependencies or local databases, only search algorithms.

However, if npx resolves the wrong package, you can force resolution with:

npm install -g claude-historian-mcp

renamed: This project was renamed from claude-historian to claude-historian-mcp. Existing users should update your install command and MCP config args to claude-historian-mcp.

Related MCP server: cc-session-search

skill

Optionally, install the skill to teach Claude when to proactively use historian:

npx skills add Vvkmnn/claude-historian-mcp --skill claude-historian --global
# Optional: add --yes to skip interactive prompt and install to all agents

This makes Claude automatically check your history before web searches, when encountering errors, or at session start. The MCP works without the skill, but the skill improves discoverability.

plugin

For automatic history search with hooks and commands, install from the claude-emporium marketplace:

/plugin marketplace add Vvkmnn/claude-emporium
/plugin install claude-historian@claude-emporium

The claude-historian plugin provides:

Hooks (targeted, zero overhead on success):

  • Before WebSearch/WebFetch → Check search scope="similar"

  • Before EnterPlanMode → Check search scope="plans"

  • Before Task agents → Check search scope="tools"

  • After Bash errors → Check search scope="errors"

Command: /historian-search <query>

Requires the MCP server installed first. See the emporium for other Claude Code plugins and MCPs.

features

MCP server that gives Claude access to your conversation history. Two tools, 11 scopes, zero dependencies.

Runs locally (with cool shades [⌐■_■] 📜):

Search across conversations, files, errors, plans, config, tasks, sessions, tools, similar queries, and memories.

search query="docker auth error"                          # default scope: all
search query="fix build" scope="conversations"            # past solutions
search query="ENOENT" scope="errors"                      # error patterns + fixes
search query="auth" scope="plans"                         # implementation plans
search query="hooks" scope="config"                       # rules, skills, CLAUDE.md
search query="git push" scope="similar"                   # related questions asked before
search query="Edit" scope="tools"                         # tool usage workflows
search filepath="package.json" scope="files"              # file change history
search scope="sessions"                                   # recent sessions
search scope="memories"                                   # project memory files
search query="deploy" scope="all" detail_level="detailed" # full context
search query="auth" timeframe="7d" project="my-app"       # filtered
📜 ── search "docker auth" ── 5 results · 405 tokens

{
  "results": [{
    "type": "assistant",
    "ts": "2h ago",
    "content": "Fixed Docker auth by updating registry credentials...",
    "project": "my-app",
    "score": 100,
    "ctx": { "filesReferenced": ["docker-compose.yml"], "toolsUsed": ["Edit", "Bash"] }
  }]
}
📜 ── files "package.json" ── 92 operations · 1594 tokens

{
  "filepath": "package.json",
  "operations": [{
    "type": "edit",
    "ts": "1d ago",
    "changes": ["Changed: \"version\": \"1.0.3\" → \"version\": \"1.0.4\""],
    "content": "Updated version for release"
  }]
}
📜 ── tools "Bash" ── 5 patterns · 427 tokens

{
  "tool": "Bash",
  "patterns": [{
    "name": "Bash",
    "uses": 10,
    "workflow": "$ npm run build 2>&1",
    "practice": "Used with: ts, js, json, md files"
  }]
}

inspect

Get an intelligent summary of any session by ID (full UUID or short prefix).

inspect session_id="latest"                      # most recent session
inspect session_id="d537af65"                    # short prefix works
inspect session_id="d537af65" focus="files"      # only file changes
inspect session_id="d537af65" focus="tools"      # only tool usage
inspect session_id="d537af65" focus="solutions"  # only solutions
📜 ── inspect my-app (68d5323b)

{
  "session": {
    "id": "68d5323b",
    "ts": "2h ago",
    "duration": 45,
    "messages": 128,
    "project": "my-app",
    "tools": ["Edit", "Bash", "Read"],
    "files": ["src/auth.ts", "package.json"],
    "accomplishments": ["fixed auth bug", "added unit tests"],
    "decisions": ["chose JWT over sessions"]
  }
}

methodology

How claude-historian-mcp works:

"docker auth" query
      |
      ├─> Parallel Processing (search.ts:174): 15 projects × 10 files concurrently
      |   • Promise.allSettled for 6x speed improvement
      |   • Early termination when sufficient results found
      |   • Enhanced file coverage with comprehensive patterns
      |
      ├─> Enhanced Classification (search.ts:642): implementation → boost tool workflows
      |   • Workflow detection for tool sequences (Edit → Read → Bash)
      |   • Semantic boundary preservation (never truncate mid-function)
      |   • Claude-optimized formatting with rich metadata
      |
      ├─> Smart Ranking (utils.ts:267):
      |   ├─> Core Terms (scoring-constants.ts): "docker" +10, "auth" +10
      |   ├─> Supporting Terms: context words +3 each
      |   ├─> Tool Usage: Edit/Bash references +5
      |   ├─> File References: paths/extensions +3
      |   └─> Project Match: current project +5
      |
      ├─> Results sorted by composite score:
      |   • "Edit workflow (7x successful)" (2h ago) ***** [score: 45]
      |   • "Docker auth with context paths" (yesterday) **** [score: 38]
      |   • "Container debugging patterns" (last week) *** [score: 22]
      |
      └─> Return Claude Code optimized results

Core optimizations:

Search strategies:

Design principles:

  • Universal engine -- single search backend for all Claude Code conversations

  • Parallel processing -- concurrent file scanning across session directories

  • Semantic expansion -- query synonyms and related terms for better recall

  • Zero dependencies -- only @modelcontextprotocol/sdk, no databases required

  • Offline -- never leaves your machine, scans local JSONL files only

File access:

  • Reads from: ~/.claude/conversations/

  • Zero persistent storage or indexing

  • Never leaves your machine

Performance: See PERFORMANCE.md for benchmarks, optimization history, and quality scores.

alternatives

Every conversation history tool either loads context always (burning tokens when unused) or requires external runtimes and databases. Historian searches on-demand with zero dependencies.

Feature

historian

Claude Memory

claude-mem

deja

conversation-search

Dependencies

Zero

Built-in

Bun + Python + SQLite + Chroma

Python

Rust toolchain

Background service

No

No

Yes (port 37777)

No

No

Writes to disk

Never

Yes (auto-memory files)

Yes (SQLite + Chroma DB)

Yes (breadcrumbs)

Yes (~10% index overhead)

Session startup

0 tokens

~200 lines loaded

5-8k tokens every session

Skill prompt loaded

0 tokens

Token cost (idle)

0

200 lines/session

5-8k/session

Skill prompt/session

0

Search algorithms

12

None (file read)

Vector + keyword

Weighted signals

BM25 full-text

Fuzzy matching

Yes

No

Yes (vector similarity)

No

No

Workflow detection

Yes

No

No

No

No

Raw conversations

Yes

No (summaries only)

No (compressed observations)

Yes

Yes (filtered)

Maintenance

Zero

Zero

Worker daemons, migrations

Skill config

Index rebuilds

Claude Memory -- Claude's built-in memory (CLAUDE.md + auto-memory). Persists project rules and preferences across sessions. Forward-looking ("always use ESM imports"); not conversation search. Complementary: memory for rules, historian for past solutions.

claude-mem -- Plugin that captures observations via lifecycle hooks, compresses them into SQLite + Chroma, and loads context every session. Requires Bun, Python, and a background worker on port 37777. Real-world testing (270+ sessions): 95% of sessions never query history -- always-on tools pay 5-8k tokens per session regardless. Historian pays 0 tokens idle, 500-2k per query, saving ~475k tokens over 100 sessions. Known issues: creates stub session files that break --continue, worker daemon version conflicts, security hooks blocking valid edits.

deja -- Python skill that indexes sessions by episodes and accomplishments. Uses weighted signal ranking (todos > files > text). Requires Python and TodoWrite integration.

conversation-search -- Rust MCP server using Tantivy BM25 full-text search. Fast indexing (~1000 conversations/second) but requires Rust toolchain and persistent disk index.

desktop

Note: Claude Desktop stores conversations server-side, not locally. The local LevelDB files (~/Library/Application Support/Claude/) contain only session tokens, UI preferences, and Intercom state - not conversation content. Claude Desktop support is also blocked by LevelDB locks and Electron sandboxing.

This means local history search for Claude Desktop is not currently possible. This project focuses on Claude Code, which stores full conversation history locally in ~/.claude/projects/.

You may get some Claude Desktop from Claude Code, but only when the Claude app is closed. Furthermore A DXT package and build is available for future compatibility; further investigations are ongoing. Feel free to test with it.

development

git clone https://github.com/Vvkmnn/claude-historian-mcp && cd claude-historian-mcp
npm install && npm run build
npm test

Package requirements:

  • Node.js: >=20.0.0 (ES modules)

  • Runtime: @modelcontextprotocol/sdk

  • Zero external databases -- works with npx

Development workflow:

npm run build          # TypeScript compilation with executable permissions
npm run dev            # Watch mode with tsc --watch
npm run start          # Run the MCP server directly
npm run lint           # ESLint code quality checks
npm run lint:fix       # Auto-fix linting issues
npm run format         # Prettier formatting (src/)
npm run format:check   # Check formatting without changes
npm run typecheck      # TypeScript validation without emit
npm run test           # Lint + type check
npm run prepublishOnly # Pre-publish validation (build + lint + format:check)

Git hooks (via Husky):

  • pre-commit: Auto-formats staged .ts files with Prettier and ESLint

  • pre-push: Runs full validation (format, lint, type-check, build) before push

Contributing:

  • Fork the repository and create feature branches

  • Test with large conversation histories before submitting PRs

  • Follow TypeScript strict mode and MCP protocol standards

Learn from examples:

license

MIT

Appius Claudius Caecus in the Senate by Cesare Maccari (1888). Roman statesman and father of Latin prose.

Available Tools

8 tools
extract_compact_summaryC

Get intelligent summary of a conversation session with key insights

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID to summarize
max_messagesNoMaximum messages to analyze (default: 10)
focusNoFocus area: solutions, tools, files, or allall

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'intelligent summary' and 'key insights', which hints at analysis behavior, but it doesn't describe critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like. For a tool with no annotations, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Get intelligent summary of a conversation session') and adds a clarifying detail ('with key insights'). There is no wasted verbiage, and it is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral context, usage guidelines, and details on output format, which are crucial for an agent to use the tool effectively. The high schema coverage helps, but the description doesn't compensate for other gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, meaning all parameters are documented in the schema. The description adds no additional semantic information about the parameters beyond what the schema provides, such as explaining the 'focus' options in more detail or giving examples. Thus, it meets the baseline score without compensating further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('summary of a conversation session'), and it adds value by specifying 'intelligent summary' and 'key insights'. However, it doesn't explicitly differentiate this from sibling tools like 'search_conversations' or 'list_recent_sessions', which might also involve conversation analysis, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_conversations' or 'list_recent_sessions', nor does it specify contexts or exclusions for usage. This leaves the agent without clear direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_file_contextB

Find all conversations and changes related to a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesFile path to search for in conversation history
operation_typeNoFilter by operation: read, edit, create, or allall
limitNoMaximum number of results (default: 15)
detail_levelNoResponse detail: summary (default), detailed, rawsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'find all conversations and changes,' implying a read-only operation, but doesn't specify permissions, rate limits, data sources, or response format. For a tool with 4 parameters and no output schema, this leaves significant gaps in understanding how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Find all conversations and changes related to a specific file.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters with 100% schema coverage but no annotations and no output schema, the description is minimally adequate. It states the purpose clearly but lacks behavioral context, usage guidance, and output details. For a search tool with moderate complexity, it should do more to compensate for the missing structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaning beyond what the schema provides—it doesn't explain parameter interactions, default behaviors, or practical examples. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find all conversations and changes related to a specific file.' It specifies the verb ('find'), resource ('conversations and changes'), and target ('specific file'). However, it doesn't explicitly differentiate from sibling tools like 'search_conversations' or 'list_recent_sessions', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_conversations' or 'list_recent_sessions', nor does it specify prerequisites, exclusions, or contextual triggers for usage. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_similar_queriesB

Find previous similar questions or queries with enhanced matching

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQuery to find similar previous questions
limitNoMaximum number of results (default: 8)
detail_levelNoResponse detail: summary (default), detailed, rawsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'enhanced matching' but doesn't explain what this means operationally—how similarity is determined, what data sources are searched, whether results are ranked, or what the output format looks like. This leaves significant gaps for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (search with similarity matching), no annotations, and no output schema, the description is minimally adequate but incomplete. It covers the basic purpose but lacks details on behavior, output format, and usage context that would help an agent invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find previous similar questions or queries with enhanced matching'. It specifies the verb ('Find') and resource ('previous similar questions or queries'), but doesn't differentiate from siblings like 'search_conversations' or 'get_error_solutions' which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention sibling tools like 'search_conversations' or 'get_error_solutions', nor does it specify context or prerequisites for using this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_tool_patternsC

Analyze tool usage patterns, workflows, and successful practices

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameNoOptional specific tool name to analyze
pattern_typeNoType of patterns: tools, workflows, or solutionstools
limitNoMaximum number of patterns (default: 12)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions analysis but does not detail how the analysis is performed, what data sources are used, whether it involves read-only operations or mutations, or any rate limits or permissions required. This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It avoids redundancy and waste, making it easy to parse. However, it could be slightly more structured by explicitly separating the analysis focus from the output implications, but overall it is appropriately concise for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (analysis of patterns with 3 parameters) and lack of annotations or output schema, the description is incomplete. It does not explain what the analysis yields, how results are formatted, or any behavioral traits like data sources or limitations. This makes it inadequate for an agent to fully understand the tool's operation and expected outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting all three parameters with enums and defaults. The description adds no additional meaning beyond the schema, such as explaining how parameters interact or providing examples. Since schema coverage is high, the baseline score of 3 is appropriate, as the schema adequately handles parameter semantics without extra description input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'analyze tool usage patterns, workflows, and successful practices,' which provides a general purpose but lacks specificity about what resources or data it operates on. It distinguishes itself from siblings like 'search_conversations' or 'list_recent_sessions' by focusing on patterns rather than direct data retrieval, but the verb 'analyze' is vague without clarifying the analysis method or output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage for analyzing patterns, but it does not specify scenarios, prerequisites, or exclusions. For example, it does not differentiate from 'find_similar_queries' or 'get_error_solutions,' leaving the agent to infer based on general terms without clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_error_solutionsB

Find solutions for specific errors with enhanced matching

ParametersJSON Schema
NameRequiredDescriptionDefault
error_patternYesError message or pattern to search for solutions
limitNoMaximum number of results (default: 8)
detail_levelNoResponse detail: summary (default), detailed, rawsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'enhanced matching,' which hints at improved search capabilities, but doesn't explain what 'enhanced' entails, such as fuzzy matching or prioritization. It also omits details like rate limits, authentication needs, or response format, leaving gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Find solutions for specific errors with enhanced matching.' It's front-loaded with the core purpose and avoids unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It states the purpose but lacks details on behavioral traits, usage context, or output expectations. While it covers the basics, it doesn't fully compensate for the absence of annotations or output schema, leaving room for improvement in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting all parameters: 'error_pattern,' 'limit,' and 'detail_level.' The description doesn't add any extra semantic meaning beyond this, such as examples or usage tips. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or enhance the parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find solutions for specific errors with enhanced matching.' It specifies the verb ('Find') and resource ('solutions for specific errors'), making the function understandable. However, it doesn't explicitly differentiate from sibling tools like 'find_similar_queries' or 'search_conversations,' which might also involve error-related searches, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this tool is preferred, such as for error troubleshooting versus general search. Without such distinctions, users might struggle to choose between this and tools like 'search_conversations' or 'find_similar_queries.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_sessionsC

Browse recent sessions with smart activity detection and summaries

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of sessions (default: 10)
projectNoOptional project name to filter sessions
include_summaryNoInclude intelligent session summaries (default: true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions 'smart activity detection and summaries' which hints at some processing behavior, but doesn't disclose critical details like whether this is a read-only operation, what permissions might be needed, rate limits, or how the 'smart' detection works. The description is vague about actual behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point. Every word contributes to understanding the tool's purpose without any wasted text. It's appropriately sized and front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'recent' means temporally, what format the results come in, what 'smart activity detection' entails, or how summaries are generated. The description leaves too many questions unanswered for a tool that presumably returns structured session data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all three parameters. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain how parameters interact or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Browse') and resource ('recent sessions'), and mentions additional features ('smart activity detection and summaries'). However, it doesn't explicitly differentiate this tool from sibling tools like 'search_conversations' or 'extract_compact_summary', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'search_conversations' and 'extract_compact_summary' available, there's no indication of when this browsing tool is preferred over those search or extraction tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_conversationsC

Search through Claude Code conversation history with smart insights

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find relevant conversations
projectNoOptional project name to filter results
timeframeNoTime range filter (today, week, month)
limitNoMaximum number of results (default: 10)
detail_levelNoResponse detail: summary (default), detailed, rawsummary

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only vaguely mentions 'smart insights' without explaining what these entail (e.g., ranking, relevance scoring, or AI-enhanced filtering). It doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'search' means operationally (e.g., full-text, metadata). This leaves significant gaps for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. However, 'smart insights' is vague and could be more precise. It avoids redundancy but misses opportunities to add critical context, making it slightly under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error handling, or the 'smart insights' feature, leaving the agent unsure of behavioral outcomes. Given the complexity and lack of structured data, more detail is needed to guide effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no parameter-specific information beyond what's in the schema, not explaining how 'query' interacts with 'smart insights' or clarifying parameter interdependencies. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches through 'Claude Code conversation history with smart insights', specifying both the verb (search) and resource (conversation history). It distinguishes from siblings like 'list_recent_sessions' (which lists rather than searches) and 'find_similar_queries' (which focuses on queries rather than conversations). However, it doesn't explicitly mention what 'smart insights' entail, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_recent_sessions' for recent conversations without search, 'find_similar_queries' for query analysis, or 'search_plans' for different content. It mentions 'smart insights' but doesn't clarify what contexts benefit from them versus basic search, offering no explicit when/when-not instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_plansB

Search Claude Code plan files for past implementation approaches, decisions, and patterns

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for plan content
limitNoMaximum number of results (default: 10)
detail_levelNoResponse detail levelsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches for 'past implementation approaches, decisions, and patterns,' implying a read-only operation, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or response format. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('Search Claude Code plan files for past implementation approaches, decisions, and patterns') contributes directly to understanding the tool's function, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose but lacks usage guidelines, behavioral details, and output information. Without annotations or an output schema, the agent has incomplete context for effective tool invocation, though the schema provides good parameter coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all three parameters (query, limit, detail_level) with descriptions, defaults, and an enum. The description adds no additional parameter semantics beyond what's in the schema, such as query syntax examples or detail-level implications. This meets the baseline score of 3 when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search Claude Code plan files for past implementation approaches, decisions, and patterns.' It specifies the verb ('Search'), resource ('Claude Code plan files'), and target content ('implementation approaches, decisions, and patterns'). However, it doesn't explicitly differentiate from sibling tools like 'search_conversations' or 'find_tool_patterns,' which might have overlapping search domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_conversations' or 'find_tool_patterns,' nor does it specify contexts, prerequisites, or exclusions for usage. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv1.0.0
    • Changedextract_compact_summary2 fields changed
      • addedInput schema / properties / focus
        Added value: +{
        +  "default": "all",
        +  "description": "Focus area: solutions, tools, files, or all",
        +  "enum": [
        +    "solutions",
        +    "tools",
        +    "files",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / max_messages / description
        Previous value: -"Maximum messages to include in summary (default: 10)"New value: +"Maximum messages to analyze (default: 10)"
    • Changedfind_file_context4 fields changed
      • addedInput schema / properties / detail_level
        Added value: +{
        +  "default": "summary",
        +  "description": "Response detail: summary (default), detailed, raw",
        +  "enum": [
        +    "summary",
        +    "detailed",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -20New value: +15
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results (default: 20)"New value: +"Maximum number of results (default: 15)"
      • addedInput schema / properties / operation_type
        Added value: +{
        +  "default": "all",
        +  "description": "Filter by operation: read, edit, create, or all",
        +  "enum": [
        +    "read",
        +    "edit",
        +    "create",
        +    "all"
        +  ],
        +  "type": "string"
        +}
    • Changedfind_similar_queries3 fields changed
      • addedInput schema / properties / detail_level
        Added value: +{
        +  "default": "summary",
        +  "description": "Response detail: summary (default), detailed, raw",
        +  "enum": [
        +    "summary",
        +    "detailed",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -10New value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results (default: 10)"New value: +"Maximum number of results (default: 8)"
    • Changedfind_tool_patterns3 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -20New value: +12
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of patterns (default: 20)"New value: +"Maximum number of patterns (default: 12)"
      • addedInput schema / properties / pattern_type
        Added value: +{
        +  "default": "tools",
        +  "description": "Type of patterns: tools, workflows, or solutions",
        +  "enum": [
        +    "tools",
        +    "workflows",
        +    "solutions"
        +  ],
        +  "type": "string"
        +}
    • Changedget_error_solutions3 fields changed
      • addedInput schema / properties / detail_level
        Added value: +{
        +  "default": "summary",
        +  "description": "Response detail: summary (default), detailed, raw",
        +  "enum": [
        +    "summary",
        +    "detailed",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -10New value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results (default: 10)"New value: +"Maximum number of results (default: 8)"
    • Changedlist_recent_sessions2 fields changed
      • addedInput schema / properties / include_summary
        Added value: +{
        +  "default": true,
        +  "description": "Include intelligent session summaries (default: true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / project
        Added value: +{
        +  "description": "Optional project name to filter sessions",
        +  "type": "string"
        +}
    • Changedsearch_conversations3 fields changed
      • addedInput schema / properties / detail_level
        Added value: +{
        +  "default": "summary",
        +  "description": "Response detail: summary (default), detailed, raw",
        +  "enum": [
        +    "summary",
        +    "detailed",
        +    "raw"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +10
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results (default: 50)"New value: +"Maximum number of results (default: 10)"
    • Addedsearch_plans
  2. 7 tool updates
    • First observedextract_compact_summary
    • First observedfind_file_context
    • First observedfind_similar_queries
    • First observedfind_tool_patterns
    • First observedget_error_solutions
    • First observedlist_recent_sessions
    • First observedsearch_conversations

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, such as extract_compact_summary for session summaries and find_file_context for file-related conversations. However, find_similar_queries and search_conversations could potentially overlap in functionality, as both involve searching through conversation history, which might cause minor confusion for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as extract_compact_summary, find_file_context, and search_conversations. This predictability makes it easy for an agent to understand and navigate the tool set without naming-related confusion.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose of analyzing conversation history and patterns. Each tool appears to serve a specific function, such as summarizing sessions, finding errors, or searching plans, making the count appropriate and manageable for the domain.

Completeness4/5

The tool set covers key aspects of conversation analysis, including summarization, searching, error resolution, and pattern detection. A minor gap might be the lack of tools for modifying or annotating historical data, but the surface is largely complete for querying and insights, allowing agents to work effectively within the domain.

Maintenance

ActivityInactive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that makes Claude Code conversation history searchable and proactively useful by indexing past sessions with hybrid BM25+TF-IDF search, extracting decisions and solutions, and auto-injecting relevant project context at session start.
    9
    12
    65
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for Claude Code that enables semantic search of past session transcripts and intelligent session forking, allowing users to find and resume from relevant previous conversations with full context.
    13
    8
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vvkmnn/claude-historian-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server