MCP Selection Lab
Server Details
Benchmark MCP tool selection with metadata-only routing, collision, abstention, and holdout checks.
- Status
- Healthy
- Uptime
- 97.9% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool serves a distinct function: scanning new targets, retrieving existing reports, and providing service info. No overlap in purpose, and descriptions clearly differentiate them.
Two tools follow the verb_noun pattern (get_, scan_), but the third is a noun-only name (selection_lab_info), creating a minor inconsistency. Still, all are snake_case and readable.
With only 3 tools, the server is tightly scoped to its core purpose: scanning and retrieving reports. Each tool is necessary and no redundant tools exist.
The server covers the full lifecycle: scan to create a report, retrieve it by id, and get service information. There are no obvious missing operations for this narrow domain.
Available Tools
3 toolsget_selection_reportARead-onlyIdempotentInspect
Read and agent-enrich an existing public scan report by id; no new target request or model call.
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the behavioral trait 'no new target request or model call,' which is not implied by the annotations and is useful context. It does not contradict annotations, and the 'agent-enrich' wording does not imply modification of the report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that leads with the action, includes the resource and a key constraint, and has zero filler. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values. The tool is simple (one parameter) and the description covers its core purpose and exclusions. Annotations cover safety traits. It is complete for a read-only, idempotent operation on a public resource, though it does not mention error conditions or prerequisites beyond what is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 explains that report_id is the id of an existing public scan report, which adds meaning beyond the schema's bare 'report_id' field. However, it does not elaborate on format, validation, or error behavior, so it only partially compensates for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Read and agent-enrich), the resource (an existing public scan report), and the identifier (by id). It also explicitly states what it does not do (no new target request or model call), which helps distinguish it from potential siblings. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for existing public scan reports only, and explicitly excludes new target requests or model calls. It does not name alternative tools or provide explicit when-not conditions, but the exclusion is a strong signal. Sibling tools are not compared, so it lacks full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_mcp_metadataAInspect
Create a free public report of MCP tool-description routing collisions.
Reads discovery metadata (initialize/tools/list) only; never calls target business
tools or spends funds. Use a public HTTP(S) URL without credentials, query or fragment.
Results use at most 12 tools and 24 generated cases, not a real-model evaluation.
The returned report is enriched with agent_plan candidate description-only edits and
a machine-readable rerun instruction. Candidate edits are not untouched-holdout proof.
Reports persist and are public by link. For an existing report use get_selection_report.
Set internal_test=true for owner/CI validation so it is excluded from public scans.
source is a self-reported referral bucket, not identity verification.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | other | |
| mcp_url | Yes | ||
| internal_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses that it never calls target business tools or spends funds, that reports persist and are public by link, and that internal_test excludes scans from public view. This adds substantial context beyond the readOnlyHint=false annotation, clarifying the actual 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then systematically covers constraints, output, and caveats. Each sentence adds value without redundancy; the length is appropriate given the tool's side effects and multiple usage nuances.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers purpose, usage constraints, behavioral side effects, output highlights, and the alternative tool. Since an output schema exists, the description sufficiently equips an agent to call it correctly without needing more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description compensates by explaining each parameter: mcp_url must be a public URL without credentials/query/fragment, internal_test=true is for owner/CI validation and excludes from public scans, and source is a self-reported referral bucket. This fully covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a free public report') and the resource ('MCP tool-description routing collisions'), and immediately clarifies the scope by saying it only reads discovery metadata. It also differentiates from the sibling tool by pointing to get_selection_report for existing reports, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use an alternative: 'For an existing report use get_selection_report.' It also provides specific usage constraints for the mcp_url parameter ('public HTTP(S) URL without credentials, query or fragment') and for internal_test ('owner/CI validation ... excluded from public scans'), giving clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection_lab_infoARead-onlyIdempotentInspect
Get free service capabilities, limits, privacy and connection details; does not scan a target.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe read-only operation. The description adds behavioral context by specifying 'does not scan a target', which clarifies it performs no target interaction. This goes beyond the annotations by describing what the tool does not do, adding value without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the main purpose and includes a key distinction ('does not scan a target'). Every word contributes to clarity, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and an output schema exists, so return format is covered. The description explains the core functionality and a key boundary (no scanning). However, it does not explicitly mention sibling tools or provide guidance on when to choose this over get_selection_report or scan_mcp_metadata, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. With no parameters to document, the description does not need to provide parameter details. The baseline for zero parameters is 4, and the description adds no unnecessary param info, so this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly states the resource: 'free service capabilities, limits, privacy and connection details'. It also distinguishes itself from sibling tools by explicitly saying 'does not scan a target', which differentiates it from scan_mcp_metadata. This gives the agent a precise understanding of the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 service information, not scanning. The phrase 'does not scan a target' provides a negative condition but does not explicitly name alternative tools or state when to use them. It offers clear context but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_selection_report - First observed
scan_mcp_metadata - First observed
selection_lab_info
Related MCP Connectors
Closed-source remote MCP: model benchmarks, costs, HN signals, tech registry.
Reproducible benchmarks and reliability evidence for agent tools.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Benchmark-first release surface with a read-only MCP endpoint and operator CLI.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables measuring and reporting which tool a model selects from an MCP server's tool list, without ever executing tools. Provides inspection, trial runs, and confusion analysis to benchmark routing accuracy.MIT
- AlicenseAqualityAmaintenanceMCP server exposing a "run" tool that benchmarks agent-memory backends and returns a reproducible JSON report.117 PyPI2Apache 2.0
- AlicenseAqualityAmaintenanceMCP server that scores tool descriptions, estimates token costs, simulates agent tool selection, and generates reliability reports to help AI agents choose the right tools and reduce wasted tokens.54 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables measuring how the same MCP tools implemented in FastMCP, the official MCP Python SDK, and fastapi-mcp differ in token overhead, schema fidelity, and call latency.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.