Skip to content

Tool naming

Use the MCP server name as a namespace and the tool name as a short verb. AI clients commonly combine both names when exposing tools to a model.

ServerToolModel-facing name
shellrunshell_run
filesreadfiles_read
fileswritefiles_write
fileseditfiles_edit
filespatchfiles_patch
searchglobsearch_glob
searchgrepsearch_grep
webfetchweb_fetch
websearchweb_search
tasksruntasks_run
skillslistskills_list
skillsgetskills_get

Avoid repeating the noun at both levels (shell + shellshell_shell). Group related tools in one server when they share a natural namespace.

Good tool names are:

  • Short: read, search, format, deploy
  • Action-oriented: describe what happens when called
  • Stable: do not encode versions or implementation details
  • Distinct: every --name in one server process must be unique

Tool names may contain 1–128 ASCII letters, digits, ., _, or -.

Descriptions matter

The model sees the tool description. State what the tool does, when to use it, and any important constraint:

text
Search Rust source files with a regular expression. Returns path, line number,
and matching text. Use this before reading a full file.

Avoid descriptions such as “run command” that do not help the model select the right tool.

The repository's mcp.example.json follows this convention and is exercised by the deterministic example test suite.

Released under the MIT License.