Skip to main content
Glama

Report a Data or Tool Gap

report_gap

Report when this MCP server couldn't fully answer a question. Not a query tool — calling this writes a feedback record.

Call this proactively — without being asked — whenever you hit one of:

  • missing_field: a field you expected on a module wasn't present (e.g. "I needed the LFO frequency range on Pamela's New Workout and parameter_zones didn't have it").

  • missing_module: a module the user asked about isn't in the corpus yet.

  • tool_confusion: a tool's behavior surprised you (wrong shape, missing filter, ambiguous enum value, unclear description).

  • empty_result: a reasonable query came back empty and you suspect the corpus is incomplete rather than the query being wrong.

  • other: anything else worth flagging that doesn't fit above.

  • eval_finding: reserved for the eval harness at evals/mcp/. Don't use this as an agent — it's written by harvest.py --push when a rubric catches a behavior the agent didn't self-report (e.g., a model leaking prior knowledge after acknowledging a corpus gap).

Be specific. Vague reports ("data could be better") are useless; actionable reports name the field, module, or tool. Reporting is encouraged — there is no rate limit and no judgment for over-reporting; a noisy log is more useful than a silent one.

Args:

  • kind (required): one of missing_field | missing_module | tool_confusion | empty_result | other (eval_finding is reserved for the eval harness)

  • module_id: module this was about, if any ("/"). For missing_module, use the id the user asked about even if it doesn't exist.

  • tool_name: tool that fell short (or that you'd want to exist).

  • expected (required, ≤200 chars): what you were trying to find or do.

  • observed (required, ≤500 chars): what actually happened.

  • suggestion (≤300 chars): concrete fix you'd propose ("add a release_curve field to parameters", "ingest mutable-instruments/yarns").

Returns: { acknowledged: true, id: number }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
expectedYes
observedYes
module_idNo
tool_nameNo
suggestionNo

TDQS

A5/5.0
Behavior5/5

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

The description reveals that calling the tool writes a feedback record, has no rate limit, and returns { acknowledged: true, id: number }. It also clarifies expectations for report quality (specific vs. vague) and the special reserved status of eval_finding. This adds substantial behavioral detail beyond the annotations (readOnlyHint=false already implies a write, but the description enriches it with consequences and norms). 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/5

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

Despite being long, every sentence serves a purpose. It opens with a one-sentence purpose, then uses bullet points for triggers, an 'Args' section for parameters, and a Returns line. The structure makes it skimmable and highly actionable, with no filler.

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

Completeness5/5

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

For a feedback tool with six parameters, an enum, and no output schema, the description is entirely complete. It covers all trigger types, parameter semantics, return value, and even notes reporting policy (no rate limit, no judgment). An agent has everything needed to invoke it correctly in any edge case.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully compensates by explaining every parameter's meaning and constraints: the kind enum is broken down with concrete examples, module_id format is specified, and expected/observed/suggestion have length limits and purpose clarification. This is far more informative than the bare schema.

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

Purpose5/5

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

The description clearly states the tool's verb+resource: 'Report when this MCP server couldn't fully answer a question' and explicitly distinguishes it as 'Not a query tool — calling this writes a feedback record.' It also details the specific kinds of gaps (missing_field, missing_module, etc.), setting it apart from all sibling query tools.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'Call this proactively — without being asked — whenever you hit one of...' followed by a concrete list of trigger conditions. It also states when not to use it (not a query tool) and even excludes eval_finding for agents, leaving no ambiguity about appropriate usage.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation4/5

Each tool targets a distinct resource/action: get_module(s) for specs, search_modules for filtered queries, resolve_modules for name mapping, find_compatible_with for per-module relations, reachable_pairings/techniques for rack-level analysis. Minor overlap between get_module/get_modules and the relationship tools (find_compatible_with vs reachable_pairings) could cause misselection, but descriptions clarify scope.

Naming Consistency3/5

Mostly verb_noun snake_case (get_, search_, find_, resolve_, visualize_, report_, lookup_), but three tools break the pattern: rack_redundancy, reachable_pairings, reachable_techniques use noun/adjective phrases without a verb. The get_* cluster is consistent but the overall set mixes conventions.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range but justified by the server's broad scope: module specs, search, manuals, relationships, rack analysis, visualization, and feedback. Each tool has a clear role; the count is reasonable for the domain's complexity.

Completeness5/5

The surface covers the full read-only Eurorack knowledge workflow: module lookup (get_module, search_modules, resolve_modules), manual prose (get_manual_chunk, search_manual), concepts (lookup_concept), techniques (search_techniques, find_role_realizations), compatibility (find_compatible_with, reachable_pairings), rack analysis (reachable_techniques, rack_redundancy), visualization, and provenance (get_source). report_gap even enables self-improvement. No obvious missing operations.

Resources