docs(mcp): clarify ambiguous loopover-mcp stdio tool descriptions for LLM selection - #6270
Conversation
… LLM selection
An MCP client selects a tool almost entirely from its registered description,
so vague or jargon-heavy text causes wrong-tool selection or non-discovery.
Audit all 42 stdio tool descriptions in STDIO_TOOL_DESCRIPTORS and rewrite the
7 that were too short to disambiguate, used internal jargon ("intelligence
bundle", "decision pack", "base-agent run") without explanation, or omitted a
required parameter (agent_get_run's runId). Each rewrite names the tool's real
inputs, verified against its inputSchema, and stays inside the public-safe
boundary.
Extend mcp-discovery to assert tool descriptions are non-empty, unique enough
to disambiguate, and free of forbidden public terms -- the safety property
already enforced for resources and prompts.
Closes JSONbored#6245
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6270 +/- ##
=======================================
Coverage 95.35% 95.35%
=======================================
Files 598 598
Lines 47127 47127
Branches 14994 14994
=======================================
Hits 44940 44940
Misses 1463 1463
Partials 724 724
Flags with carried forward coverage won't be shown. Click here to find out more. |
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-16 00:04:01 UTC
Review summary Nits — 5 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionPartially addressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
What
Audit of the
loopover-mcpstdio tool descriptions (packages/loopover-mcp/bin/loopover-mcp.js,STDIO_TOOL_DESCRIPTORS) for LLM tool-selectability, per #6245. An MCP/agent client picks a toolalmost entirely from its registered description, so a vague, jargon-heavy, or parameter-silent
description leads to the wrong tool being called — or a fitting tool never being discovered.
I reviewed all 42 stdio tool descriptions against the issue's three flags and rewrote the 7 that
failed one of them. The rest were already clear enough to disambiguate and left untouched.
Flagged and rewritten
loopover_get_repo_contextowner/repoinputsloopover_get_registry_changesloopover_get_decision_packloginis the contributor's usernameloopover_explain_repo_decisionget_decision_pack; missingowner/repoloopover_agent_plan_next_worklogin+ optional inputsloopover_agent_start_runobjective/actorLogin+ return valueloopover_agent_get_runrunIdnot mentioned — an agent can't construct a valid callrunIdand points toloopover_agent_start_runas its sourceEvery new description names its real input parameters (verified against each tool's
inputSchema)and stays inside the existing public-safe boundary — no scores, rewards, or wallet/key terms.
Scope
This covers the
loopover-mcpstdio package. The hostedsrc/mcp/server.tssurface is the siblingtool set and is a natural separate PR, per the issue's "split into a few PRs by tool category"
guidance.
Tests
No behavior change (descriptions are metadata). Existing tool-registration tests don't hardcode the
old text, so none break. Added two invariant checks to
test/unit/mcp-discovery.test.tsthat listthe live tools over the MCP protocol and assert every description is non-empty and unique enough to
disambiguate (no two tools share identical wording) and that no tool description leaks a forbidden
public term — the same safety property already enforced for resources and prompts, now extended to
tools.
Verified locally:
typecheck, targetedvitest(mcp-discovery,mcp-cli-tools,mcp-cli-basics,mcp-tool-rename-aliases,mcp-cli-packets),build:mcp,test:mcp-pack, and thecommand-reference/docs/manifest drift checks all pass.
Closes #6245