Titan Rotation MCP

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.

Category
访问服务器

README

Titan Rotation MCP

Даёт твоему ИИ (Claude Code, Codex, Cursor, Claude Desktop) знания Titan SDK, проверенные spell ID и валидатор Lua — чтобы ротация для любого класса и спека делалась одним промтом.

Сделай ротацию для монка-хила

ИИ сам вызывает инструменты, собирает Lua и проверяет код. Ты платишь только за свою подписку — никаких сторонних ключей и серверов.

English below


Установка

Нужны 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 to strict_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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选