ToolFlow
A runtime-first MCP tool system. No workflow, Python-native tools, dynamic composition, stateless execution with FastMCP.
Ask AI about ToolFlow
Powered by Claude Β· Grounded in docs
I know everything about ToolFlow. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
ToolFlow
δΈζ | 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).
Key Features
- π Python-native tools β write a function, register a tool. No boilerplate.
- β‘ Dynamic composition β tools combine at runtime, not at design time.
- π Ephemeral sandboxes β every call runs in a fresh in-process sandbox with restricted imports; tool state is not reused across calls, though external side effects (for example, network calls) are still possible.
- π§± Control plane / execution plane separation β Django manages assets; FastMCP executes statelessly.
- π Built-in lifecycle management β version, release, and monitor tools independently.
Architecture & Invocation Flow
1. Architecture Flowchart
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
Project Structure
server/: Django gateway and management APIsruntime/: executor, bridge service, and runtime configfrontend/: React + Vite frontendstart_services.py: one-command local orchestrator
Quick Start
- Set up Python environment
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
- Install frontend dependencies
cd frontend
npm install
- Initialize database
cd ../server
python manage.py migrate
python preset_tools.py
- Return to project root and start all services
cd ..
python start_services.py
Default frontend URL: http://127.0.0.1:5173
Environment Variables
Copy .env.example to .env and configure as needed:
DJANGO_SECRET_KEYDJANGO_DEBUGDJANGO_ALLOWED_HOSTSDJANGO_CORS_ALLOWED_ORIGINS
Notes
- Runtime config file:
runtime/config.json - MCP Bridge script:
runtime/mcp_bridge.py
