You can add custom tools to Claude Code through two mechanisms: the plugin system (for tools bundled directly into Claude Code’s runtime) and MCP servers (for tools exposed by external processes).Documentation Index
Fetch the complete documentation index at: https://mintlify.com/killlowkey/claude-code/llms.txt
Use this file to discover all available pages before exploring further.
Adding tools via MCP (recommended)
The easiest way to give Claude new capabilities is through an MCP server. MCP tools appear in Claude’s tool list just like built-in tools. Advantages:- No changes to Claude Code itself
- Works with any language (Node.js, Python, Go, Rust, etc.)
- Hot-reloadable without restarting Claude Code
- Shareable across teams via a central MCP server
Adding tools via plugins
Plugins can register tools that run inside the Claude Code process. This is useful for tools that need deep integration with Claude Code’s internals. Create a plugin in~/.claude/plugins/my-plugin/:
Tool input schemas
All tools — built-in, plugin, and MCP — use JSON Schema for their input definitions. Claude uses these schemas to generate valid inputs. Schema best practices:- Write clear
descriptionfields — Claude uses them to decide when to use the tool - Use
requiredto mark mandatory fields - Use
enumto constrain allowed values - Add
defaultvalues where appropriate
AskUserQuestionTool
Claude Code also has anAskUserQuestionTool for tools that need to interactively ask the user for input mid-execution. Custom tools can trigger this pattern by returning a question response that Claude translates into a user prompt.