Titan Rotation MCP
Provides AI assistants with Titan SDK knowledge, verified spell IDs, and a Lua validator to generate combat rotations for any World of Warcraft class and specialization from a single prompt.
README
Titan Rotation MCP
Даёт твоему ИИ (Claude Code, Codex, Cursor, Claude Desktop) знания Titan SDK, проверенные spell ID и валидатор Lua — чтобы ротация для любого класса и спека делалась одним промтом.
Сделай ротацию для монка-хила
ИИ сам вызывает инструменты, собирает Lua и проверяет код. Ты платишь только за свою подписку — никаких сторонних ключей и серверов.
Установка
Нужны Node.js 18+ и компилятор Lua (для проверки синтаксиса).
# Debian/Ubuntu
sudo apt install lua5.4
# macOS
brew install lua
# Windows
scoop install lua
Добавь сервер в конфиг своего клиента.
Claude Code (~/.claude/mcp.json или .mcp.json в проекте):
{
"mcpServers": {
"titan": {
"command": "npx",
"args": ["-y", "titan-rotation-mcp"]
}
}
}
Claude Desktop (claude_desktop_config.json), Cursor (~/.cursor/mcp.json) — тот же блок.
Или поставить глобально:
npm install -g titan-rotation-mcp
{
"mcpServers": {
"titan": { "command": "titan-rotation-mcp" }
}
}
Проверить, что запускается:
npx -y titan-rotation-mcp
# Titan Rotation MCP v1.0.0 запущен (stdio). Lua-компилятор: luac5.4
Как пользоваться
Просто попроси ротацию:
Сделай ротацию для Mistweaver Monk
Ротацию для гардиан друида, с настройками дефансивов
Ротация для рестор шамана, Lay on Hands-подобные кнопки — выбор цели через настройку
ИИ вызовет titan_start_rotation, получит всё нужное одним ответом (identity, роль, приоритеты, spell ID, шаблон), напишет Lua и проверит через titan_validate_rotation. Готовый код вставляешь в Titan.
Понимает синонимы: mw, resto, prot, bear, boomkin, dk, dh.
Что внутри
Поддержаны все 40 спеков 13 классов, включая Devourer (третий спек Demon Hunter в Midnight). Spec ID и роли сверены с игровыми данными DB2.
| Инструмент | Зачем |
|---|---|
titan_start_rotation |
Всё для старта одним вызовом: identity, роль, приоритеты, ID, шаблон |
titan_get_role_blueprint |
Порядок принятия решений для healer / tank / dps |
titan_get_spec_data |
SimC APL + числовые spell ID |
titan_resolve_spell_ids |
ID по именам способностей (для спеков без APL) |
titan_get_settings_format |
Формат настроек в Lua (bool/int/enum, группы) |
titan_get_healing_primitives |
Рабочий Lua: выбор цели, heal absorb, политики таргетинга |
titan_validate_rotation |
Синтаксис + существование API + полнота по роли |
titan_list_api_methods |
455 методов с сигнатурами |
titan_get_signature |
Сигнатура одного метода |
titan_list_docs / titan_get_doc / titan_search_docs |
Документация SDK (24 темы) |
titan_get_template |
Канонический шаблон модуля |
titan_get_example |
Эталонная ротация Holy Paladin (1205 строк) |
titan_list_specs |
Все классы и спеки с id и ролями |
Почему это работает лучше, чем «просто спросить ИИ»
Выдуманные методы отклоняются. Валидатор сверяет каждый вызов api.* с реестром из 455 реальных методов. Написал api.get_lowest_health() вместо api.get_lowest_unit() — получит ошибку и исправит сам.
Spell ID берутся из игровых данных, а не из памяти модели. Резолвер тянет DB2-дампы с wago.tools и ограничивает поиск пулом заклинаний класса (спеллбук + дерево талантов). Поэтому thrash у друида не превращается в чужой одноимённый спелл — из 74 кандидатов по имени остаются только те, что реально есть у класса.
Приоритеты — из SimulationCraft, с актуальной ветки и версии клиента, а не «как было в прошлом аддоне».
Для хилов честно сказано, что источника истины нет. В SimC 34 файла APL, и лечения там нет: симулятор считает урон по неподвижной цели, а лечение реактивно. Единственный «хилерский» APL — druid_restoration, где вся лечебная часть это strict_sequence:regrowth:regrowth:regrowth:regrowth, остальное DPS в кошке. Вместо того чтобы дать ИИ выдумывать, MCP отдаёт blueprint роли: порядок принятия решений, какими методами, что должно быть настройкой игрока, какие ошибки типичны.
Ролевая проверка ловит пустышки. Ротация хила без выборки цели лечения компилируется прекрасно и не лечит. Такое отклоняется как ошибка, а не пропускается:
VALID: false
✓ Синтаксис Lua OK (luac5.4)
✗ РОЛЬ: Нет выбора цели лечения (get_lowest_unit / get_group /
get_friendly_units_with_range). Хил, который лечит только текущую цель,
в рейде бесполезен.
Для танка так же: нет active mitigation или контроля агро — ошибка. SimC APL этот слой не описывает вообще, потому что не моделирует входящий бурст.
Формат настроек — реальный. Официальная дока описывает только C++ (SettingsSchema, make_enum); в Lua он не работает. MCP отдаёт формат, который действительно применяется, включая enum для политик игрока:
{ id = "loh_mode", type = "enum", label = "Lay on Hands", default = 1,
group = "lay_on_hands",
enum_options = {
{ value = 0, label = "Не использовать" },
{ value = 1, label = "Только на себя" },
{ value = 2, label = "Только на танка" },
{ value = 3, label = "Себя и танка" },
{ value = 4, label = "На всех" },
} },
Работает автономно
Все данные считаются на твоей машине: SimC-приоритеты идут напрямую с GitHub, spell ID — с wago.tools. Никаких промежуточных серверов, никакой телеметрии, никаких ключей.
Первый резолв ID качает ~14 МБ DB2-таблиц в ~/.titan-mcp/cache и живёт неделю. Дальше мгновенно. Кэш переносится через TITAN_CACHE_DIR.
Разработка
git clone https://github.com/brooke19931993-glitch/titan-rotation-mcp.git
cd titan-rotation-mcp
npm install
npm test # юнит-тесты (без сети)
node test/e2e.mjs # живой прогон через stdio (нужна сеть)
Оговорки
- Инструмент помогает писать код; за использование сторонних аддонов в игре ответственность на тебе.
- Spell ID меняются с патчами. Кэш сам обновляется через неделю, принудительно — удали
~/.titan-mcp/cache. - Неоднозначные ID (несколько кандидатов внутри класса) отдаются списком: выбор за ИИ или за тобой, проверяй на Wowhead.
- Blueprint роли — это каркас и порядок решений, а не готовый тюнинг под конкретный рейд. Пороги настраиваются в игре.
<a name="english"></a>
English
MCP server that gives your AI (Claude Code, Codex, Cursor) the Titan addon SDK knowledge, verified spell IDs and a Lua validator — so a combat rotation for any class and spec can be made from a single prompt.
Write a rotation for Mistweaver Monk
Install
Requires Node.js 18+ and a Lua compiler (sudo apt install lua5.4 / brew install lua / scoop install lua).
{
"mcpServers": {
"titan": {
"command": "npx",
"args": ["-y", "titan-rotation-mcp"]
}
}
}
Why it beats asking an AI directly
- Invented API methods are rejected — every
api.*call is checked against a registry of 455 real methods. - Spell IDs come from game data (wago.tools DB2), scoped to the class spell pool, not from model memory.
- Priorities come from SimulationCraft, current branch and client version.
- For healers it admits there is no source of truth. SimC has 34 APL files and none of them model healing (the only "healer" APL,
druid_restoration, reduces healing tostrict_sequence:regrowth:regrowth:regrowth:regrowth). Instead of letting the AI invent priorities, the server provides a role blueprint: decision order, which API methods to use, what must be a player setting, and common mistakes. - Role validation catches empty shells. A healer rotation with no ally targeting compiles fine and heals nobody — that is reported as an error, not a warning. Same for tanks missing active mitigation.
- The settings format is the real one. Official docs only describe the C++ API, which does not work in Lua.
All data is computed locally: SimC from GitHub, spell IDs from wago.tools. No intermediate servers, no telemetry, no API keys. First ID resolve caches ~14 MB of DB2 tables in ~/.titan-mcp/cache for a week.
All 40 specs across 13 classes are supported, including Devourer (the third Demon Hunter spec in Midnight). Spec IDs and roles are verified against DB2 game data.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。