Skip to main content
Glama

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

Related MCP server: WoW Armory MCP Server

Как пользоваться

Просто попроси ротацию:

Сделай ротацию для 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 роли — это каркас и порядок решений, а не готовый тюнинг под конкретный рейд. Пороги настраиваются в игре.


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

Available Tools

15 tools
titan_get_docB

Полная документация по теме (aura, spell, player, group…).

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the disclosure burden. It only says 'full documentation' without explaining return format, errors, or side effects. The example topics add context but do not reveal expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the purpose. It contains no redundant words and is easy to parse. It could include more detail without becoming verbose, but as is it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter, no annotations, and no output schema. The description gives minimal information about the tool's behavior, not clarifying what the returned documentation looks like, possible errors, or any prerequisites. Given the lack of structured metadata, the description is insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no description for 'topic' (0% coverage). The description compensates by listing example values (aura, spell, player, group…), giving some indication of valid inputs. However, it does not specify an exact enumeration or format, leaving partial ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get documentation) and the resource (topic), with examples like aura, spell, player, group. It distinguishes from siblings such as titan_list_docs and titan_search_docs by focusing on retrieving full docs for a specific topic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you need full documentation on a given topic. However, it does not explicitly mention when to prefer this over titan_search_docs or titan_list_docs, and lacks any exclusion criteria or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_exampleB

Полная рабочая ротация Holy Paladin (1205 строк) — эталон паттернов: настройки, enum-политики, очередь спендеров, диспел. Большой файл: запрашивай section, чтобы получить часть.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNosettings | helpers | full (по умолчанию settings — самая полезная часть)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses the file is large (1205 lines) and advises requesting sections, which is useful. However, it doesn't describe side effects, auth requirements, or return format. For a read-only get, this is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, packed with relevant info: content type, size, patterns, and parameter tip. No fluff, front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema and no annotations, the description covers what it returns and how to handle the large size. Minor gaps: doesn't specify output format or relationship to sibling 'template' tools, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'section' parameter, which already explains its allowed values and default. The description adds only a generic mention of 'section' without repeating specifics, so it contributes little beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a full Holy Paladin rotation (1205 lines) as a reference of patterns, naming specific content (settings, enum policies, spender queue, dispel). This distinguishes it from siblings like titan_list_specs or titan_get_template by specifying the exact example content, though it doesn't explicitly contrast with alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives. The description implies use for reference patterns but provides no exclusions or alternative tool mentions, leaving the agent to infer. The section parameter advice is operational, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_healing_primitivesA

Готовый рабочий Lua-код примитивов лечения: перебор союзников, эффективное HP с учётом heal absorb, выбор цели, поиск танка, резолвер enum-политики таргетинга (не использовать / себя / танка / себя и танка / на всех), диспел. Вставляй как есть и надстраивай спек-специфику — не переписывай заново.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It lists what the code does (healing primitives, targeting policies, dispel) but omits details like return format (e.g., code block), whether it includes dependencies, or compatibility notes. Still, it provides substantive behavioral content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence in Russian that efficiently front-loads the purpose ('Ready working Lua code of healing primitives'). It lists contents compactly, though a slight restructure could improve scannability; still, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description provides sufficient context about the tool's content and usage. It clearly explains what the code includes and how to apply it, making it complete enough for an AI agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially covered. Per the rubric, a baseline of 4 applies since there is no parameter semantic burden for the description to address.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides ready-to-use Lua code for healing primitives, enumerating specific features (ally iteration, HP absorption, target selection, tank search, enum policy resolver, dispel). This differentiates it from sibling tools like titan_get_template or titan_get_example, which are more general.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage instruction: 'insert as is and build spec-specific on top, don't rewrite' – establishing when to use it as a base. It does not explicitly name alternatives or exclusions, but the context strongly implies its intended role in healing rotation development.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_role_blueprintA

Порядок принятия решений для роли (healer / tank / dps): что проверять и в каком порядке, какими методами API, что должно быть настройкой игрока, и типичные ошибки. Для хилов это ЗАМЕНА отсутствующего SimC APL — источника истины «что кастовать когда» для лечения не существует.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYeshealer, tank или dps

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of explaining behavior. It describes the content of the blueprint (decision order, API methods, settings, mistakes) and the special role for healers, but does not specify the return format, error behavior, or whether any side effects exist. For a read-only getter, this is acceptable but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with no fluff. The first sentence efficiently lists the main contents; the second adds crucial context for healers. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description provides a good overview of what the blueprint contains, including pitfalls and the special SimC APL context for healers. It does not describe the exact output format, but the term 'blueprint' and the content list give enough for an agent to understand the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'role' is fully described in the schema (healer/tank/dps), and the description repeats this information. Since schema coverage is 100%, the description adds little beyond reinforcement, but it does mention the allowed values in the opening sentence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool provides a decision-making order for a role (healer/tank/dps), specifying what to check, in what order, which API methods to use, player settings, and typical mistakes. It distinguishes itself from sibling tools by emphasizing it is a functional blueprint, not just a data listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need decision logic for a role, and for healers it explicitly positions itself as a replacement for the missing SimC APL. However, it does not explicitly state when NOT to use it or name specific alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_settings_formatA

Формат настроек ротации в Lua (bool/int/float/enum, группы, apply). ОБЯЗАТЕЛЬНО прочитай перед добавлением настроек: официальная документация описывает только C++ API (SettingsSchema, make_enum), в Lua он не работает. Здесь реальный рабочий формат, включая enum для выбора политики игроком.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral transparency burden. It adds significant context by revealing the format is Lua-specific and that official C++ documentation is misleading, implying this tool gives the correct working format. However, it does not explicitly state the return format or side effects, so it stops short of fully disclosing all behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the core purpose and then adds a critical usage note. It uses all-caps emphasis intentionally for the important instruction without unnecessary verbosity. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description provides a reasonably complete picture: what the format is, when to use it, and a caveat about official docs. It would be slightly more complete if it described how the format is presented (e.g., as a string, file, or list), but for a reference tool, the current description suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty with 100% coverage. The description does not need to explain parameters but adds value by describing what the returned format includes. This aligns with the baseline of 4 for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as providing the Lua rotation settings format, explicitly listing its contents (bool/int/float/enum, groups, apply). It distinguishes itself from sibling tools by focusing on the format rather than actual rotation data, and crucially contrasts it with the official C++ API documentation, making its unique purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to read this before adding settings ('ОБЯЗАТЕЛЬНО прочитай перед добавлением настроек'), providing a clear when-to-use. It also offers an alternative exclusion by stating that the official documentation is not applicable to Lua, thereby directing users away from it. This is strong usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_signatureC

Точная сигнатура одного метода API.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden for behavioral disclosure. It only states the tool returns a signature, omitting details about return structure, safety, side effects, or error behavior. The 'get' in the name implies a read operation, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded and free of extraneous words. It efficiently conveys the core purpose without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no annotations, the description is extremely thin. It does not explain the return format, how method names map to a list, or any dependent context from sibling tools, leaving the agent to infer most operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning to the `method` parameter by implying it refers to an API method name. However, it does not explain what constitutes a valid method, where to find allowed values, or how to format the string. With 0% schema coverage, the description fails to sufficiently compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides the exact signature of a single API method, distinguishing it from sibling tools like titan_list_api_methods and titan_get_spec_data. Although it lacks an explicit verb, the noun phrase is unambiguous and directly tied to the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description does not mention that one might first need to list available methods or verify method names before calling this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_spec_dataA

SimC APL (приоритет с условиями) + числовые spell ID для класса/спека. ВАЖНО: для хилов APL в SimulationCraft не существует (кроме druid_restoration, где лечение сведено к одной строке) — в этом случае apl_available=false, и надо использовать titan_get_role_blueprint. Titan работает только по числовым ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes
classYes
resolve_idsNoРезолвить spell ID (по умолчанию true). Первый вызов качает ~14 МБ DB2-таблиц в кэш.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses an important behavioral trait: for healers, APL is unavailable and returns apl_available=false, with a specific exception. It also discloses the numeric-ID constraint. However, it doesn't explicitly state read-only nature or side effects like caching, but the schema description for resolve_ids does cover the DB2 download.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose and followed by a crucial caveat. Every clause adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, but the description explains what is returned (APL + numeric spell IDs) and key edge cases. It doesn't detail return structure but given the caveats, it is sufficiently complete for an AI agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only resolve_ids has a description). The main description mentions 'for class/spec' but doesn't provide format or examples for class/spec. It adds context that healers are treated specially, which relates to the spec parameter, but does not fully compensate for the undocumented params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool returns 'SimC APL (conditional priority) + numeric spell IDs for class/spec', which is a specific verb+resource. It also distinguishes from the sibling titan_get_role_blueprint by noting when APL is unavailable for healers, that alternative should be used.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: for healers (except druid_restoration), APL doesn't exist and apl_available=false, so 'you need to use titan_get_role_blueprint'. It also states Titan only works with numeric IDs, implying prerequisites. This is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_get_templateB

Канонический шаблон модуля ротации: структура, обязательные callback'и.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral disclosure burden. It only reveals that the result is a canonical template with structure and callbacks, but does not disclose return format, side effects, read-only nature, or any operational characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is appropriately concise for a no-parameter tool. It is front-loaded with the key noun phrase, but it lacks an explicit action verb and is borderline under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter tool, the description gives minimal context: it states the template's subject matter but not how it is returned, how it refers to rotation development, or when it is appropriate to fetch. This leaves significant gaps for an agent deciding to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is trivially complete (100% coverage). There are no parameter semantics to elaborate, and the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (canonical rotation module template) and its key components (structure, required callbacks), making the primary purpose clear. It does not explicitly use a verb like 'returns' or 'provides', and it does not distinguish from sibling tools, but the referent is specific enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as titan_get_role_blueprint or titan_get_settings_format. There are no context clues about typical workflows or exclusionary statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_list_api_methodsA

Все методы Titan API с сигнатурами. Фильтр по подстроке. Проверяй здесь имена перед использованием — выдуманные методы валидатор отклонит.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoПодстрока: 'heal', 'buff', 'threat', 'power'…

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It accurately presents this as a read-only catalog that returns methods with signatures and filters by substring, and adds useful validator context. It does not mention side effects, but none are relevant for a listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence defines the full scope, and the second gives a practical usage instruction. Every word adds value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a low-complexity tool with one optional parameter and no output schema. The description communicates the result type (methods with signatures), the filtering capability, and the intended use case, which is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single optional 'filter' parameter with description and examples, so the baseline is 3. The tool description only restates the substring filtering concept without adding additional semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists all Titan API methods with signatures and supports substring filtering. This distinguishes it from sibling tools like titan_list_specs and titan_list_docs, which cover different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to check method names here before using other tools, because invented names will be rejected by the validator. This provides a concrete trigger condition, though it does not name specific sibling alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_list_docsB

Список тем документации Titan SDK.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states that the tool returns a list of topics, which is essentially what the name implies. It does not disclose the return format, whether ordered, pagination, authorization requirements, or any other behavioral trait beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short phrase with no wasted words. It is appropriately brief for a zero-parameter tool, though it could arguably be more structured (e.g., a complete sentence) but this does not detract significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description should at least explain what the return value contains. It does say 'list of topics', which gives a general idea, but it does not specify whether the list contains just titles, identifiers, or additional metadata. It is a minimum viable description but lacks detail for an agent to fully anticipate the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty with 100% schema description coverage. Since there are no parameters to describe, the description does not need to add parameter-level meaning. The baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Список тем документации Titan SDK.' translates to 'List of topics of Titan SDK documentation.' It clearly indicates the tool lists documentation topics, and this is distinct from sibling tools like titan_get_doc (retrieve a specific doc) and titan_search_docs (search docs). However, it uses a noun phrase rather than an explicit verb, and does not detail the scope (e.g., all topics vs. filtered).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention that users might first list topics before calling get_doc or search_docs, nor does it state any exclusions or prerequisites. The description simply says what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_list_specsA

Все поддерживаемые классы и спеки с ролями и id. Полезно, если название спека не распознано.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the output content (classes, specs, roles, ids) but does not mention any limits (e.g., pagination), performance characteristics, or explicitly confirm read-only behavior. The tool is simple and non-destructive by nature, but the description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff. The first states what the tool provides, and the second gives a concrete usage scenario, making every sentence valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema), the description is complete. It explains what is returned (classes and specs with roles and ids) and when to use it (unknown spec names). No further context is necessary for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to explain any. The baseline for 0 params is 4, and the description does not contradict this. It correctly implies that no input is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (all supported classes and specs) and the data included (roles and ids), even without an explicit verb. It distinguishes from siblings like titan_get_spec_data (which targets a single spec) and titan_get_role_blueprint (which provides role blueprints) by being the comprehensive listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a specific use case: 'Useful if the spec name is not recognized.' This provides clear context for when to use the tool, though it doesn't explicitly mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_resolve_spell_idsA

Числовые spell ID по списку имён способностей (snake_case, как в SimC: renewing_mist, thunder_focus_tea). Для спеков без APL — основной способ получить ID. Резолв идёт по данным игры в порядке: спеллбук спека, дерево талантов, класс — и разворачивает замены (у Holy Paladin judgment = 275773, а не базовый 20271). ВСЕГДА передавай spec: без него у мультиспековых классов часть кнопок разрешится в ID чужого спека.

ParametersJSON Schema
NameRequiredDescriptionDefault
specNoСпек, например 'holy'. Обязателен на практике: включает спеллбук спека и карту замен ID.
classYes
spellsYesИмена в snake_case, например ['vivify','renewing_mist','life_cocoon']

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses important behavioral traits beyond the schema: resolution order (spec spellbook → talent tree → class), unfolding of replacements (Holy Paladin judgment example), and the dependency on spec for correct resolution. Since no annotations are provided, this description carries the full burden of behavioral disclosure, and it does so effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense. Every sentence serves a purpose: stating the output, providing use case, explaining resolution order with an example, and giving a critical warning about the spec parameter. It is front-loaded with the primary purpose and does not waste words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the essential aspects: what it does, how it resolves IDs, and what to watch out for. It lacks explicit return format details, but the return value ('numeric spell IDs') is implied. The warning about spec and the resolution order make it complete enough for an AI to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers 2 of 3 parameters (spec and spells) with descriptions. The description adds extra context: snake_case format like SimC, resolution order, and the criticality of spec. However, the 'class' parameter remains undocumented in both schema and description, and the added information is more about overall behavior than about individual parameter semantics. Thus, it does not fully compensate for the missing class description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: converting a list of ability names in snake_case into numeric spell IDs. It specifies the resource (spell names) and the output (IDs), and provides usage context ('Для спеков без APL — основной способ получить ID'). This distinguishes it from sibling tools that might handle rotations or specs data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: it is the primary way to get spell IDs for specs without APL. It also warns that 'spec' must always be passed to avoid resolving to another spec's IDs for multi-spec classes. However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_search_docsA

Полнотекстовый поиск по всей документации SDK.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The word 'search' naturally indicates a read-only operation, but the description does not explicitly state this or disclose any other behavioral aspects (e.g., whether matching is case-sensitive, returns snippets, or has pagination). It provides minimal transparency beyond the obvious non-destructive search action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, complete sentence that is front-loaded with the key verb ('search') and resource. There is no wasted wording, making it highly concise and easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one string parameter, no output schema), a short description is acceptable, but it omits details about what the search returns (e.g., a list of matching documents?) and whether it matches against full text content or just metadata. The absence of an output schema makes these details more pertinent, yet the description leaves them unspecified. It is minimally complete but lacks some expected context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explicitly describe the 'query' parameter. While one can infer that 'query' is the search text from context, the description itself never states this, leaving the agent to rely on the parameter name alone. This is insufficient compensation for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a concrete action ('full-text search') on a clear resource ('all SDK documentation'), and the name titan_search_docs reinforces this. It is clearly differentiated from sibling tools like titan_list_docs (which lists docs) and titan_get_doc (which retrieves a specific doc). This leaves no ambiguity about the tool's core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you need to find content within documentation) but gives no explicit guidance on when to use this tool versus alternatives such as titan_list_docs or titan_get_doc. There are no stated exclusions or conditions. The context of sibling tool names helps, but the description itself lacks direct comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_start_rotationA

ВЫЗЫВАЙ ЭТО ПЕРВЫМ для любого запроса «сделай ротацию для <класс> <спек>». Возвращает всё нужное одним вызовом: identity (class_id/spec_id), роль, порядок принятия решений для этой роли, числовые spell ID, SimC APL если он существует для спека, шаблон модуля и формат настроек. Дальше пиши Lua и обязательно проверь через titan_validate_rotation.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYesСпек: mistweaver (или mw), guardian, restoration (или resto), protection (или prot)…
classYesКласс: monk, druid, paladin, death_knight (или dk), demon_hunter (или dh)…

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It discloses what data is returned and conditions it (e.g., SimC APL 'if it exists'), but it does not mention read-only behavior, potential error conditions (e.g., unknown class/spec), output structure, or performance implications of this aggregated call. It is informative but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the key trigger ('CALL THIS FIRST'), followed by a compact list of return contents and the required next step. It is efficient, every sentence earns its place, and there is no fluff or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description enumerates the major return components and provides a clear workflow, which covers most of what an agent needs to invoke the tool and proceed. It falls slightly short by not describing the exact structure/field names of the response or handling of invalid inputs, but for an orchestrating starter tool the description is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both `class` and `spec` having descriptive examples in the schema itself. The description adds no additional parameter-level meaning, so the baseline of 3 applies; it simply restates that class and spec are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly says 'CALL THIS FIRST' for any rotation-creation request and enumerates the exact return payload (identity, role, decision order, spell IDs, SimC APL, module template, settings format). It positions the tool as a comprehensive entry point, distinguishing it from the various sibling data-fetch tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: call this first for any 'make a rotation for <class> <spec>' request, and then validate via titan_validate_rotation. It implies that using the dedicated getter siblings is unnecessary because this tool returns everything needed in one call, and it names the one required follow-up action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

titan_validate_rotationA

ВСЕГДА вызывай перед выдачей финального кода. Проверяет: синтаксис Lua, существование всех api./action. вызовов, и полноту по роли (хил без выборки цели лечения или танк без mitigation — ошибка, а не предупреждение). Передавай role, иначе ролевые проверки не выполнятся.

ParametersJSON Schema
NameRequiredDescriptionDefault
luaYesПолный исходник модуля ротации
roleNohealer, tank или dps — включает проверку полноты

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden. It reveals key behaviors: what is checked, that role incompleteness is treated as an error rather than a warning, and that failing to pass 'role' disables role checks. It doesn't describe return format or failure modes, but the core behavioral nuances are disclosed for a validation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences, front-loaded with the imperative 'ВСЕГДА' (ALWAYS) to emphasize usage. Every clause provides essential information: when to use, what is validated, error severity, and role parameter necessity. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validation tool with a simple schema and no output schema, the description covers the critical contextual aspects: when to call, what is validated, role-specific behavior, and required inputs. It lacks specifics about return values or error reporting, but these are secondary since the agent's primary need is to know when and how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters (lua and role), so baseline is 3. The description adds meaningful context by explaining that passing 'role' enables role-specific completeness checks, which the schema only hints at. This enhances the agent's understanding of how to use the parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it validates Lua rotation modules by checking syntax, existence of api.*/action.* calls, and role completeness. The verb 'Проверяет' (checks) is specific, and the scope (rotation source code) is clearly defined. This distinguishes it from sibling tools that handle docs, specs, or starting rotations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to 'ВСЕГДА вызывай перед выдачей финального кода' (ALWAYS call before giving final code), providing a clear when-to-use directive. It also explains the role parameter's necessity for enabling role checks, which is actionable. This is strong usage guidance without needing to reference alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv1.0.0
    • First observedtitan_get_doc
    • First observedtitan_get_example
    • First observedtitan_get_healing_primitives
    • First observedtitan_get_role_blueprint
    • First observedtitan_get_settings_format
    • First observedtitan_get_signature
    • First observedtitan_get_spec_data
    • First observedtitan_get_template
    • First observedtitan_list_api_methods
    • First observedtitan_list_docs
    • First observedtitan_list_specs
    • First observedtitan_resolve_spell_ids
    • First observedtitan_search_docs
    • First observedtitan_start_rotation
    • First observedtitan_validate_rotation

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but overlap exists between titan_start_rotation and the individual getters (spec_data, role_blueprint, template, settings_format) since start_rotation returns all of those. Descriptions mitigate this by positioning start_rotation as the entry point, so confusion is limited.

Naming Consistency5/5

All tool names follow a consistent pattern of titan_<verb>_<object>, using snake_case throughout. Verbs like list, get, resolve, search, and validate are applied uniformly, making the naming predictable and easy to navigate.

Tool Count5/5

With 15 tools, the server sits at the upper edge of the well-scoped range. Each tool serves a distinct role in the rotation-development workflow, from data retrieval to validation, without feeling bloated.

Completeness5/5

The tool surface covers the entire workflow for creating a WoW rotation: discovering specs, retrieving role-specific blueprints, resolving spell IDs, accessing API docs and templates, and validating the final code. No critical steps are missing for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive World of Warcraft guild analytics, player character analysis, and auction house market data through the Blizzard Battle.net API. Supports both Retail and Classic WoW with real-time market insights, guild roster management, and demographic analytics.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search and retrieve documentation for Vanilla World of Warcraft Lua APIs, including function signatures, categories, protected flags, and addon scaffolding.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives AI coding assistants access to the World of Warcraft addon API documentation, FrameXML/AddOn UI source code, and the Warcraft Wiki across all four client flavors.
    9
    26
    MIT