MCP Server Enables Claude to Create and Run Custom Tools at Runtime

A developer has built an MCP server that allows Claude to create, update, and run new tools at runtime without requiring redeployment. Unlike standard MCP setups where tools are fixed at deploy time, this system enables dynamic tool creation.
Core Architecture
The server implements five core MCP tools:
- List Tools — returns available tools
- Get Tool — fetches full tool definition including code
- Create Tool — stores a new tool in a database registry
- Update Tool — modifies an existing tool
- Run Tool — executes any stored tool by name
Tool Execution Process
The Run Tool meta-tool works as follows:
- Looks up the requested tool in a MySQL table
- Fetches its code
- Passes parameters as context
- Runs it in a Deno subprocess with restricted permissions
- Returns the result
Sandbox Implementation
The developer evaluated Node VM, isolated-vm, and Docker before choosing Deno for sandboxing. Deno was selected because:
- Clean permission model with granular network/filesystem/subprocess control
- Native npm support
- TypeScript built-in
- ~50ms cold start vs 500ms+ for Docker
The sandbox uses these flags: --allow-net --deny-read --deny-write --deny-run --deny-ffi. This allows tool code to make HTTP requests and use npm packages, but prevents filesystem access or process spawning.
Tool Code Format
Tool code is JavaScript/TypeScript that receives a context object for parameters. Example from the source:
const response = await fetch(`https://api.example.com/${context.city}`);
const data = await response.json();
return { temp: data.temp, conditions: data.weather[0].description };
Self-Extension Capability
The system enables a self-extension loop: Claude identifies it needs a capability → creates the tool → uses it immediately → updates it if the result isn't right. This allows the system to become more capable over time without developer intervention.
The implementation is built on n8n as the MCP server with MySQL for tool storage and has been running in production for a few months.
📖 Read the full source: r/ClaudeAI
👀 See Also

Claude Code HUD: Terminal Dashboard for Monitoring AI Coding Sessions
claude-code-hud is a terminal dashboard that provides real-time monitoring for Claude Code sessions, showing context window usage, API rate limits, and file changes without requiring an IDE. Run it with npx claude-code-hud.

TechDebtMCP v2.0.0: MCP server for technical debt analysis across 14 languages
TechDebtMCP v2.0.0 is an MCP server that connects Claude to codebases to find, measure, and prioritize technical debt across 14 programming languages including JS/TS, Python, Java, Swift, Kotlin, Go, Rust, C/C++, C#, Ruby, and PHP.

Axe: A 12MB CLI for Single-Purpose LLM Agents
Axe is a lightweight Go binary that runs focused AI agents defined in TOML files. It treats agents like Unix programs, supporting stdin piping, sub-agent delegation, and multi-provider LLM integration.

Local Qwen Models Achieve Browser Automation with Stepwise Planning and Compact DOM
A developer found small local LLMs like Qwen 8B and 4B succeed at browser automation using stepwise planning instead of upfront multi-step plans, combined with a compact semantic DOM representation that reduces token usage from 50-100K+ to ~15K for full flows.