Omnispindle
Система задач, которая прошла путь от «замечательно» до «намеренно неправильно».
Omnispindle — это координационный стержень экосистемы Madness Interactive, сервер на Python FastMCP с 33 инструментами, который позволяет ИИ-агентам управлять задачами, фиксировать знания, координировать сессии и перемещаться по всей рабочей среде через единый стандартизированный интерфейс. Упакован в PyPI. Интегрирован с Auth0. Работает везде, где есть конфигурация MCP.
Все начиналось с идеи «давайте делать задачи правильно». Это превратилось в центральную нервную систему для ИИ-лаборатории разработки, объединяющей множество проектов. И то, и другое — вполне нормально.
Что он делает на самом деле
Управление задачами (Todo) — скучная часть, которая делает возможным всё остальное. Агенты могут создавать, запрашивать, обновлять, завершать и проверять задачи в любом проекте экосистемы с полными метаданными, приоритетами, отслеживанием целевого агента и обнаружением изменений.
Фиксация знаний — извлеченные уроки сохраняются с метаданными языка, темы и тегов. Доступен поиск по регулярным выражениям, тексту или векторным эмбеддингам. Институциональная память не испаряется после завершения разговора.
Отслеживание сессий — ИИ-рабочие сессии в Inventorium можно разветвлять, порождать, связывать с задачами и отслеживать через полное генеалогическое древо. У каждой рабочей ветки есть родитель и родословная.
Семантический поиск — find_relevant использует векторные эмбеддинги для поиска задач и уроков по смыслу, а не только по ключевым словам. get_context_bundle предоставляет агенту полную картину проекта за один вызов.
Related MCP server: Coding Todo Server
Установка
pip install omnispindleКоманды CLI, доступные после установки:
omnispindle-stdio— MCP stdio-сервер для Claude Desktopomnispindle/omnispindle-server— HTTP-веб-сервер для аутентифицированных эндпоинтов
Claude Desktop (без настройки)
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"omnispindle": {
"command": "omnispindle-stdio",
"env": {
"OMNISPINDLE_MODE": "api",
"OMNISPINDLE_TOOL_LOADOUT": "basic",
"MCP_USER_EMAIL": "you@example.com"
}
}
}
}Первый вызов инструмента откроет ваш браузер для входа через Auth0. Токен сохраняется локально. Это всё.
Разработка
git clone https://github.com/DanEdens/Omnispindle.git
cd Omnispindle
pip install -r requirements.txt
python -m src.Omnispindle.stdio_serverИнструменты
Полный набор состоит из 33 инструментов в 6 категориях. Управляйте тем, что доступно — и бюджетом токенов вашего агента — с помощью OMNISPINDLE_TOOL_LOADOUT.
Управление задачами (9 инструментов)
Инструмент | Что он делает |
| Создание задачи с проектом, приоритетом, целевым агентом, заметками и метаданными |
| Запросы фильтрации в стиле MongoDB с проекцией, лимитом, смещением, обнаружением изменений |
| Исправление любых полей; метаданные объединяются глубоко. Поддерживает |
| Удаление задачи |
| Получение одной задачи по ID |
| Постановка на проверку с необязательным комментарием; запись в журнал аудита. Устанавливает статус |
| Фильтрация по статусу: |
| Токенизированный нечеткий текстовый поиск по нескольким словам |
| Недавние задачи для конкретного проекта |
Знания / Уроки (7 инструментов)
Инструмент | Что он делает |
| Фиксация урока с языком, темой и тегами |
| Получение по ID |
| Исправление содержимого или метаданных урока |
| Удаление |
| Текстовый поиск по полям уроков |
| Поиск по регулярным выражениям |
| Просмотр всех уроков, с кратким режимом для сводок |
Сессии Inventorium (8 инструментов)
Инструмент | Что он делает |
| Список сессий, опционально отфильтрованный по проекту |
| Получение сессии по ID |
| Запуск новой ИИ-рабочей сессии |
| Порождение дочерней сессии от родительской, связанной с задачей |
| Разветвление сессии с опциональным наследованием сообщений |
| Полное отслеживание предков/потомков для сессии |
| Визуальное дерево сессий для проекта |
| Связывание задачи с сессией |
Контекст и поиск (2 инструмента)
Инструмент | Что он делает |
| Один вызов: недавние задачи, уроки, состояние сессии, статистика проекта для рабочего контекста агента |
| Семантический RAG-поиск через векторные эмбеддинги — находит связанные задачи и уроки по смыслу |
Система / Администрирование (5 инструментов)
Инструмент | Что он делает |
| Запросы к журналу аудита: фильтрация по типу, проекту, диапазону дат |
| Перечисление известных проектов из файловой системы |
| Система объяснения тем: постоянные карточки знаний |
| Записывает наблюдение с настраиваемым сарказмом. Полезно для маркировки известных проблем во время автоматизированных запусков |
Пользовательский код (1 инструмент)
Инструмент | Что он делает |
| Внедрение функции Python, JavaScript или shell в качестве живого инструмента MCP во время выполнения |
Наборы инструментов (Loadouts)
Установите OMNISPINDLE_TOOL_LOADOUT для управления тем, что зарегистрировано:
Набор | Инструменты | Вариант использования |
| 33 | Всё |
| 10 | Основной CRUD задач + |
| 4 | Добавление, запрос, получение, отметка о завершении |
| 7 | Только управление знаниями |
| 14 | Администрирование + управление сессиями |
| 6 | Только создание/обновление/удаление |
| 15 | Только запрос/получение |
| 13 | Оптимизированное ядро |
| 6 | Запуск сессии: контекстный пакет, RAG-проверка, операции с задачами |
Режимы работы
Устанавливаются через OMNISPINDLE_MODE:
api— HTTP-вызовы кmadnessinteractive.cc/api. Локальная база данных не нужна. Лучше всего для облачных или многопользовательских настроек.hybrid(по умолчанию) — API-первый подход с резервным копированием в MongoDB. Надежно, когда сеть нестабильна.local— Только прямые подключения к MongoDB. Хорошо для автономной разработки.auto— Сравнивает оба варианта и выбирает более быстрый.
Аутентификация
Устройство без настройки: при первом вызове инструмента открывается окно браузера для входа в Auth0. Токен сохраняется локально. Все последующие вызовы аутентифицируются без какой-либо настройки.
Ручная настройка токена (опционально):
python -m src.Omnispindle.token_exchangeПеременные окружения:
MADNESS_AUTH_TOKENилиAUTH0_TOKEN— JWT из потока устройства Auth0MCP_USER_EMAIL— требуется для изоляции данных каждого пользователяMADNESS_API_URL— переопределение базового API (по умолчанию:https://madnessinteractive.cc/api)
Все данные ограничены пользователем на уровне базы данных. Ваши задачи остаются вашими.
Конфигурация
# Operation mode
OMNISPINDLE_MODE=hybrid # api | hybrid | local | auto
OMNISPINDLE_TOOL_LOADOUT=basic # see loadouts table above
OMNISPINDLE_FALLBACK_ENABLED=true
OMNISPINDLE_VALIDATE_PROJECT_NAMES=false # optional: enable slower DB-backed project validation
# Authentication
MADNESS_AUTH_TOKEN=<jwt>
MCP_USER_EMAIL=you@example.com
# Local/hybrid database
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=swarmonomicon
# Real-time events
MQTT_HOST=localhost
MQTT_PORT=1883Экосистема
Omnispindle — это слой ИИ-интерфейса. Остальная часть мастерской:
Inventorium — веб-панель React и 3D-пространство SwarmDesk. Люди используют это. Оно считывает задачи и сессии напрямую через REST API — не MCP, который предназначен исключительно для ИИ-агентов. Если вы нажимаете кнопки, вы в Inventorium. Если вы агент, вы вызываете инструменты MCP.
cartogomancy — инструмент анализа кодовой базы JS/TS (npm install -g @madnessengineering/cartogomancy). Укажите на любой проект JavaScript или TypeScript; получите богатую JSON-карту структуры, сложности, git blame и перекрестных ссылок. Передайте эту карту в SwarmDesk, и ваша кодовая база станет 3D-городом, по которому можно гулять.
SwarmDesk — слой 3D-визуализации внутри Inventorium. Задачи, сессии и карты кода cartogomancy визуализируются как исследуемая архитектура. Ваш проект как место, а не список.
MadnessVR — версия SwarmDesk для Quest 2 VR. Наденьте гарнитуру, пройдитесь по своей кодовой базе как по реальной геометрии. Это в дорожной карте, а не в примечаниях к выпуску. Но план существует, и он детальный.
Cogwyrm — ИИ-чат-компаньон, интегрированный в экосистему. Использует инструменты Omnispindle MCP во время разговоров для чтения и записи общего контекста.
Swarmonomicon — основной слой базы данных. MongoDB, база данных swarmonomicon. Всё, что должно быть постоянным, живет здесь.
Правило архитектуры
UI (Inventorium, forms, dashboards) → REST API → Database
AI agents (Claude, Cogwyrm, any MCP client) → MCP tools → Backend → DatabaseНикогда не направляйте UI через MCP. Никогда не вызывайте REST API напрямую из ИИ-агента. Разделение является намеренным и несущим нагрузку.
Разработка
# Tests
pytest tests/
# Stdio server (Claude Desktop)
python -m src.Omnispindle.stdio_server
# Web server
python -m src.Omnispindle
# Check tool count
python -c "from src.Omnispindle.tool_loadouts import _BASE_LOADOUTS; print(len(_BASE_LOADOUTS['full']), 'tools in full loadout')"Публикация в PyPI
# Build and check
python -m build
python -m twine check dist/*
# Publish
python -m twine upload dist/*Конфиденциальность и безопасность
Этот репозиторий содержит конфигурации Auth0 и инфраструктуру как код для нашей экосистемы. Он с открытым исходным кодом для обучения и форкинга — не для развертывания «как есть».
Если вы действительно запускаете это для своей собственной настройки:
Сделайте форк
Замените всех поставщиков аутентификации и учетные данные
Укажите на свой собственный домен и базу данных
Проверьте разрешения инструментов (по умолчанию мы разрешаем всё)
Это рабочая система для нашей лаборатории. Для вашей — сделайте её своей.
Философия
Большинство людей создают приложение для задач с 5 функциями. Мы создали одно с 33 инструментами MCP, тремя режимами работы, генеалогическими деревьями сессий, векторными эмбеддингами, OAuth без настройки и дорожной картой, которая включает прогулку по вашему коду в VR.
Это правильный уровень сложности. Каждая часть несет нагрузку.
Работает сейчас:
Управление задачами для ИИ-агентов — надежное, проверенное, для каждого пользователя
Постоянная фиксация знаний по проектам
Отслеживание сессий с полной родословной
Семантический поиск через векторные эмбеддинги
Auth0 без настройки, не требующий руководства по установке
В планах:
MadnessVR: SwarmDesk на Quest 2
Обучение промпт-инжинирингу через механику инвентаря в стиле Terraria
cartogomancy → SwarmDesk → VR как один непрерывный конвейер
Мы пишем аккуратный код. Мы не боимся раздвигать границы, когда это практично.
«Переусложнено? Возможно. Недостаточно амбициозно? Никогда».
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MadnessEngineering/fastmcp-todo-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
