Configures MCP servers for Claude Code Tool Executor sandbox using tool-executor.config.json. Covers adding/removing servers, TypeScript types, env vars, registry regeneration, and rebuilds.
npx claudepluginhub elb-pr/claudikins-marketplace --plugin claudikins-tool-executorThis skill uses the workspace's default tool permissions.
Configure which MCP servers are available in the Tool Executor sandbox. Serena is mandatory and cannot be removed.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Configure which MCP servers are available in the Tool Executor sandbox. Serena is mandatory and cannot be removed.
tool-executor.config.json → clients.ts loads configs → Sandbox exposes clients
↓
npm run extract → registry/ YAML files
Create tool-executor.config.json in the project root:
{
"$schema": "./tool-executor.config.schema.json",
"servers": [
{
"name": "serena",
"displayName": "Serena",
"command": "uvx",
"args": ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server"]
},
{
"name": "gemini",
"displayName": "Gemini",
"command": "npx",
"args": ["-y", "@rlabs-inc/gemini-mcp"],
"env": {
"GEMINI_API_KEY": "${GEMINI_API_KEY}"
}
}
]
}
tool-executor.config.jsontool-executor.config.js.tool-executorrc.json{
"servers": [
// ... existing servers ...
{
"name": "newServer",
"displayName": "New Server",
"command": "npx",
"args": ["-y", "@example/new-mcp-server"],
"env": {
"API_KEY": "${NEW_SERVER_API_KEY}"
}
}
]
}
Edit src/types.ts to add the client type:
export interface MCPClients {
serena: Client | null;
// ... existing clients ...
newServer: Client | null; // Add this
}
npm run extract
This connects to all configured MCP servers and generates YAML files in registry/.
npm run build
# Restart Claude Code to pick up new MCP server
WARNING: Serena cannot be removed - it powers both search_tools and is available in the sandbox.
Delete the server entry from tool-executor.config.json.
Remove from src/types.ts MCPClients interface.
rm -rf registry/{category}/{serverName}/
npm run extract # Regenerate remaining
npm run build
Environment variables use ${VAR_NAME} syntax in config:
{
"env": {
"GEMINI_API_KEY": "${GEMINI_API_KEY}",
"CUSTOM_VAR": "${MY_CUSTOM_VAR}"
}
}
| Server | Variable | Purpose |
|---|---|---|
| gemini | GEMINI_API_KEY | Google AI API key |
| apify | APIFY_TOKEN | Apify platform token |
In Claude Code config (~/.claude.json):
{
"mcpServers": {
"tool-executor": {
"env": {
"GEMINI_API_KEY": "your-key-here",
"APIFY_TOKEN": "your-token-here"
}
}
}
}
Or in shell:
export GEMINI_API_KEY="your-key-here"
registry/
├── ai-models/gemini/ # Gemini tools (AI queries, images, diagrams)
├── code-nav/serena/ # Serena tools
├── knowledge/context7/ # Context7 tools
├── knowledge/notebooklm/ # NotebookLM tools
├── reasoning/sequentialThinking/
├── ui/shadcn/ # shadcn tools
└── web/apify/ # Apify tools
name: tool_name
server: serverName
category: category-folder
description: >-
What the tool does. Can be multi-line.
inputSchema:
type: object
properties:
param1:
type: string
description: Parameter description
required:
- param1
example: |
const result = await serverName.tool_name({ param1: "value" });
console.log(result);
notes: |
- Optional tips
- Gotchas to be aware of
If npm run extract fails for a server, create YAML files manually:
mkdir -p registry/{category}/{serverName}
Then create registry/{category}/{serverName}/{tool-name}.yaml with the format above.
Serena indexes the registry for semantic search. If search results seem stale:
# Re-run extraction to refresh YAML files
npm run extract
# Rebuild to pick up changes
npm run build
These are the built-in defaults if no config file exists:
| Name | Command | Package |
|---|---|---|
| serena | uvx | git+https://github.com/oraios/serena |
| context7 | npx | @upstash/context7-mcp |
| gemini | npx | @rlabs-inc/gemini-mcp |
| notebooklm | npx | notebooklm-mcp |
| shadcn | npx | shadcn-ui-mcp-server |
| apify | npx | @apify/actors-mcp-server |
| sequentialThinking | npx | @modelcontextprotocol/server-sequential-thinking |
${CLAUDE_PLUGIN_ROOT}/src/sandbox/clients.ts - Client configuration and lifecycle${CLAUDE_PLUGIN_ROOT}/src/config.ts - Config file loading${CLAUDE_PLUGIN_ROOT}/src/types.ts - Type definitions${CLAUDE_PLUGIN_ROOT}/scripts/extract-schemas.ts - Registry generation