whitejoce/ToolFlow
A runtime-first MCP tool system. No workflow, Python-native tools, dynamic composition, stateless execution with FastMCP.
Platform-specific configuration:
{
"mcpServers": {
"ToolFlow": {
"command": "npx",
"args": [
"-y",
"ToolFlow"
]
}
}
}Add the config above to .claude/settings.json under the mcpServers key.
δΈζ | English
---
Stop building workflows. Write a function, ship a tool.
ToolFlow is a runtime-first MCP tool system for LLM applications. You write plain Python functions β ToolFlow handles versioning, dispatch, isolation, and dynamic composition at runtime.
No DAGs. No pipelines. No restarts. Tools are loaded, executed, and destroyed on demand in isolated sandboxes. Compose them dynamically when called, not when deployed.
Built on Django (control plane) + FastMCP (stateless execution layer).
graph TD
A[LLM / Client] -->|Tool Call| B[Django Gateway + Control Plane]
B -->|Fetch Tool Code/Version| C["DB / Storage"]
B -->|Dispatch Tasks| D{Queue/Dispatcher}
D --> E[FastMCP Executor 1]
D --> F[FastMCP Executor N]
E -->|Ephemeral Load + Execute| G[Ephemeral Tool Runtime Sandbox]
F -->|Ephemeral Load + Execute| H[Ephemeral Tool Runtime Sandbox]
E -->|Report Status/Result| B
F -->|Report Status/Result| B
server/: Django gateway and management APIs
runtime/: executor, bridge service, and runtime config
frontend/: React + Vite frontend
start_services.py: one-command local orchestrator
python -m venv .venv
.Loading reviews...