A sub-agent only knows what its agent file tells it. List jCodeMunch in the agent's tools: line and say when to use it, and the agent can look up a symbol, its callers and what a change would break.
If your users install jCodeMunch themselves:
tools: Read, Grep, Glob, mcp__jcodemunch__*
The wildcard gets every tool the user's install publishes, whether that's the six-tool front door or the full set, and it keeps working when tools are added. These names work from your plugin's agents too.
Want to limit the agent to specific tools? The names depend on which surface the user's install publishes. On the six-tool front door, list mcp__jcodemunch__order, mcp__jcodemunch__menu, mcp__jcodemunch__route and mcp__jcodemunch__jcodemunch_guide. On the full set, order, menu and route aren't published, so name the tools themselves, such as mcp__jcodemunch__search_symbols, mcp__jcodemunch__get_symbol_source and mcp__jcodemunch__find_references. A name the install doesn't publish is dropped with no error, and the agent starts without that tool. The wildcard works on both, so it's the safer choice. Run jcodemunch-mcp surface to see what an install publishes.
If your plugin declares jCodeMunch in its own .mcp.json, Claude Code names each tool after your plugin and the server key you gave it: mcp__plugin_<your-plugin>_<server-key>__<tool>. Characters other than letters, digits, _ and - become _. Use that prefix in your agent's tools: line and in hook matchers; the bare server key won't match. The wildcard works with it too: tools: Read, Grep, Glob, mcp__plugin_<your-plugin>_<server-key>__*. Explicit names follow the same surface rule as above. In a headless run (claude -p), an agent started before the server finishes connecting can start without jCodeMunch's tools; interactive sessions normally connect first.
Keep Read, Grep and Glob in the list. The agent needs them to open the file it reports on, and an agent whose list resolves to no tools at all usually fails to launch.
Save this as agents/code-explorer.md in your plugin:
---
name: code-explorer
description: Finds where code lives, who calls it and what a change would break, using the jCodeMunch index before reading files. Use proactively when a task needs code located or traced.
tools: Read, Grep, Glob, mcp__jcodemunch__*
---
If jcodemunch_guide is available, call it once at the start to learn the actions.
If search_symbols and get_symbol_source are listed, call them directly. Otherwise use route with your question, or menu to find an action and order to run it.
Fetch only the symbols you need. Read a whole file only when you are about to edit it or the index has no answer.
Report file paths and line numbers.
Remove "Use proactively..." from the description if you only want the agent to run when it's asked for by name.
jCodeMunch is under the jCodeMunch-MCP Dual-Use License. It's free for personal and other non-commercial use, and work use needs a commercial license, paid once (the terms).
Naming jCodeMunch in your plugin's .mcp.json, or only naming its tools, isn't redistribution. Each user's machine installs jCodeMunch from PyPI, and each user's own license terms apply: people using it for work need their own license.
Bundling jCodeMunch in a product you distribute? Write to j@gravelle.us for a redistribution license.