Skill whose name contains "mcp" shadows/overrides the built-in /mcp slash command

Open 💬 0 comments Opened Jul 8, 2026 by bobmatnyc

Summary

A user-defined or bundled Skill whose name contains the token mcp (e.g., toolchains-ai-protocols-mcp) overrides Claude Code's built-in /mcp slash command, making /mcp inaccessible or routing to the skill instead of the built-in MCP server management command.

Expected Behavior

Built-in slash commands like /mcp should be reserved and take precedence over (or not be shadowable by) user/bundled skill names. At minimum, Claude Code should warn on a colliding skill name at load time.

Actual Behavior

The skill silently shadows /mcp; when a user tries to invoke /mcp, the skill is invoked instead of the built-in command. The only known workaround is renaming the skill to remove the mcp token.

Reproduction Steps

  1. Create or deploy a skill whose registered name contains mcp — for example:
  • .claude/skills/toolchains-ai-protocols-mcp/SKILL.md
  • .claude/skills/mcp-vector-search/SKILL.md
  1. Start Claude Code CLI or reload skills
  2. Try to run /mcp (the built-in MCP server management command)
  3. Observed: The skill is invoked instead of the built-in command, or the native command fails silently

Environment

  • Claude Code CLI; observed with claude-mpm project's bundled skills
  • Affects any platform (macOS, Linux, Windows)
  • Occurs when skills are deployed to .claude/skills/ or bundled via plugin manifests

Workaround

Rename the skill so its name does not contain the mcp token — for example, mcp-vector-searchvector-search.

Related

  • Closes #44199 (prior report, closed as stale)
  • Broader issue: skill names that shadow reserved commands (/help, /clear, /exit, /doctor, /review, etc.)

Suggested Resolution

  1. Option A - Precedence: Implement strict precedence where native slash commands always win over skill names
  2. Option B - Validation: Warn or reject skills at load time whose names contain reserved tokens
  3. Option C - Namespacing: Require explicit namespace syntax for skills (e.g., /skill:name vs. /name)

The most user-friendly approach is Option A combined with Option B for early warning.

View original on GitHub ↗