MCP Selection Lab

Benchmark MCP tool selection with metadata-only routing, collision, abstention, and holdout checks.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
63%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~529Tokens (tool definitions)
~819 BTypical response size
Minimal attention impact (0.41% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp-selection-lab": {
      "url": "https://mcp-selection-lab-production.up.railway.app/mcp"
    }
  }
}

Remote endpoints

https://mcp-selection-lab-production.up.railway.app/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢selection_lab_info

Get free service capabilities, limits, privacy and connection details; does not scan a target.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "selection_lab_infoArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "selection_lab_infoDictOutput"
}
🟡scan_mcp_metadata(mcp_url, source, internal_test)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "mcp_url": {
      "maxLength": 2048,
      "minLength": 8,
      "title": "Mcp Url",
      "type": "string"
    },
    "source": {
      "default": "other",
      "maxLength": 32,
      "title": "Source",
      "type": "string"
    },
    "internal_test": {
      "default": false,
      "title": "Internal Test",
      "type": "boolean"
    }
  },
  "required": [
    "mcp_url"
  ],
  "title": "scan_mcp_metadataArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "scan_mcp_metadataDictOutput"
}
🟢get_selection_report(report_id)

Read and agent-enrich an existing public scan report by id; no new target request or model call.

Input Schema

{
  "type": "object",
  "properties": {
    "report_id": {
      "pattern": "^[0-9a-f]{16}$",
      "title": "Report Id",
      "type": "string"
    }
  },
  "required": [
    "report_id"
  ],
  "title": "get_selection_reportArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_selection_reportDictOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools