Tool names follow verb_noun or verb-noun convention with no collisions
Why it matters
Tool names are the primary routing signal for any AI client selecting between dozens of tools from multiple connected MCP servers. A name like run or do gives the model nothing to distinguish your tool from a similarly-named one in another server. Mixed conventions — some snake_case, some camelCase, some kebab-case — force the model to pattern-match without a consistent rule, increasing mistaken invocations. When tool selection fails silently, the correct action is never taken and the user sees wrong or missing output with no explanation.
Severity rationale
High because inconsistent or vague names cause the AI to select the wrong tool, especially in multi-server sessions where name collisions produce unpredictable routing behavior.
Remediation
Rename every tool to verb_noun snake_case with a descriptive noun that scopes the action. No single-word names.
// src/tools/index.ts
// Before: 'run', 'createIssue', 'do-deploy'
// After:
server.tool('run_command', ...)
server.tool('create_github_issue', ...)
server.tool('deploy_to_vercel', ...)
If two tools have the same verb, make the noun more specific: read_file vs. read_database_row. Confirm no duplicate names by listing all registered tools at startup.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the MCP Server Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · mcp-spec-tool-naming — MCP Specification — Tool naming conventions
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mcp-server·automated