A modular MCP server for task orchestration, API integration, and knowledge synthesis using a finite state machine.
Claude-code MCP server that spawns agents as tools - An agent orchestration system that lets Claude autonomously break down complex workflows by structured phases and delegate to subagents with native context management.
Quick Demo | Demo + Explanations |
---|---|
![]() | ![]() |
Watch the quick demo | Watch the detailed walkthrough |
Iron Manus MCP is a comprehensive FSM-driven orchestration system that manages complex workflows through structured phases. It features a complete tool registry with JARVIS FSM controller and intelligent API selection from 65+ endpoints.
8-Phase Workflow: INIT β QUERY β ENHANCE β KNOWLEDGE β PLAN β EXECUTE β VERIFY β DONE
Key Features:
π¦ Docker Images: v0.2.3 (stable, published)
π Source Code: v0.2.4 (latest, with comprehensive JSDoc documentation)
Docker Hub:
# Pull and run from Docker Hub (v0.2.3 - stable)
docker pull dnnyngyen/iron-manus-mcp:0.2.3
docker run -d --name iron-manus-mcp dnnyngyen/iron-manus-mcp:0.2.3
# Alternative: Use latest tag
docker pull dnnyngyen/iron-manus-mcp:latest
docker run -d --name iron-manus-mcp dnnyngyen/iron-manus-mcp:latest
# Or using docker-compose
curl -O https://raw.githubusercontent.com/dnnyngyen/iron-manus-mcp/main/docker-compose.yml
docker-compose up -d
GitHub Container Registry:
# Pull and run from GitHub Container Registry (v0.2.3 - stable)
docker pull ghcr.io/dnnyngyen/iron-manus-mcp:0.2.3
docker run -d --name iron-manus-mcp ghcr.io/dnnyngyen/iron-manus-mcp:0.2.3
# Alternative: Use latest tag
docker pull ghcr.io/dnnyngyen/iron-manus-mcp:latest
docker run -d --name iron-manus-mcp ghcr.io/dnnyngyen/iron-manus-mcp:latest
Quick Setup (Cross-Platform):
# Clone and install (v0.2.4 - includes comprehensive JSDoc documentation)
git clone https://github.com/dnnyngyen/iron-manus-mcp
cd iron-manus-mcp
# Automated cross-platform installation
npm run setup
Manual Installation:
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run tests (optional - 323 tests)
npm test
# Start server
npm start
π Platform-Specific Instructions: See docs/CROSS_PLATFORM_SETUP.md for detailed Windows, macOS, and Linux setup guides.
If git clone fails with network errors:
# Try with increased buffer and timeout
git clone --depth 1 https://github.com/dnnyngyen/iron-manus-mcp
# OR download as ZIP
curl -L https://github.com/dnnyngyen/iron-manus-mcp/archive/main.zip -o iron-manus-mcp.zip
unzip iron-manus-mcp.zip
cd iron-manus-mcp-main
If npm install hangs or fails:
Unix/Linux/macOS:
# Clean and retry
rm -rf node_modules package-lock.json
npm cache clean --force
npm install --no-optional
# If it still fails, install core dependencies first:
npm install @modelcontextprotocol/sdk@^1.13.2 typescript@^5.0.0
npm run build
Windows (PowerShell):
# Clean and retry
Remove-Item -Recurse -Force node_modules, package-lock.json -ErrorAction SilentlyContinue
npm cache clean --force
npm install --no-optional
# If it still fails, install core dependencies first:
npm install @modelcontextprotocol/sdk@^1.13.2 typescript@^5.0.0
npm run build
Windows (Command Prompt):
# Clean and retry
rmdir /s /q node_modules 2>nul
del package-lock.json 2>nul
npm cache clean --force
npm install --no-optional
# If it still fails, install core dependencies first:
npm install @modelcontextprotocol/sdk@^1.13.2 typescript@^5.0.0
npm run build
This project uses knowledge graph state management. If you see files like iron_manus_*.json
, immediately:
Unix/Linux/macOS:
pkill -f iron-manus
rm -f iron_manus_*.json
rm -rf dist/ && npm run build
Windows (PowerShell):
Get-Process -Name "*iron-manus*" | Stop-Process -Force
Remove-Item iron_manus_*.json -Force -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force dist -ErrorAction SilentlyContinue; npm run build
Windows (Command Prompt):
taskkill /f /im node.exe /fi "WINDOWTITLE eq iron-manus*"
del iron_manus_*.json 2>nul
rmdir /s /q dist 2>nul && npm run build
See LEGACY_PREVENTION.md for details.
For MCP Integration: Add to your MCP client configuration or register with Claude Code:
# Register with Claude Code (adjust path as needed)
claude mcp add iron-manus-mcp node dist/index.js
# Or add to MCP client settings.json:
{
"mcpServers": {
"iron-manus-mcp": {
"command": "node",
"args": ["path/to/iron-manus-mcp/dist/index.js"]
}
}
}
For Claude Code Hooks (Optional):
Unix/Linux/macOS:
# Copy example hooks configuration
cp .claude/hooks-example.json .claude/hooks.json
# Requires Python 3.7+ for validation scripts
python3 --version
Windows (PowerShell):
# Copy example hooks configuration
Copy-Item .claude\hooks-example.json .claude\hooks.json
# Requires Python 3.7+ for validation scripts
python --version
Windows (Command Prompt):
# Copy example hooks configuration
copy .claude\hooks-example.json .claude\hooks.json
# Requires Python 3.7+ for validation scripts
python --version
The easiest way to run Iron Manus MCP is using Docker Compose:
# docker-compose.yml
services:
iron-manus-mcp:
image: dnnyngyen/iron-manus-mcp:0.2.3 # or :latest
container_name: iron-manus-mcp
restart: unless-stopped
stdin_open: true
tty: true
environment:
- KNOWLEDGE_MAX_CONCURRENCY=2
- KNOWLEDGE_TIMEOUT_MS=4000
- ALLOWED_HOSTS=api.github.com,httpbin.org,api.openai.com
- ENABLE_SSRF_PROTECTION=true
# Start the service
docker-compose up -d
# View logs
docker-compose logs -f iron-manus-mcp
# Stop the service
docker-compose down
# Pull latest stable version (v0.2.3)
docker pull dnnyngyen/iron-manus-mcp:0.2.3
# Run with custom environment variables
docker run -d \
--name iron-manus-mcp \
-e KNOWLEDGE_MAX_CONCURRENCY=3 \
-e ALLOWED_HOSTS="api.github.com,httpbin.org" \
dnnyngyen/iron-manus-mcp:0.2.3
# View container logs
docker logs iron-manus-mcp
# Stop and remove container
docker stop iron-manus-mcp && docker rm iron-manus-mcp
Docker Registry Tags:
0.2.3
- Current stable published version (recommended for production)latest
- Points to v0.2.3 stable releasestable
- Alias for v0.2.3Available Registries:
dnnyngyen/iron-manus-mcp:0.2.3
ghcr.io/dnnyngyen/iron-manus-mcp:0.2.3
Note: Source code v0.2.4 includes comprehensive JSDoc documentation improvements. Docker images will be updated to v0.2.4 in the next release.
Input:
await mcp.callTool({
name: 'JARVIS',
args: {
session_id: 'demo',
initial_objective: 'Build a TypeScript API with tests'
}
});
8-Phase Flow:
JARVIS
- Main FSM controller (8-phase orchestration)APISearch
- Intelligent API discovery from 65+ endpoint registryMultiAPIFetch
- Parallel HTTP requests with SSRF protectionIronManusStateGraph
- Project-scoped FSM state managementAPIValidator
- Response validation and confidence scoringPrerequisites:
Available Scripts:
npm run build # TypeScript compilation
npm test # Run full test suite (323 tests)
npm run test:nocov # Run tests without coverage
npm run lint # ESLint checking (with enhanced rules)
npm run format # Prettier formatting
npm start # Start compiled server
npm run dev # Fast incremental compilation + watch mode
npm run dev:simple # Simple dev script (fallback)
npm run check # Run lint + format + tests in parallel
npm run check:fix # Auto-fix lint/format issues + run tests
Configuration: Environment variables with enhanced validation:
KNOWLEDGE_MAX_CONCURRENCY=2 # API concurrency limit (1-10)
KNOWLEDGE_TIMEOUT_MS=4000 # Request timeout (1000-30000ms)
ALLOWED_HOSTS="api.github.com,httpbin.org" # SSRF whitelist
ENABLE_SSRF_PROTECTION=true # Security toggle (required in production)
MIN_COMPLETION_PERCENT=70 # Quality threshold (50-100)
USER_AGENT="Iron-Manus-MCP/0.2.4" # Service identification
Enhanced Features (v0.2.4+):
Comprehensive test suite with 323 tests using Vitest:
# Run all tests
npm test
# Run tests without coverage
npm run test:nocov
# Run specific test types
npm run test:unit
npm run test:integration
npm run test:e2e
Test Coverage:
Iron Manus MCP now features comprehensive security validation through Claude Code Hooks integration, providing deterministic security enforcement alongside the cognitive FSM layer.
Built-in Security Features:
Claude Code Hooks Security Enhancements:
rm -rf
, etc.)See .claude/HOOKS_INTEGRATION.md
for complete hook configuration and security implementation details.
Core Components:
MIT - See LICENSE file for details.
Current Status: Docker images (v0.2.3) provide stable functionality, while source code (v0.2.4) includes the latest documentation improvements.
Built for modern AI orchestration - Structured workflows meet intelligent automation.
A wrapper for OpenAI's built-in tools, enabling functionalities like web search and code execution. Requires an OpenAI API key.
A Python monorepo for AI-powered project management and productivity servers, utilizing the Claude API.
Manage your Todoist tasks and projects using the Todoist Python API.
Interact with the Salesforce API using jsforce, requiring username and password for authentication.
A spellchecker and grammar checker for developers, requiring a Hyperspell token for authentication.
Interact with your local Obsidian vault using a REST API.
Analyze and visualize data from .xlsx and .csv files using matplotlib and plotly.
a macOS-only MCP server that enables AI agents to capture screenshots of applications, or the entire system.
MCP server to interact with Routine: calendars, tasks, notes, etc.
Manage your tasks and projects with the Todoist API.