mdflow MCP Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation3/5
Most tools target distinct resources or actions, but decision_open and entity_open both serve decision opening, and graph_mutate and graph_patch both submit the same atomic ChangeSet through different input formats. The descriptions help clarify intent, so overlap is manageable rather than severe.
Naming Consistency4/5The dominant pattern is snake_case object_verb naming such as checkpoint_record, graph_mutate, decision_open, and change_set_revert, which gives a predictable rhythm. A few exceptions like context_for_task, plan_context, and changes_since break the pattern but remain readable and understandable.
Tool Count3/519 tools sits in the heavy range for an MCP server and is somewhat inflated by multiple specialized readers such as entity_open, decision_open, plan_context, and context_for_task. The broad domain makes the count defensible, but consolidation would improve focus.
Completeness4/5The server covers project registration, graph/plan/decision reading and mutation, checkpoints, validation, code streaming, code mutation, and rollback, so core workflows do not dead-end. The main gap is the lack of explicit delete/unregister operations, though graph_mutate, graph_patch, and change_set_revert provide partial workarounds.
Average 3.5/5 across 19 of 19 tools scored. Lowest: 2.6/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 138 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
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.
This repository includes a glama.json configuration file.
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
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only lists validation targets and does not say whether the tool is read-only, whether it can modify the graph, what happens on validation failure, or what side effects it may have. This is a significant transparency gap for a tool in a graph-mutation-adjacent context.
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 one compact sentence with the verb front-loaded. It contains no filler, though the list format crams multiple concepts together without explaining them.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain the role of the parameters, the validation output, failure behavior, or side effects, so an agent cannot reliably invoke the tool or interpret its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not mention projectRoot or includeStructured. The agent is left to guess what the projectRoot path refers to and what includeStructured controls, so the description adds no parameter meaning.
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 opens with the specific verb 'Validate' and enumerates the resources it checks (global graph references, Chain paths, Plan targets, etc.). This differentiates it from graph_search, graph_mutate, and graph_patch, which perform different actions. However, the list is jargon-heavy and doesn't state the overall goal or how validation results are presented.
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 guidance is provided on when to use this tool compared with siblings like graph_search or graph_mutate. It doesn't state prerequisites, such as needing a registered project or graph, nor does it mention any scenario where validation should be run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 does reveal that the tool mutates state by creating or updating a checkpoint and that passed checkpoints are central to completion health, but it omits upsert semantics, invalidation behavior, revision handling, evidence validation, and side effects on related checkpoints. This is under-disclosed for a mutation 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two short sentences, with the operative verb front-loaded and no filler. It is efficient and easy to parse, though a structured breakdown of key behaviors would have been more helpful for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter mutation tool with 4 required fields, no annotations, and no output schema, this description is far too thin. It leaves out core operational details such as how targets are identified, what status transitions are allowed, how evidence should be structured, and what the tool returns or changes after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds very little parameter-level meaning. It hints that 'evidence' is relevant and that 'passed' status is significant, but it does not explain the required targetType/targetId/title/status combination or any of the many optional fields. An agent would have to infer nearly all parameter semantics from property names and enums alone.
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 states a clear verb-resource pair: 'Create or update a checkpoint' with a meaningful qualifier, 'with evidence.' It also adds domain significance by saying passed checkpoints are the basis for healthy completion states, which helps distinguish this from read-only siblings like checkpoint_list. It is not tautological and is clear enough for an agent to know what the tool does.
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 when this tool matters, especially for recording passed checkpoints, but it never explicitly says when to use this versus alternatives such as checkpoint_list or graph_mutate. There are no stated exclusions, prerequisites, or guidance about when not to use it, so usage context is only implied.
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 must carry behavioral disclosure; it does state that the tool avoids loading the full project, which is useful performance context. However, it does not disclose return format, pagination behavior, permissions, or whether results are limited to graph nodes only, leaving notable gaps for a no-annotation 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tightly written sentence with no filler and the key efficiency trait front-loaded. It is concise at the cost of missing detail, but structurally it is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters, no annotations, and no output schema, a single sentence is insufficient context. It does not explain how to construct a query, what the states/kinds enum values are, what includeStructured changes, or what a successful search returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters, and it does not. The seven parameters (kinds, limit, query, locale, states, projectRoot, includeStructured) receive no explanation beyond the bare schema names and types, leaving an agent to guess semantics and value formats.
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 names a specific operation ('Search') and resource ('graph entities and source paths'), and adds a meaningful scope qualifier about not loading the whole project. It is clear enough to separate from mutation siblings like graph_mutate and graph_patch, though it does not explicitly name or contrast a sibling.
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 phrase 'without loading the entire project' implies this is the lightweight, targeted-search option versus heavier project tools, but no explicit when-to-use or when-not-to-use guidance is provided. There is no mention of alternatives such as project_map, entity_open, or graph_validate.
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?
No annotations are provided, so the description carries the behavioral disclosure burden. It usefully reveals that the tool returns only targeted AST symbol slices and interfaces rather than full files, and that it is token-efficient. It does not address error handling, side effects, or authentication expectations, but the 'Extract/Returns' framing implies a read-only 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 a single efficient sentence that front-loads the core action, then adds the key output characteristic and the main benefit. There is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no output schema, and no annotations, the description needs to explain the parameter semantics and how the 'Chain' concept works; it does neither. It provides a high-level idea of the return content, but an agent could not confidently construct a correct invocation beyond guessing at chainId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not compensate by explaining any parameters. chainId is only vaguely implied by the word 'Chain', while projectRoot, maxTotalChars, and includeStructured are entirely unmentioned, leaving an agent without enough information to set optional parameters correctly.
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 a specific operation ('Extract an end-to-end code stream') on a specific resource ('an architectural Chain') and distinguishes its output scope ('targeted AST symbol slices and interfaces'). It does not explicitly contrast with sibling tools, but the AST-slice and token-saving framing makes its purpose reasonably distinct.
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 when to use the tool: when you need an end-to-end code stream along a Chain and want to avoid full file reads, as shown by the 'saving ~90% tokens' comparison. However, it does not explicitly state conditions, prerequisites, or when to prefer a sibling tool, so some inference is required.
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 provided, the description carries the behavioral disclosure burden. It adds useful context by saying results are limited to relevant details and recent History, and it provides a domain invariant: 'Decision bodies are never Canvas nodes.' However, it never states whether the operation is read-only, what the response structure is, or what side effects, if any, 'open' may have.
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 no filler. The supported entity types are front-loaded, and the second sentence adds a meaningful boundary condition rather than repeating the schema. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no annotations, no output schema, and several sibling tools, this description is too thin for fully confident invocation. It leaves locale, id semantics, historyLimit bounds, includeStructured behavior, output shape, and sibling differentiation unexplained. It is adequate for a first guess but not complete.
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 0%, so the description must compensate. It does partially: the entity list mirrors the type enum, 'project-scoped' aligns with projectRoot, 'recent History' aligns with historyLimit, and 'relevant details' loosely suggests includeStructured. Yet id and locale are completely unaddressed, and the prose mappings are imprecise rather than explicit parameter documentation.
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 states a clear action ('Open') and enumerates the exact resource types: Block, Chain, Link, Plan, or project-scoped Decision. It also previews what the call returns ('only relevant details and recent History'), making the tool's core purpose unambiguous. It does not explicitly contrast with sibling tools like decision_open, but the enumerated scope is still clear.
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?
There is no explicit guidance about when to use entity_open versus alternatives such as decision_open, graph_search, or context_for_task. The project-scoped qualifier and 'only relevant details' hint at a focused retrieval use case, but no when-to-use or when-not-to-use conditions are stated.
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 provided, the description carries the transparency burden. It discloses the key trait of being read-only and indicates incremental behavior since a sequence, but omits pagination behavior, ordering guarantees, handling of unknown/stale sequences, and response shape.
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 tight sentences with no filler; the read-only nature and intended use are front-loaded. Every phrase contributes to orientation or usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with no output schema and no annotations, this is too thin: an agent cannot determine what values to pass for projectRoot or includeStructured, or what the response contains. The description provides motivation but not enough operational detail for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has four parameters and zero description coverage, and the description only hints at the sequence concept and loosely implies limiting via 'compact read-back.' projectRoot and includeStructured remain entirely unexplained, so the description does not compensate for the schema gap.
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 states a specific read-only operation over graph/checkpoint mutations anchored to a known change sequence. The 'read only' qualifier and incremental-change framing distinguish it from mutation siblings like graph_mutate and graph_patch, though it does not explicitly name a sibling.
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?
It explicitly recommends the tool for live synchronization and compact read-back, and contrasts it with reloading the project. It does not list when-not cases or alternative sibling tools, but the intended use context is clear.
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 provided, the description carries the full burden of behavioral disclosure. It conveys that the tool is a read-oriented operation ('Get'), produces Markdown, is budgeted, and involves refs that can be selectively expanded. However, it does not disclose side-effect constraints, permissions, or what happens when the budget is exceeded.
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 remarkably concise: two sentences, no filler, purpose first, and a targeted usage rule second. It is easy to parse and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, and no output schema, this description is too thin to fully support invocation. It is adequate for selecting the tool, but it omits parameter semantics, output expectations, and important behavioral details needed for a reliable call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds very little parameter-level meaning. It only hints at 'focusRefs' via 'selected refs' and 'maxChars' via 'budgeted.' It does not explain locale, projectRoot, includeStructured, or how the parameters interact.
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 a specific action and resource: 'Get a budgeted Markdown context pack for the current development task.' It adds a useful lifecycle cue with 'Use at task start.' It does not explicitly distinguish itself from sibling tools like plan_context, but the task-focused scope and 'expand only selected refs' make the purpose understandable.
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 explicit timing guidance ('Use at task start') and a specific usage constraint ('expand only selected refs'). This is clear context for when to invoke the tool, though it does not mention alternative tools or conditions when the tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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. It states no mutation/destructive behavior, but it doesn't mention whether the tool filters by authenticated user/workspace, whether the list is sorted, whether 'unassignedOnly' semantics overlap with standalone inclusion, or what pagination/limit behavior applies. The description adds the standalone/non-referenced inclusion nuance, but leaves significant behavioral gaps.
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 sentences that front-load the main purpose and filter dimensions, then give a use-case recommendation. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A list tool with 10 params, no annotations, no output schema, and no parameter documentation in the description. The returned shape of checkpoints is unknown; the inclusion condition is partially disclosed but not fully (how 'unassignedOnly' interacts, whether limit applies to the entire set, whether locale/ projectRoot are required for any filtering). Incomplete for safe agent 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 coverage is 0%, so the description must compensate. It gives a partial map by naming filter categories (status, target, Plan, ChainScope) that correspond to several parameters (status, targetId/targetType, planId, chainScopeId), but it omits other params like limit, locale, projectRoot, unassignedOnly, and includeStructured. The structure is simple (all optional scalars), but with 10 params and zero schema descriptions, the description should add more.
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 it lists checkpoints with multiple filter dimensions (status, target, Plan, ChainScope) and adds a key differentiator: it includes standalone checkpoints not referenced by any Plan. This distinguishes it from other checkpoint/list tools and gives the agent a specific verb and resource.
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 clear context on when to use it ('compact verification inbox instead of opening every entity') and implies it's a read/list tool. It doesn't explicitly name alternatives among siblings, but the use-case guidance is enough to route selection.
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 transparency burden and does well: it discloses that the server expands the patch into an atomic ChangeSet, preserves omitted fields, and can create a Block checkpoint. This gives useful behavioral traits beyond the schema, though it omits permissions, reversibility, and return behavior.
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?
Two sentences with no fluff; the core action is front-loaded. The second sentence is a bit dense with three behavioral clauses, but it is still economical for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with 9 parameters, no output schema, and no annotations. The description explains the patch concept and atomicity but omits the meaning of most parameters, does not describe what the server returns, and leaves the checkpoint=auto mechanism unclear. An agent would need much more guidance to invoke this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 parameters, so the description must compensate. It adds some meaning by describing the patch format as compact mdflow/1 Markdown-like and mentioning checkpoint=auto, but it does not explain task, actor, planId, reason, gitHead, projectRoot, chainScopeId, or includeStructured, leaving most parameters ambiguous.
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?
States a specific action ('Apply') and a resource ('compact mdflow/1 Markdown-like patch'), and connects it to graph_mutate via the shared atomic ChangeSet. This clearly distinguishes it from the sibling tool and tells an agent what the tool fundamentally does.
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 relationship to graph_mutate is implied by saying it expands into the same atomic ChangeSet used by graph_mutate, but the description never explicitly says 'use this instead of graph_mutate when you have a compact patch' or lists exclusion conditions. The usage context is inferable, not stated.
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 itself carries the behavioral burden and does so via the verb 'Read,' which signals non-mutation. It adds concrete behavioral context by describing the output shape (ChainScopes, inline changes, checkpoint gates, source refs) and compactness, though it does not discuss permissions or truncation 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the first enumerating the document contents in a dense list and the second giving the operational context. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output composition is well described and the primary use case is stated, which covers much of what an agent needs for a read tool. However, without an output schema or parameter explanations, the agent must infer how maxChars, locale, projectRoot, and includeStructured alter the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not explain locale, maxChars, projectRoot, or includeStructured effects. It only implies the plan id through 'Read one Plan'; the remaining four parameters are left to inference.
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 names a specific action ('Read one Plan') and a concrete deliverable ('compact hierarchical development document') with its contents enumerated. It stops short of naming a sibling read tool, so it doesn't fully differentiate from tools like context_for_task, but the 'primary read before implementing' phrasing anchors its role.
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?
'This is the primary read before implementing a Plan' is an explicit when-to-use instruction. It does not list exclusions or alternatives, so it misses the top anchor, but the timing/context is clear.
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 behavioral burden. It signals a read-side operation ('Read'), states output is 'compact,' and discloses the key performance trait 'without loading entity bodies'; it does not detail errors or permissions, but for a read-only mapping tool these are not major gaps.
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?
A single sentence front-loads the action and resource, then packs every listed content category and the no-body-loading constraint without filler. Each clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no output schema, the description does not cover parameter semantics or usage context. It does list the returned project-map sections and a key behavioral constraint, so it is minimally viable but leaves the agent to infer how to set arguments and what the response structure will be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain locale, projectRoot, or includeStructured. Only the property names and types provide any semantics, so an agent cannot learn default behaviors or acceptable values beyond the bare 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?
Opens with the verb 'Read' and a specific resource, 'compact project map,' and enumerates the distinct content sections (architecture coverage, ordered Plans, Chain paths, unplanned Blocks, checkpoint-free Blocks, missing required checkpoints), separating it from write/registry/graph tools in the sibling list.
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 when-to-use guidance, exclusions, or alternative tools are given. The only contextual hint, 'without loading entity bodies,' implies lightweight inspection but does not tell an agent when to prefer project_map over siblings like graph_search or plan_context.
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 behavioral burden. It discloses key behaviors: a new reverse ChangeSet is created, original history is preserved, and stale or unsupported changes are rejected rather than partially reverted. This goes beyond the tool name, though it omits details like permissions or 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 sentences deliver the core purpose, safety properties, and rejection behavior with no filler. The most important constraint is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a concise behavioral summary, the tool has 9 parameters and no output schema; the description does not explain what each parameter does, what the successful result looks like, or what inputs are required beyond changeSetId. This is insufficient for reliable invocation of a 9-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning for any of the 9 parameters. Required changeSetId is obvious from the schema, but parameters like task, actor, planId, reason, gitHead, projectRoot, chainScopeId, and includeStructured are entirely unexplained, leaving the agent without guidance.
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 states a specific action ('Create a new reverse ChangeSet') on a specific resource, clearly distinguishing it from sibling tools like graph_mutate or block_code_mutate. The constraint 'update-only ChangeSet' further clarifies 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 identifies the intended use case: reverting a 'safe, fully reversible update-only ChangeSet.' It clearly implies when this tool is appropriate, though it does not explicitly name alternatives or state when not to use it.
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 provided, the description carries the full burden of behavioral disclosure. It explains the operation creates missing atomic Block checkpoints, direct Block PlanChanges, dependency-ordered parallel steps, Chain integration gates, and a final Plan acceptance gate, all in one transaction. This transparently reveals the scope and side effects of the operation, though it does not discuss permissions or reversibility.
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 sentences, front-loaded with the primary action in the first sentence and structured elaboration in the second. Every clause adds meaningful detail without redundancy, 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.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description excels at conveying the operation's purpose and effects, it is incomplete for actual invocation. The tool has 9 parameters, no output schema, and no annotations, yet the description provides zero parameter semantics, no return-value expectations, and no guidance on required versus optional inputs. An agent cannot reliably call this tool correctly based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions none of the 9 parameters. The schema provides only types and defaults, with no descriptions, so the agent is left without any guidance on how to use id, goal, actor, title, reason, gitHead, projectRoot, includeStructured, or requiredEvidenceLevel. This is a critical gap for a tool with this many parameters.
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 opens with a specific verb and resource: 'Generate one Foundation Plan from every non-deprecated unimplemented Block.' It further differentiates itself from the sibling create_block by stating what this tool creates that the plain architecture-only tool does not. This makes the tool's 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 clearly states this is an explicit implementation/verification Plan operation and contrasts it with 'plain architecture-only create_block does not.' This gives an agent a good sense of when to prefer this tool over create_block, though it does not enumerate other alternatives or explicit exclusion conditions.
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 behavioral disclosure burden, and it reveals important traits: atomicity, Decision scoping that never enters Block/Chain/Plan coverage, the distinction between architecture-only create_block and verification-oriented create_checkpoint, and the need for expectedRevision on updates. It does not cover error behavior, permissions, or reversibility, but what it does disclose is meaningful and non-obvious.
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 dense but not bloated, with the core atomic create/patch purpose stated first and critical distinctions front-loaded. Each sentence adds useful information, though the entity list is long and could overwhelm a quick scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 9 parameters, 27 possible action types, no output schema, and no annotations. The description provides essential high-level guidance but does not explain required fields per action, how operations should be structured, what reason means, what projectRoot and chainScopeId refer to, or what the response contains. An agent would likely struggle to construct a correct call beyond the simplest create_block case.
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 0%, so the description must compensate for the sparse schema, and it partially does by listing allowed link kinds and explaining expectedRevision for updates. However, many parameters such as reason, projectRoot, chainScopeId, task, actor, and the structure of operation fields are left unexplained, leaving significant gaps.
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 uses a specific verb ('create or patch') and clearly enumerates the affected resource types: Blocks, Decisions, Links, Chain paths, Plans, Checkpoints, Background scopes, Decision scopes, and source refs. It also clarifies a key semantic boundary ('Decisions are not Canvas Blocks'), though it does not explicitly distinguish graph_mutate from the sibling graph_patch.
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 concrete when-to-use guidance for sub-operations, notably directing agents to use create_checkpoint when a requirement, Plan, Chain gate, or verification request makes a check necessary, while plain create_block only records architecture. It also advises keeping calls small and providing expectedRevision for updates, though it does not discuss when to prefer graph_mutate over graph_patch.
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?
With no annotations provided, the description carries the full burden and does so well. It discloses atomicity, targeted replacement, automated verification, terminal log sanitization, and automatic rollback on test failure, giving the agent a clear behavioral model beyond the 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?
A single, dense sentence front-loads the core purpose and then adds key behavioral qualifiers without waste. Every clause contributes meaningful information, making this appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The high-level behavior is clear, but the tool has six parameters, no output schema, and no annotations, and the description omits parameter semantics, return behavior, and prerequisites. An agent would likely need additional context to invoke this correctly, especially for includeStructured and verifyCommand.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain most parameters. While blockId, symbol, and newCode are inferable from the prose, verifyCommand, includeStructured, and projectRoot lack meaningful explanation, leaving the agent to guess at their formatting and purpose.
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 identifies the specific action (atomically mutate), the resource (a specific AST symbol implementation bound to an architecture Block), and the scope (only the targeted symbol body). This distinguishes it well from sibling tools like graph_mutate or change_set_revert.
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: it is for mutating a specific symbol within a Block when automated verification and rollback are desired. However, it does not explicitly state when to prefer this over alternatives or when not to use it, leaving some inference to the agent.
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 provided, the description carries the burden of behavioral disclosure. It discloses the return contents and explicitly states a behavioral boundary ('never projects it onto Canvas'). The verb 'Open' implies a read-like operation, but the description does not explicitly guarantee no side effects or mention auth/permission requirements, so it is not a perfect disclosure.
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 tight sentences with no filler. It front-loads the core action and resource, then packs the return fields and a key behavioral caveat into a compact, readable structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, no annotations, 0% schema description coverage, and five parameters, the description remains brief. It gives the return field names but omits parameter semantics, usage conditions, error behavior, and return structure details, leaving an agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate, but it barely does. Terms like 'project-scoped' and 'compact History' loosely hint at projectRoot and historyLimit, but nothing explains locale, includeStructured, or the exact meaning and interaction of the parameters.
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 ('Open') and a clear resource ('one project-scoped Decision'), and it distinguishes itself from siblings such as decision_list by focusing on a single Decision and returning a defined set of fields. This makes the tool's 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 clearly implies when to use it: when you need a single Decision's rationale, alternatives, consequences, scope, supersession, and history. It also names a boundary ('never projects it onto Canvas'), which helps the agent avoid expecting Canvas behavior, though it does not explicitly name sibling alternatives or state when not to use it.
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 full burden and explicitly states the side effect scope ('creates only .mdflow/project.json') and idempotency. It does not mention failure modes, but the disclosed behavior is precise and helps an agent anticipate the tool's mutation footprint.
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 front-load the core operation, then add one precise behavioral detail; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient to determine how to populate the non-required fields or what includeStructured controls. It covers the basic projectRoot use case but not the full call surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no property descriptions and the description adds no meaning for id, name, or includeStructured; only 'existing directory' hints at projectRoot. This leaves the optional parameters semantically opaque.
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 concrete verb ('Register') plus a specific resource ('an existing directory as an mdflow project') and names the exact output artifact, .mdflow/project.json. This clearly differentiates it from sibling tools by scope and outcome.
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?
It conveys when to use it: for an existing directory that should become an mdflow project, and the idempotence note tells the agent it can be re-run when the descriptor already exists. It does not name alternatives or explicit when-not-to-use conditions, so not a 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains key transformative behaviors: stripping ANSI noise, collapsing routine compiler stdout, and isolating failure stack traces. It does not disclose output format or side-effect details, but the core behavior is transparent enough for an agent to predict the tool's effect.
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, tightly worded sentence that front-loads the main action and then enumerates concrete transformations. Every phrase adds value, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the general purpose and key transformations, but it omits important context such as how parameter values alter behavior, whether output is returned as plain text or structured data, and what 'collapse' means in practice. Given no output schema and no annotations, the description is adequate but leaves meaningful gaps for an agent deciding how to invoke it with the right parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter documentation, but it does not explicitly explain exitCode, maxChars, or includeStructured. It only indirectly references rawOutput through phrases like 'terminal command outputs' and token flooding, leaving most parameter meaning to inference from names.
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 ('Sanitize') and resource ('build, test, or terminal command outputs'), clearly stating the tool's function. It also distinguishes itself from the sibling tools, which are about project/decision/code graph operations rather than log processing.
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 on when to use the tool: for sanitizing command, build, or test outputs before they enter the context window. It does not explicitly state when not to use it or name alternatives, but the sibling list contains no competing log-handling tools, so the usage context is reasonably clear.
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 behavioral disclosure burden. It clearly states that bodies, rationale, alternatives, and consequences are omitted, and that this is a read-oriented index tool. This is meaningful behavioral transparency for a list 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?
Two front-loaded sentences deliver the core purpose, the key behavioral limitation, and the alternative routing. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and alternatives well, but with no output schema, no annotations, and three undocumented parameters, the agent is left guessing about output shape and the effect of includeStructured. It is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain locale or includeStructured. The phrase 'project-scoped' hints at projectRoot, but the boolean parameter includeStructured is left entirely ambiguous, so the agent receives little guidance for correct invocation.
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 'Read' and identifies the resource as the 'compact project-scoped Decision index.' It also distinguishes itself from decision_open and entity_open by explicitly stating what is omitted and how to get full records.
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?
The description explicitly names alternatives and the condition for choosing them: 'use decision_open or entity_open(type=decision) for one record.' This tells the agent when to use this tool and when not to.
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/yubinbin32-ops/Mdflow-Canvas'
If you have feedback or need assistance with the MCP directory API, please join our Discord server