opencode-history-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
While search_history and find_related_work both search text, they target different fields (full conversation vs. titles/initial prompts) and the descriptions explicitly distinguish them. All other tools are clearly distinct by resource type (sessions, files, stats).
Naming Consistency5/5All tool names follow a consistent verb_noun pattern in snake_case, with modifiers like 'by_file' and 'by_related_work' for clarity.
Tool Count5/5Seven tools provide a tight, focused set for browsing session history without redundancy.
Completeness5/5The tool set covers discovery (search, file lookup, related work, list), detail retrieval, message reading, and aggregate stats—no obvious dead ends for a read-only history server.
Average 4.2/5 across 7 of 7 tools scored. Lowest: 3.6/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 6 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
This repository is licensed under MIT License.
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.
This server has been verified by its author.
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?
Annotations already declare the tool as read-only and idempotent, so the safety profile is covered. The description adds context about the content of the statistics (e.g., root vs sub-agent breakdown, top directories) but does not disclose deeper operational behaviors such as authentication needs, rate limits, or how the optional directory scope affects output. The added content is useful but not rich enough to warrant a higher score.
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 compact: two sentences that front-load the main purpose and then list specific breakdowns. Every word is informative, with no redundancy or fluff. The structure is clear and easy to parse.
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 tool is simple (one optional parameter), has an output schema, and benefits from strong annotations. The description covers the core purpose and primary output facets, enough for an agent to know what to expect. It does not mention the directory parameter, but the schema handles that, and the description's job is to add value beyond structured fields, which it does with the statistics breakdown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter `directory`, and the schema description already explains it as an optional scope. The tool description does not add any additional meaning or usage details for the parameter, so the baseline score of 3 applies.
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 that the tool provides overview statistics, enumerating specific metrics like session counts, messages, cost, time range, and distribution. It also mentions breakdowns by root vs sub-agent and top directories. This distinguishes it from sibling tools that focus on searching or retrieving individual sessions/messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given for when to use this tool versus alternatives. The description merely states what it does without mentioning any alternatives or exclusions. Sibling tool names suggest more specific options exist (e.g., get_session_detail, list_sessions), but the description does not clarify when to choose get_stats 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?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds meaningful behavioral detail: how matching works (by titles and original user prompts) and the qualitative claim of being 'more precise' than search_history. No contradictions or missing disclosure of side effects.
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?
Two short sentences carry all necessary information: the first defines the tool's function, the second positions it against a sibling. There is zero redundancy, and key terms are front-loaded.
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 tool has only 3 parameters (1 required), a rich output schema, and clear annotations, so the description need not explain return values. It covers the primary use case and positions the tool relative to one key alternative. However, it omits details about scope limitations or behavior across directories/prompts, which prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all parameters, including the query example, limit default/max, and directory scope. The description adds no additional meaning beyond pointing to 'task description' which is already in the schema. Schema coverage is 100%, so the baseline of 3 applies.
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 uses a specific verb ('Find') with a clear resource ('sessions') and method ('by matching session titles and original user prompts'). It also explicitly distinguishes the tool from a sibling ('More precise than search_history'), making the purpose unmistakable.
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 provides a clear context for use ('finding sessions on the same topic') and directly compares with 'search_history', noting that this tool is more precise. However, it does not explicitly address when to use alternative sibling tools like find_sessions_by_file or list_sessions, so it stops short of full exclusions.
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?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds valuable behavioral context by explaining the search mechanism (patch records and file mentions) and the performance characteristic (<50ms). This goes beyond the annotations without contradicting them.
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 front-loaded: the first sentence states the core purpose, and the following sentences provide supplementary details about search scope and performance. Every sentence earns its place with no redundancy or fluff.
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, combined with the input schema, output schema, and annotations, provides a complete picture for a tool of this complexity. It clarifies what the tool searches, mentions performance, and the schema covers parameter details. The only minor gap is not describing the return structure, but the output schema exists to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all three parameters are documented in the schema. The description mentions that file_path can be a basename (e.g., 'webhook_queue.py') but this is also in the schema's example. The description does not add significant semantic value beyond the schema, so 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.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Find') and resource ('sessions that modified or mentioned a specific file'). It distinguishes itself from sibling tools like list_sessions by focusing on file-based filtering. The dual search modes (patch records and mentions) further clarify its scope.
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 for when to use the tool: when looking for sessions related to a specific file. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous enough that an agent would know to use this for file-based searches rather than general session listing or history search.
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?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds behavioral context by specifying that only root sessions are returned and that directory filtering applies, which goes beyond the schema. It does not describe return format or pagination, but the presence of an output schema mitigates this. No contradiction with annotations.
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 short sentences, with the first sentence stating the core purpose and the second providing a key scoping constraint. Every word earns its place—no fluff, no redundancy. It is front-loaded with the action and resource first.
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 read-only listing tool with full parameter documentation, annotations, and an output schema, the description is adequate. It clearly defines what the tool does and its scope. The only missing element is explicit guidance on when to choose this over sibling tools, but given the tool's simplicity, the provided context is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as all three parameters (sort, limit, directory) have descriptions. The description's mention of 'filtered by directory' aligns with the directory parameter but adds no new semantics beyond the schema. This matches the baseline of 3 for high 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 description clearly states the tool's function: 'Browse sessions filtered by directory'. It adds a critical scope constraint with 'Root sessions only (sub-agents excluded)', which distinguishes it from sibling tools that might list sub-agent sessions or search sessions differently. The verb 'browse' and resource 'sessions' are specific and immediately convey the action.
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 implies usage context: browsing sessions at the root level, optionally filtered by directory. The exclusion of sub-agents is a clear when-not-to-use condition. However, it does not explicitly mention alternatives like 'search_history' or 'find_sessions_by_file', nor does it state when to prefer this over them, so it falls short of a full 5.
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?
Annotations already declare readOnlyHint and idempotentHint, so the tool's safety profile is known. The description adds value by detailing the return content (metadata, original task, files modified, last assistant message), which goes beyond the annotations and clarifies what 'full details' means.
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, two sentences with the primary action stated first and the return contents summarized in a bullet-like list. No unnecessary words or repetition.
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?
For a simple tool with one well-documented parameter, an output schema, and clear annotations, the description fully covers what the tool returns and when to use it. There is no missing behavioral context that would impede an agent from invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a complete description for the single parameter (session_id with example), and the description does not add further parameter-specific semantics. Since schema coverage is 100%, the baseline of 3 applies.
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 function: 'Get full details of a specific session.' It specifies what is included (metadata, original task, files modified, last assistant message), which distinguishes it from sibling tools like get_session_messages and list_sessions by focusing on a single session's comprehensive detail.
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 implies when to use this tool (when you need full details on a single session), and the inclusion of specific elements (metadata, original task, files modified, last assistant message) suggests what you might use it for. However, it lacks explicit guidance on when not to use it or how it compares to alternatives like get_session_messages.
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?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral context by stating that the full-text search covers both user prompts and assistant responses, which is not obvious from the schema alone. It does not contradict annotations.
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 a single, well-structured sentence that is front-loaded with the action and resource, and provides a parenthetical clarification. Every word earns its place with zero fluff.
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?
With a simple 3-parameter schema, full parameter documentation, safety annotations, and an output schema, the description need only cover purpose and search scope. It does so completely. The lack of alternative guidance is already factored into usage_guidelines.
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?
Since schema description coverage is 100%, the baseline is 3. The description adds extra meaning by clarifying that the 'query' searches over user prompts and assistant responses, which is not specified in the parameter descriptions. This adds value beyond the schema.
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 uses a specific verb ('Search') and resource ('past OpenCode conversations'), and specifies the scope ('full-text on user prompts and assistant responses'). This clearly distinguishes it from sibling tools like list_sessions or get_session_detail, which are about listing or retrieving sessions rather than searching content.
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 its usage: when you need to find past conversations by content keywords. However, it does not explicitly mention when not to use it or point to alternatives among siblings (e.g., find_sessions_by_file for file-based search). No exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral details beyond the readOnly/idempotent annotations: hard truncation to 1000 chars, tool calls returning only name+status (not output), and file/base64 parts skipped. This is essential operational context that cannot be inferred from annotations or schema.
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 front-loaded. The first sentence states the action, the second gives usage context, and the remaining sentences list critical constraints. Every sentence adds value, with no redundancy or filler.
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?
With read-only annotations, a complete input schema, and an output schema, the description covers the necessary context: when to use, pagination, output limitations, and content skipping. It is sufficient for an agent to correctly select and invoke the tool without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for all parameters (100% coverage). The description repeats the pagination concept but adds no new parameter-specific details. Since the schema carries the parameter documentation, baseline 3 applies.
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 verb 'Read' and the resource 'actual messages from a session', distinguishing it from sibling discovery and detail tools. It immediately conveys the tool's core function and scope.
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?
Explicitly instructs to use after session discovery and describes pagination behavior. It gives clear context for when to invoke, though it does not explicitly list when not to use it. The phrasing 'after finding a session' strongly implies the appropriate workflow.
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/singleflo/opencode-history-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server