A todo management system designed for coordinating tasks across multiple projects, utilizing MongoDB and MQTT.
A comprehensive FastMCP-based todo management system that serves as a central nervous system for multi-project task coordination. Part of the Madness Interactive ecosystem, Omnispindle combines AI-powered task insights, an MCP toolbelt, and task board to transform chaos into productivity.
Example of a todo output from Claude Sonnet 4.0 without anything being additional being added to the prompt:
{
"project": "Omnispindle",
"description": "ANALYSIS: Node-RED routing issues - need to fix link-in/link-out patterns for project operations to match todo operation patterns",
"priority": "High",
"metadata": {
"ticket": "routing-analysis",
"tags": [
"node-red",
"routing",
"analysis",
"link-nodes"
]
}
}
Result:
{"success": true, "todo_id": "af007427-9ebb-4304-8d95-5cafc4a855dd", "message": "Todo created successfully"}
Omnispindle consists of multiple integrated components:
The captured tasks integrate seamlessly with the Todomill Projectorium dashboard, where you can review, refine, and execute them when you're ready to tackle them.
Clone the repository:
git clone https://github.com/DanEdens/Omnispindle.git
cd Omnispindle
Install with uv (recommended):
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate # On Unix/macOS
uv pip install -r requirements.txt
Configure environment:
cp .env.example .env
# Edit .env with your MongoDB and MQTT settings
Start with Docker (easiest):
docker-compose up -d
Create a .env
file with your settings:
# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=todo_app
MONGODB_COLLECTION=todos
# MQTT Configuration
MQTT_HOST=localhost
MQTT_PORT=1883
# AI Integration (optional)
AI_API_ENDPOINT=http://localhost:1234/v1
AI_MODEL=qwen2.5-7b-instruct
Add to your Claude Desktop claude_desktop_config.json
:
{
"mcpServers": {
"omnispindle": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--network", "host",
"-e", "MONGODB_URI=mongodb://localhost:27017",
"-e", "MONGODB_DB=swarmonomicon",
"-e", "MQTT_HOST=localhost",
"danedens31/omnispindle:latest"
]
}
}
}
{
"mcpServers": {
"omnispindle": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", "/path/to/your/.env",
"--network", "omnispindle_default",
"danedens31/omnispindle:latest"
]
}
}
}
{
"mcpServers": {
"omnispindle": {
"command": "python",
"args": ["-m", "src.Omnispindle"],
"cwd": "/path/to/Omnispindle",
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "swarmonomicon",
"MQTT_HOST": "localhost"
}
}
}
}
The server exposes the following tools for AI agents:
add_todo_tool
- Create new tasks with metadataquery_todos_tool
- Search and filter tasksupdate_todo_tool
- Modify existing tasksmark_todo_complete_tool
- Complete taskslist_project_todos_tool
- Get tasks by projectadd_lesson_tool
- Capture lessons learnedsearch_lessons_tool
- Query knowledge basemqtt_publish_tool
- Send real-time messagesmqtt_get_tool
- Retrieve MQTT messages# Development mode
python -m src.Omnispindle
# Production mode
uvicorn src.Omnispindle.server:app --host 0.0.0.0 --port 8000
The server exposes standardized MCP tools that AI agents can call:
# Example: AI agent creating a todo
await add_todo_tool(
description="Implement user authentication",
project="Omnispindle",
priority="High",
target_agent="developer",
metadata={"ticket": "AUTH-123", "tags": ["security", "backend"]}
)
# Example: AI agent querying todos
results = await query_todos_tool(
query_or_filter="project:Omnispindle",
fields_or_projection="all",
limit=50
)
from fastmcp import FastMCPClient
# Connect to Omnispindle
client = FastMCPClient("http://localhost:8000")
# Create a new todo
response = await client.call_tool("add_todo_tool", {
"description": "Fix critical bug in authentication",
"project": "Madness_interactive",
"priority": "High"
})
# Get project todos
todos = await client.call_tool("list_project_todos_tool", {
"project": "Omnispindle",
"limit": 10
})
http://localhost:1880/ui
Todomill_projectorium/ExportedNodeRedTabs/
Omnispindle/
āāā src/Omnispindle/ # Main MCP server implementation
ā āāā __init__.py # Tool registration and initialization
ā āāā server.py # FastMCP server core
ā āāā tools.py # Todo and lesson management tools
ā āāā ai_assistant.py # AI integration and suggestions
ā āāā scheduler.py # Smart scheduling features
ā āāā mqtt.py # MQTT messaging integration
ā āāā todo_log_service.py # Audit logging service
āāā Todomill_projectorium/ # Node-RED dashboard subrepo
ā āāā ExportedNodeRedTabs/ # Node-RED flow definitions
ā āāā JavascriptFromFunctionNode/ # Dashboard logic
ā āāā HtmlFromTemplateNode/ # UI templates
ā āāā UIComponents/ # Reusable UI components
āāā tests/ # Test suite
āāā config/ # Configuration files
āāā docs/ # Documentation
āāā docker-compose.yml # Container orchestration
āāā pyproject.toml # Project metadata
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=src tests/
# Run specific tests
pytest tests/test_todo_log.py -v
Todomill_projectorium/
src/Omnispindle/tools.py
src/Omnispindle/__init__.py
tests/
# Omnispindle works with Swarmonomicon for distributed task processing
from swarmonomicon import TaskAgent
agent = TaskAgent("omnispindle-worker")
agent.register_mcp_server("http://localhost:8000")
# Agent can now create and manage todos via MCP
await agent.execute_task("create_todo", {
"description": "Process data pipeline",
"project": "Swarmonomicon"
})
# Sync todos with GitHub issues
todo_id = await add_todo_tool(
description="Fix authentication bug",
project="Madness_interactive",
metadata={"github_issue": 1234}
)
# Subscribe to todo events
mosquitto_sub -t "omnispindle/todos/+/+"
# Publish todo creation request
mosquitto_pub -t "omnispindle/todos/create" -m '{
"description": "Deploy to production",
"project": "Omnispindle",
"priority": "High"
}'
git checkout -b feature/amazing-feature
pytest tests/
MIT License - see LICENSE file for details.
"In the chaotic symphony of development tasks, Omnispindle conducts with AI-powered precision!" šāØ
Interact with the Bring! shopping list API via a local MCP server.
Provides access to over 70 IT tools and utilities for developers and IT professionals, including encoding, text manipulation, and network tools.
Integrates with Notion's API to manage personal todo list
Integrates with the Strateegia API, allowing AI assistants to access and interact with Strateegia projects.
Automate and manage WordPress sites using browser automation and API integration.
Provides comprehensive project management context to AI agents using the Helios-9 API.
A Google Apps Script-based MCP network that allows AI to securely access Google Workspace data like Gmail and Calendar.
Integrate with Google Tasks to manage your to-do lists and tasks.
An open-source collaborative wiki and documentation software with AI integration via MCP.
Tools for PostHog analytics, annotations, and project management.