MCP server for orchestrating AI coding agents (Claude Code CLI & Gemini CLI). Features task management, process execution, Git integration, and dynamic resource discovery. Full TypeScript implementation with Docker support and Cloudflare Tunnel integration.
# Add to your Claude Code skills
git clone https://github.com/systempromptio/systemprompt-code-orchestratorWebsite • Documentation • Watch Demo Video
We appreciate your support! If you find this project useful, please consider:
⭐ Star this repo • 📢 Share with your network • 🐛 Report issues • 🤝 Contribute code
Every star, share, and contribution helps us improve this tool for the community!
This server is 100% free and open source and works with any MCP-compatible client.
We also offer a paid subscription native mobile app (SystemPrompt) designed for voice-first interactions with this server.
The mobile app is still in early development but provides a native mobile experience for controlling your coding agent from anywhere.
Getting Started: Quick Start | | : | | : | | | : | |
No comments yet. Be the first to share your thoughts!
This is the SystemPrompt Coding Agent - a cutting-edge project that converts your workstation into a remotely-accessible MCP (Model Context Protocol) server that any MCP client can connect to. It's part of the SystemPrompt.io ecosystem, which is pioneering native mobile voice-controlled AI orchestration for developers.
SystemPrompt is an experimental, community-driven project (currently at v0.01) that enables developers to interact with AI and execute complex workflows using natural language voice commands. The project is:
Send coding tasks from anywhere, and AI agents (Claude out of the box, extendable for any) execute directly on your actual machine. Your code never leaves your computer, but you can control it from anywhere through:
This project exposes your local machine as an MCP server that can be remotely controlled. The AI agents run directly on your machine with access to your real development environment and tools.
The SystemPrompt mobile app users kept asking "but what do I do with it?" The answer: manage your own development environment and agents remotely. This coding agent is THE killer use case at this stage of the adoption curve for MCP servers - enabling developers to code from anywhere using just their voice.
# Clone and setup
git clone https://github.com/systempromptio/systemprompt-code-orchestrator
cd systemprompt-code-orchestrator
# Install and run
npm i
npm run setup
npm run start
# Test with the inspector
npm run inspector
The created tasks which can be exectued with the inspector should tunnel to your Claude Code installation, save structured logs inside the Docker container (exposed as MCP resources), and enable execution through the inspector (and any MCP client).
The setup script will check for these automatically:
npm run start # Start all services (daemon + Docker)
npm run stop # Stop all services gracefully
npm run status # Check service health
npm run logs # View real-time logs
npm run tunnel # Start with internet tunnel (requires Cloudflare)
# Required (setup will prompt for this)
PROJECT_ROOT=/path/to/your/code # ⚠️ AI agents have FULL access here
# Optional (with defaults)
PORT=3000
COMPOSE_PROJECT_NAME=systemprompt-coding-agent
# Optional (for additional features)
CLOUDFLARE_TOKEN=your_token # For tunnel access
PUSH_TOKEN=your_token # For mobile notifications
MCP Client (Mobile/Desktop)
|
v
Docker Container (MCP Server)
- Handles MCP protocol
- Resource subscriptions
- Event streaming
|
v
Host Bridge Daemon (TCP Socket)
- Command routing
|
v
Host Machine
- AI agent execution
- File system access
1. Real-Time Resource Subscription Model
The server implements the MCP SDK's listChanged pattern for resource subscriptions. When a task state changes:
// Client subscribes to task resources, notified by listChanged notifications
client.listResources()
client.getResource({ uri: "task://abc-123" })
// When task updates, server automatically:
// 1. Saves task to disk (JSON persistence)
await this.persistence.saveTask(updatedTask);
// 2. Emits internal event
this.emit("task:updated", updatedTask);
// 3. Sends MCP notification to subscribed clients
await sendResourcesUpdatedNotification(`task://${taskId}`, sessionId);
// This triggers: { method: "notifications/resources/updated", params: { uri: "task://abc-123" } }
// Client receives notification and can re-fetch the updated resource
This enables real-time task monitoring without polling - clients stay synchronized with task state changes as they happen.
2. Push Notifications for Task Completion
Integrated Firebase Cloud Messaging (FCM) support sends push notifications to mobile devices when tasks complete:
// Task completes → Push notification sent
{
notification: {
title: "Task Complete",
body: "Your refactoring task finished successfully"
},
data: {
taskId: "abc-123",
status: "completed",
duration: "45s"
}
}
Perfect for long-running tasks - start a task, go about your day, get notified when it's done.
3. Stateful Process Management
pending → in_progress → waiting → completed
↓
failed
All operations emit events consumed by multiple subsystems:
More complex options like opening a Cloudflare tunnel to expose an HTTPS URL to your local machine are documented, but not included by default (do at your own risk).
npm run tunnel
This will:
If you prefer to keep everything on your local network:
Start the server normally:
npm start
Access from devices on the same network:
http://YOUR_IP:3000/mcp