claude-session-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct focus: listing projects, listing sessions, full-text search, tree structure, thread retrieval, and fork details. get_tree and get_forks are complementary per the descriptions, with get_tree explicitly positioned as a precursor to get_thread and get_forks. No two tools appear to perform the same action.
Naming Consistency4/5Names follow a predictable verb_noun pattern for most tools (list_projects, list_sessions, get_tree, get_thread, get_forks). The 'search' tool deviates by lacking an explicit object, but this is minor and does not cause confusion. Overall, the naming is readable and consistent in style.
Tool Count5/5Six tools is well within the ideal range for a focused session-history viewer. Each tool covers a necessary aspect of the domain without redundancy or bloat. The count feels appropriately scoped for the server's purpose.
Completeness5/5The tool surface covers the full read-only lifecycle of exploring session history: discover projects, list sessions, search across content, inspect the conversation tree, retrieve specific threads, and analyze forks. No obvious gaps are apparent for the stated purpose.
Average 4.3/5 across 6 of 6 tools scored. Lowest: 3.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral transparency. It discloses the sorting order and pagination behavior, but does not mention whether the operation is read-only, potential side effects, or error handling. It is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a one-sentence purpose followed by a clear parameter list. Every line serves a purpose, and there is no redundant or unclear text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description covers the purpose, ordering, and all parameters. The output schema documents return values. It lacks explicit mention of edge cases or when to use alternatives, but it is sufficiently complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions (0% coverage), but the description compensates fully by explaining each parameter's meaning: project slug filtering, limit for max results, and offset for pagination. It adds clear value beyond the schema's types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List sessions for a project, sorted by most recent first' with a specific verb and resource, and it distinguishes from sibling tools like list_projects by focusing on sessions. It could be more explicit about how sessions are defined, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing sessions but does not explicitly state when to use this tool over alternatives like search or get_thread. There is no mention of exclusions or conditionals, making the usage guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses useful behaviors: 'Only includes user and assistant messages', 'Supports pagination for long threads', and explains the include_tool_calls option. However, it does not explicitly state read-only safety, error handling, or whether messages are returned in chronological order (though 'root-to-leaf path' implies structural order).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a front-loaded purpose, followed by behavioral notes and a clearly formatted Args list. It is appropriately sized given the need to document 6 parameters, and every sentence contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core function, filtering behavior, pagination, and parameter semantics. Given an output schema exists (so return format is handled) and no annotations are provided, it includes enough context for an agent to select and invoke the tool, though it could add a note about sorting order or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description's Args section thoroughly explains every parameter with added meaning: limit has 'max 200', offset is 'Skip first N messages', leaf_uuid 'Empty for the primary (latest) thread', session_id 'UUID (or prefix)', project 'Optional project slug', and include_tool_calls 'Show tool names used in assistant messages'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a conversation thread (root-to-leaf path through the tree)', providing a specific verb, resource, and scope. It distinguishes itself from sibling tools like get_tree (which likely returns the entire tree) by emphasizing 'root-to-leaf path' and 'Only includes user and assistant messages'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single conversation thread, with details like 'leaf_uuid empty for the primary (latest) thread'. However, it does not explicitly compare against alternatives such as get_tree or get_forks, or state when to prefer this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains that fork points represent branchings from retries/edits and identifies primary vs. abandoned branches. However, it does not disclose potential side effects, required permissions, or output structure, though the tool appears read-only by name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and includes a clear Args section. Every sentence serves a purpose without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, return value descriptions are unnecessary. The tool's purpose, branch behavior, and parameter roles are sufficiently described. Slight gap: no usage guidance relative to siblings, but that is covered under the usage dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description provides meaningful explanations for all three parameters: session_id (UUID or prefix), project (optional slug), and fork_uuid (specific fork point or all). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get fork points in a session with diverging branch details' with a specific verb and resource. It distinguishes from siblings by focusing on branch/fork history rather than session lists, trees, or threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes what the tool does and shows branch details, implying use when fork information is needed, but does not explicitly state when it should be used over alternatives or when to avoid it. No exclusion criteria or comparison to sibling tools like get_thread or get_tree.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It adds useful context (only projects with session history, return fields) beyond the tool name. However, it does not explicitly state that the operation is read-only, nor does it mention any potential limitations (e.g., pagination, permissions), which would be more important for tools with side effects. For a simple list, this is acceptable but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and includes only relevant details about return values. No filler or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and an output schema. The description explains what the tool returns and its filtering condition, which is complete for this level of complexity. The existence of an output schema covers detailed return structure, so the description doesn't need to enumerate every field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already fully covers the inputs. The description adds nothing about parameters, but there is nothing to add. Per the rubric, a baseline of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('List'), resource ('Claude Code projects'), and scope ('that have session history'). It also enumerates the return fields (slugs, session counts, total size), clearly distinguishing it from sibling tools like list_sessions or get_tree, which operate at different levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by specifying it lists projects with session history, which implicitly tells the agent when to use it (project-level overview). However, it does not explicitly mention alternatives or exclusions, so it falls short of a 5. The context is clear enough that no other tool would be mistaken for this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses case-insensitive substring matching, fork awareness, max result limits, optional subagent inclusion, and the return of surrounding conversational context and branch info. While it does not explicitly state read-only behavior, it is evident from 'search' that no side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line purpose, a sentence on scope/return value, and a clear Args list. No filler or repetition. It is front-loaded with the most important information and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with four parameters and an output schema. The description covers search scope, return format, fork awareness, parameter behavior, and constraints (max 50 results). Since an output schema exists, not detailing return fields is appropriate. This is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no property descriptions, but the description's Args section explains every parameter: query (search text, case-insensitive), project (filter, empty for all), max_results (default 10, max 50), and include_subagents (search subagent files). This fully compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Full-text search across Claude Code session history' uses a specific verb (search) plus a clear resource (session history), and the description clarifies that it searches conversation text with fork awareness and returns context/branch info. This clearly distinguishes it from sibling tools that list projects/sessions or retrieve threads/trees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is the tool for searching text across sessions, with optional filtering by project and subagents. It does not explicitly mention alternatives or when not to use it, but the context is unambiguous enough that an agent would use it for free-text search rather than listing or retrieval tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses meaningful behavioral details: the tool returns a tree with fork points, branch summaries, compaction boundaries, and leaf nodes, and session_id accepts a UUID or prefix. While it does not explicitly state it is read-only, the 'get' verb and structural focus strongly imply a safe, non-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It leads with a clear purpose sentence, adds relevant details, includes usage guidance, and lists parameters in a clean format. Every sentence earns its place with no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no enums) and the presence of an output schema, the description is complete. It explains what the tool shows, when to use it, and clarifies each parameter. The mention of 'before navigating with get_thread or get_forks' provides necessary context within the sibling toolset, and the output schema presumably covers return value structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), but the description fully explains both parameters: 'session_id: Session UUID (or prefix)' and 'project: Optional project slug to narrow lookup.' This adds crucial format and purpose information beyond the schema, compensating entirely for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does 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 and resource: 'Get the conversation tree structure for a session.' It further distinguishes itself from sibling tools by listing what it shows (fork points, branch summaries, compaction boundaries, leaf nodes) and explicitly references get_thread and get_forks as navigation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Use this to understand the structure before navigating with get_thread or get_forks.' This states when to use (before navigating) and names the alternative tools, making the decision boundary clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Gunther-Schulz/claude-session-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server