Skip to main content

Omnispindle

A todo system that went too deep

Omnispindle is the coordination layer of the Madness Interactive ecosystem. It provides standardized MCP tools for todo management, lesson capture, and cross-project coordination that AI agents can use to actually get work done.

What it actually does

The boring (useful) parts:

  • AI agents can manage todos, capture lessons, search knowledge bases
  • Full audit logging because trust issues are valid
  • Project-aware context so your agent knows where it is
  • Configurable tool loadouts (4 to 30 tools, pick your poison)
  • Zero-config Auth0 authentication (browser opens, you login, done)

The interesting (ambitious) parts:

  • Three operation modes: API-first, hybrid with fallbacks, or pure local
  • MQTT for real-time cross-system coordination
  • Visual dashboard via Inventorium
  • Integration with the Madness Interactive ecosystem

The weird (future) parts:

  • Terraria mod where AI tools are actual inventory items
  • SwarmDesk 3D workspace coordination
  • Teaching kids prompt engineering through video games

First we manage todos properly. Then we get weird with it.

Installation

📦 PyPI Installation (Recommended)

# Install from PyPI
pip install omnispindle

# Run the MCP stdio server
omnispindle-stdio

# Or run the web server
omnispindle

Available CLI commands after installation:

  • omnispindle - Web server for authenticated endpoints
  • omnispindle-server - Alias for web server
  • omnispindle-stdio - MCP stdio server for Claude Desktop

🚀 Claude Desktop Integration (Zero Config!)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "omnispindle": {
      "command": "omnispindle-stdio",
      "env": {
        "OMNISPINDLE_MODE": "api",
        "OMNISPINDLE_TOOL_LOADOUT": "basic",
        "MCP_USER_EMAIL": "your-email@example.com"
      }
    }
  }
}

That's it! The first time you use an Omnispindle tool:

  1. 🌐 Your browser opens automatically for Auth0 login
  2. 🔐 Log in with Google (or Auth0 credentials)
  3. ✅ Token is saved locally for future use
  4. 🎯 All MCP tools work seamlessly with your authenticated context

No tokens to copy, no manual config files, no complex setup!

🛠 Development Installation

# Clone the repository
git clone https://github.com/DanEdens/Omnispindle.git
cd Omnispindle

# Install dependencies
pip install -r requirements.txt

# Run the MCP server
python -m src.Omnispindle.stdio_server

For more details, see the MCP Client Auth Guide.

Architecture

Omnispindle v1.0.0: where "just a todo app" went wonderfully wrong.

🏗 What's Inside

  • FastMCP Server - Talks stdio and HTTP (your AI's new best friend)
  • API-First Design - HTTP calls to madnessinteractive.cc/api (works great)
  • Hybrid Mode - API-first with MongoDB parachute (just in case)
  • Zero-Config Auth - Browser pops open, you login, magic happens
  • Tool Loadouts - 4 to 30 tools depending on your token budget

🔄 Operation Modes

  • api - HTTP API calls only (cloud-native, no database required)
  • hybrid - API-first with MongoDB safety net (default, plays it safe)
  • local - Direct MongoDB connections (old school, still works)
  • auto - Picks the fastest option (let the system decide)

🔐 Authentication & Security

  • Auth0 Integration - JWT tokens via device flow (browser handles it)
  • API Key Support - For when you want long-lived tokens
  • User Isolation - Your todos stay yours (database-level separation)
  • Git-secrets Protection - Catches credentials before they hit GitHub

Configuration

🎛 Environment Variables

Operation Mode:

  • OMNISPINDLE_MODE - api, hybrid, local, auto (default: hybrid)
  • OMNISPINDLE_TOOL_LOADOUT - Tool loadout configuration (default: full)
  • OMNISPINDLE_FALLBACK_ENABLED - Enable fallback in hybrid mode (default: true)

Authentication:

  • MADNESS_API_URL - API base URL (default: https://madnessinteractive.cc/api)
  • AUTH0_TOKEN - JWT token from Auth0 device flow (for stdio/local MCP)
  • MADNESS_AUTH_TOKEN - Alternative token name (used by API client in api/hybrid modes)
  • MADNESS_API_KEY - API key alternative authentication
  • MCP_USER_EMAIL - User email for context isolation

Local Database (hybrid/local modes):

  • MONGODB_URI - MongoDB connection string
  • MONGODB_DB - Database name (default: swarmonomicon)
  • MQTT_HOST / MQTT_PORT - MQTT broker settings

🎯 Tool Loadouts

Configure OMNISPINDLE_TOOL_LOADOUT to control available functionality:

  • full - All 30 tools available (default)
  • basic - Essential todo management (7 tools)
  • minimal - Core functionality only (4 tools)
  • lessons - Knowledge management focus (7 tools)
  • admin - Administrative tools and session management (13 tools)
  • lightweight - Token-optimized core functionality (10 tools)
  • write_only - Create, update, delete operations only (6 tools)
  • read_only - Query and get operations only (8 tools)
  • hybrid_test - Testing hybrid functionality (6 tools)

Integration

Part of the Madness Interactive ecosystem (yes, we named it that):

  • Inventorium - Web dashboard and 3D workspace for humans who like GUIs
  • SwarmDesk - Project-specific AI environments (think context switching, but spatial)
  • Terraria Integration - Tools as inventory items (because why not)

Development

# Run tests
pytest tests/

# Start STDIO MCP server (for Claude Desktop)
python -m src.Omnispindle.stdio_server

# Check tool registration
python -c "from src.Omnispindle.stdio_server import OmniSpindleStdioServer; print(len(OmniSpindleStdioServer().server._tools))"

Usage with Claude Desktop

STDIO Server Setup

The stdio server is how Claude Desktop talks to Omnispindle. Zero-config auth means you literally just run it.

  1. Authentication: Browser opens, you login, done. (Want manual token setup? See the MCP Client Auth Guide)

  2. Configure Claude Desktop: Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "omnispindle": {
      "command": "python",
      "args": ["-m", "src.Omnispindle.stdio_server"],
      "cwd": "/path/to/Omnispindle",
      "env": {
        "OMNISPINDLE_TOOL_LOADOUT": "basic"
      }
    }
  }
}

That's it. Browser auth, local server, AI agents with todo superpowers.

Privacy & Security

Fair warning: This repo has our Auth0 configs, database strings, and infrastructure-as-code with real account IDs. It's open source for learning and forking, not for deploying as-is to production.

If you're actually using this:

  1. Fork it
  2. Change all the auth providers and credentials
  3. Point it at your own domains and databases
  4. Review the tool permissions (we're pretty permissive)
  5. Don't blame us if you deploy our configs to prod

This is a working system for our ecosystem. For yours, you'll need to make it your own.

Philosophy

Most people build todo apps with 5 features and call it a day. We built one with 30 MCP tools, three operation modes, zero-config OAuth, and a roadmap involving Minecraft-adjacent technology.

This is either exactly the right amount of complexity or way too much. Time will tell.

What works now:

  • Todo management for AI agents (rock solid)
  • Knowledge capture across projects (actually useful)
  • Zero-setup authentication (shockingly smooth)
  • API-first architecture with MongoDB parachute (overkill? maybe. reliable? absolutely.)

What's coming:

  • Teaching kids prompt engineering through Terraria (ambitious)
  • 3D workspace coordination (science fiction vibes)
  • Making AI context management feel like inventory management (weird, might work)

The complexity serves a purpose: AI agents need real tools for real work. We just happen to think "real work" shouldn't be boring.


"Over-engineered? Maybe. Under-ambitious? Never."

Metadata

Release files for iflow-mcp_danedens_omnispindle 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_danedens_omnispindle 1.0.2
File Size Uploaded
iflow_mcp_danedens_omnispindle-1.0.2.tar.gz 133.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_danedens_omnispindle 1.0.2
File Interpreter ABI Platform
iflow_mcp_danedens_omnispindle-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 281.8 kB

Release files / iflow_mcp_danedens_omnispindle-1.0.2.tar.gz

Download URL iflow_mcp_danedens_omnispindle-1.0.2.tar.gz
Size 133.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a7d625fd12263470b41c0cc339f1e03ae3e00ab433bce963254abcf9370aa928
BLAKE2b-256 checksum
How to use checksums
563fdf194b359bd729026625bbada24873aeaccf7f23d4ee153eac8498ff9c87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_danedens_omnispindle-1.0.2-py3-none-any.whl

Download URL iflow_mcp_danedens_omnispindle-1.0.2-py3-none-any.whl
Size 148.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b486de1e8399f1a9318cba4635d1220490905f75a488f8068f8bbb02c0976217
BLAKE2b-256 checksum
How to use checksums
b031acc22cfc29d722f602cafe61053396aeb8ee37d3340136eb2d8f7cf1ce71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page