About Claude Code Explorer MCP
Claude Code Explorer MCP is a standalone MCP server that lets MCP clients browse the source code of the Claude Code CLI. It suits developers who want to study Claude Code's tools, commands and architecture, and it supports STDIO, Streamable HTTP and SSE transports.
Key features
- 01List agent tools and slash commands
- 02Read source of tools and commands
- 03Regex search across the source tree
- 04Architecture overview and directory listing
- 05Prompt templates explaining tools and subsystems
- 06Optional bearer token authentication
Use cases
- 01Studying how a specific Claude Code tool is implemented
- 02Locating code for subsystems such as permission checks
- 03Getting a quick view of Claude Code architecture from an MCP client
MCP support
This project is an MCP server that exposes 8 tools, 3 resources and 5 prompts to MCP clients for exploring the Claude Code source code.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEwarrioraashuu Codemaster — MCP Server
A standalone Model Context Protocol (MCP) server that lets any MCP-compatible client explore the Claude Code source code. Rebranded and published by warrioraashuu. Supports STDIO, Streamable HTTP, and SSE transports.
What It Does
Exposes 8 tools, 3 resources, and 5 prompts for navigating the ~1,900-file, 512K+ line Claude Code codebase. This is the official npm package: warrioraashuu-codemaster.
Transports
| Transport | Endpoint | Best For |
|---|---|---|
| STDIO | node dist/index.js | Claude Desktop, local Claude Code, VS Code |
| Streamable HTTP | POST/GET /mcp | Modern MCP clients, remote hosting |
| Legacy SSE | GET /sse + POST /messages | Older MCP clients |
Tools
| Tool | Description |
|---|---|
list_tools | List all 40+ agent tools (BashTool, FileEditTool, etc.) |
list_commands | List all 50+ slash commands (/commit, /review, etc.) |
get_tool_source | Read a specific tool's implementation |
get_command_source | Read a specific command's implementation |
read_source_file | Read any file from src/ by relative path |
search_source | Regex search across the entire source tree |
list_directory | List contents of any directory under src/ |
get_architecture | Get a full architecture overview |
Resources
| URI | Description |
|---|---|
claude-code://architecture | README / architecture overview |
claude-code://tools | Tool registry (JSON) |
claude-code://commands | Command registry (JSON) |
claude-code://source/{path} | Any source file (template) |
Prompts
| Prompt | Description |
|---|---|
explain_tool | Deep-dive explanation of a specific tool's purpose, schema, permissions, and flow |
explain_command | Explanation of a specific slash command's behavior and implementation |
architecture_overview | Guided tour of the full Claude Code architecture |
how_does_it_work | Explain a feature/subsystem (permissions, MCP, bridge, etc.) |
compare_tools | Side-by-side comparison of two tools |
Setup
cd mcp-server
npm install
npm run build
Run Locally (STDIO)
npm start
# or with custom source path:
CLAUDE_CODE_SRC_ROOT=/path/to/src npm start
Run Locally (HTTP)
npm run start:http
# Streamable HTTP at http://localhost:3000/mcp
# Legacy SSE at http://localhost:3000/sse
# Health check at http://localhost:3000/health
With Authentication
MCP_API_KEY=your-secret-token npm run start:http
# Clients must include: Authorization: Bearer your-secret-token
Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"warrioraashuu-codemaster": {
"command": "node",
"args": ["/absolute/path/to/claude-code/mcp-server/dist/index.js"],
"env": {
"CLAUDE_CODE_SRC_ROOT": "/absolute/path/to/claude-code/src"
}
}
}
}
VS Code (GitHub Copilot)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"claude-code-explorer": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/mcp-server/dist/index.js"],
"env": {
"CLAUDE_CODE_SRC_ROOT": "${workspaceFolder}/src"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"claude-code-explorer": {
"command": "node",
"args": ["/absolute/path/to/claude-code/mcp-server/dist/index.js"],
"env": {
"CLAUDE_CODE_SRC_ROOT": "/absolute/path/to/claude-code/src"
}
}
}
}
Environment Variables
| Variable | Default | Description |
|---|---|---|
CLAUDE_CODE_SRC_ROOT | ../src (relative to dist/) | Path to the Claude Code src/ directory |
PORT | 3000 | HTTP server port (HTTP mode only) |
MCP_API_KEY | (none) | Bearer token for HTTP auth (optional) |
Remote HTTP Client Configuration
For Claude Desktop connecting to a remote server:
{
"mcpServers": {
"claude-code-explorer": {
"url": "https://your-deployment.railway.app/mcp",
"headers": {
"Authorization": "Bearer your-secret-key"
}
}
}
}
Deployment
Railway
- Connect your GitHub repo to Railway
- Railway automatically detects the
mcp-server/Dockerfile - Set environment variables in the Railway dashboard:
MCP_API_KEY— a secret bearer tokenPORTis set automatically by Railway
- Deploy — available at
your-app.railway.app
Or via CLI:
railway init
railway up
Vercel
npx vercel
Set environment variables in the Vercel dashboard:
CLAUDE_CODE_SRC_ROOT— path where src/ files are bundledMCP_API_KEY— bearer token
Note: Vercel functions are stateless with execution time limits (10s hobby / 60s pro). Best for simple tool calls. For persistent SSE streams, use Railway or Docker.
Docker
# From repo root
docker build -f mcp-server/Dockerfile -t claude-code-mcp .
docker run -p 3000:3000 -e MCP_API_KEY=your-secret claude-code-mcp
Works on any Docker host: Fly.io, Render, AWS ECS, Google Cloud Run, etc.
Prompts
The server also exposes prompt templates for guided exploration:
| Prompt | Description |
|---|---|
explain_tool | Deep-dive explanation of a specific tool (input schema, permissions, execution flow) |
explain_command | Explain how a slash command works |
architecture_overview | Guided tour of the entire Claude Code architecture |
how_does_it_work | Explain a feature or subsystem (e.g. "permission system", "MCP client", "query engine") |
compare_tools | Side-by-side comparison of two tools |
Example Usage
Once connected, you can ask your AI assistant things like:
- "List all Claude Code tools"
- "Show me the BashTool implementation"
- "Search for how permissions are checked"
- "What files are in the bridge directory?"
- "Read the QueryEngine.ts file, lines 1-100"
- "How does the MCP client connection work?"
- Use the
explain_toolprompt with "FileEditTool" to get a full breakdown - Use
how_does_it_workwith "bridge" to understand IDE integration
Publishing to MCP Registry
This server is published to the MCP Registry via GitHub Actions. On a tagged release (v*), the workflow:
- Publishes the npm package to npmjs.org
- Authenticates with the MCP Registry using GitHub OIDC
- Publishes the
server.jsonmetadata to the registry
To publish manually:
# Install the MCP Publisher CLI
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
# Authenticate (GitHub OAuth)
./mcp-publisher login github
# Publish
cd mcp-server
../mcp-publisher publish
Registry name: warrioraashuu-codemaster
Development
npm install
npm run dev # Watch mode TypeScript compilation
npm run build # Compile TypeScript to dist/
npm start # Run STDIO server
npm run start:http # Run HTTP server
Architecture
mcp-server/
├── src/
│ ├── server.ts — Shared MCP server (tools, resources, prompts) — transport-agnostic
│ ├── index.ts — STDIO entrypoint (local)
│ └── http.ts — HTTP + SSE entrypoint (remote)
├── api/
│ ├── index.ts — Vercel serverless function
│ └── vercelApp.ts — Express app for Vercel
├── Dockerfile — Docker build (Railway, Fly.io, etc.)
├── railway.json — Railway deployment config
├── package.json
└── tsconfig.json
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.