warrioraashuu-codemaster
v1.1.0
Published
MCP server for exploring the Claude Code source code — rebranded and published by warrioraashuu. STDIO, HTTP, and SSE transports.
Readme
warrioraashuu 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 buildRun Locally (STDIO)
npm start
# or with custom source path:
CLAUDE_CODE_SRC_ROOT=/path/to/src npm startRun 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/healthWith Authentication
MCP_API_KEY=your-secret-token npm run start:http
# Clients must include: Authorization: Bearer your-secret-tokenConfiguration
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 upVercel
npx vercelSet 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-mcpWorks 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 publishRegistry name: io.github.codeaashu/claude-code-explorer-mcp
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 serverArchitecture
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