Skip to main content
Glama

tft-oracle

Teamfight Tactics MCP server — accurate champion, trait, item, and augment data for LLMs.

Stop LLMs from hallucinating TFT data. tft-oracle gives AI assistants accurate, up-to-date game knowledge sourced from CommunityDragon.

Features

  • Champions — Full stats, traits, abilities, and costs for all champions in the current set

  • Traits — Breakpoint thresholds, scaling values, and champion membership

  • Items — Complete recipe tree, stat effects, and component relationships

  • Augments — Descriptions and effects

  • Rolling Odds — Shop probability tables by player level

  • Auto-updates — Data refreshes from CommunityDragon on each server start

Related MCP server: MCP Riot Server

Tools

Tool

Description

search_champions

Search champions by name, cost, trait, or role

get_champion

Full champion profile with stats, traits, and ability

search_traits

Search and list traits

get_trait

Trait detail with breakpoints and champion list

search_items

Search items by name or component

get_item_recipe

Item recipe tree and reverse lookups

search_augments

Search augments by name or effect

get_rolling_odds

Champion shop odds by player level

Install

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "tft-oracle": {
      "command": "npx",
      "args": ["-y", "tft-oracle"]
    }
  }
}

CLI

npx tft-oracle

Data Source

Game data is sourced from CommunityDragon, which extracts structured data from Riot Games' TFT client files. Data is fetched on first run and cached locally at ~/.tft-oracle/. It auto-updates when CommunityDragon publishes new patch data.

No Riot Games API key is required.

tft-oracle isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, Teamfight Tactics, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

Game data provided by CommunityDragon, created under Riot Games' "Legal Jibber Jabber" policy.

License

MIT

Available Tools

8 tools
get_championA

Get complete details for a specific TFT champion including all stats, traits, and ability description. Supports fuzzy name matching.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesChampion name to look up (exact or partial match)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description bears full responsibility. It mentions fuzzy name matching, which is a key behavioral trait. However, it doesn't disclose error behavior (e.g., if no match found), data source or freshness, or any side effects. While adequate, it lacks some transparency.

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 filler. It conveys the purpose, content, and a key behavior (fuzzy matching) efficiently, earning 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 tool's simplicity (one parameter, no nested objects, no output schema), the description is mostly complete. It could optionally mention the structure of the return value or the possibility of multiple matches due to fuzzy matching, but it is sufficient for an agent to use 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?

There is only one parameter 'name' described in schema as 'exact or partial match'. The description adds context of fuzzy matching, supplementing the schema. Since schema coverage is 100%, the baseline is 3, and the added value (fuzzy matching hint) brings it to 4.

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 verb 'Get' and the resource 'complete details for a specific TFT champion', listing specific content (stats, traits, ability). It also notes fuzzy name matching, differentiating it from sibling tools like search_champions which likely return lists.

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 when to use: when you need all details for a single champion. It does not explicitly say when not to use or provide alternatives, but the context from sibling tools (e.g., search_champions for broad queries) makes it reasonably clear.

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

get_item_recipeA

Get the recipe for a TFT item (which components build it) or see what a component builds into. Use this for item planning and carousel decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesItem name to look up (e.g. "Infinity Edge", "B.F. Sword")

TDQS

A4.3/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 full burden. It discloses the bidirectional nature of the lookup (recipe and what components build into) and implies a read-only operation. Could be improved by explicitly stating it has no side effects.

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, front-loaded with the action, no fluff. Every sentence adds value.

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?

For a single-parameter tool with no output schema, the description fully explains what the tool does, covering both directions of the recipe lookup. It is complete for its simplicity.

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 covers 100% of parameters with a clear description including examples. The tool description does not add additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 verb 'Get' and the resource 'recipe for a TFT item', and explicitly mentions looking up components or what a component builds into. It distinguishes well from sibling tools like get_champion and search_items.

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 provides a clear use case: 'Use this for item planning and carousel decisions.' It gives context for when to use the tool but does not explicitly exclude other scenarios or mention alternatives.

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

get_rolling_oddsA

Get TFT champion shop rolling odds by player level. Shows the probability of seeing each cost tier (1-5) at a given level. Omit the level to see the full table.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoPlayer level (2-10). Omit to get the full table.

TDQS

A4/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. It states that the tool shows probability for each cost tier, which is transparent, but it does not disclose any behavioral traits such as read-only nature, output format, or potential side effects. The description is adequate for a simple data retrieval tool but lacks additional context.

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 extremely concise with only two sentences, no wasted words, and front-loads the core purpose. Every sentence 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 tool's simplicity (single optional parameter, no output schema, no nested objects), the description is largely complete. It covers the essential information, though it could optionally describe the output format (e.g., table or object) for completeness. Still, it is adequate for an agent to 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 100% and the single parameter's description already includes the information about omitting it for the full table. The tool description repeats this info without adding new semantics beyond the schema, so it does not significantly enhance understanding.

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 gets TFT champion shop rolling odds by player level, specifying the verb 'Get' and the resource 'TFT champion shop rolling odds'. It distinguishes itself from sibling tools like get_champion or search_champions by focusing on rolling odds probabilities for cost tiers.

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 explains when to omit the level parameter ('Omit the level to see the full table'), providing clear context for use. However, it does not explicitly mention when not to use this tool or compare it to alternatives like search_champions, which could help in decision-making.

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

get_traitA

Get full details for a TFT trait including breakpoint thresholds, scaling values, and all champions with this trait. Use this to understand synergy requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTrait name to look up (exact or partial match)

TDQS

A3.9/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 fully disclose behavior. It only states 'Get full details' but fails to mention read-only nature, error handling for missing traits, or any prerequisites. This is insufficient for a tool with no annotation support.

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: first states the purpose and output contents, second gives usage guidance. No filler words; every sentence adds value.

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?

For a simple tool with one parameter and no output schema, the description explains what the tool returns (breakpoints, scaling, champions). This is sufficiently complete for an agent to understand the tool's output.

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% and the schema explains the 'name' parameter as 'exact or partial match'. The description adds no additional parameter-specific details, but it does explain what the result includes, which indirectly helps. Baseline 3 is appropriate.

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 'Get full details for a TFT trait' and lists specific contents (breakpoint thresholds, scaling values, all champions). It differentiates from siblings like get_champion (champion details) and search_traits (search function).

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 includes 'Use this to understand synergy requirements,' which provides clear context for when to use the tool. However, it does not explicitly mention when not to use it or compare to search_traits.

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

search_augmentsA

Search TFT augments by name or description. Omit the query to list all augments in the current set.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return, 1-50 (default: 20)
queryNoFree-text search across augment name and description (uses FTS5)

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It discloses the search uses FTS5 across name and description and notes the default behavior when query is omitted. No contradictions.

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?

One sentence, no waste. Front-loaded with purpose and includes key usage note. Every word earns its place.

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 no output schema, the description sufficiently explains behavior and parameters. For a simple search tool, it is complete and does not require further elaboration.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds meaningful context for each param (e.g., 'Free-text search across augment name and description (uses FTS5)' for query). No additional detail 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?

Clearly states the tool searches TFT augments by name or description, and omitting the query lists all augments. This specificity distinguishes it from sibling tools like search_champions or search_items.

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?

Explicitly says 'Omit the query to list all augments in the current set,' providing a clear when-to-use scenario. The context of sibling tools offers alternatives, but the description alone gives sufficient guidance.

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

search_championsA

Search for TFT champions by name, cost, trait, or role. Returns a summary list — use get_champion for full details on a specific champion.

ParametersJSON Schema
NameRequiredDescriptionDefault
costNoFilter by champion cost (1-5)
roleNoFilter by role (e.g. damage, support, tank)
limitNoMax results to return, 1-50 (default: 20)
queryNoFree-text search across champion name and ability (uses FTS5)
traitNoFilter by trait name (e.g. Warrior, Bruiser)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description does not explicitly state behavioral traits such as idempotency, rate limits, or side effects. However, 'Search' implies a non-destructive read operation, and the description is adequate for an agent to infer safety. It could be improved by clarifying the absence of mutations or result ordering.

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 concise with two sentences, no redundancy, and front-loads the core purpose. Every sentence adds necessary information without wasted 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 search tool with 5 parameters, no output schema, and no annotations, the description covers the purpose, usage guidance, and parameter semantics adequately. It lacks details on return format or result ordering, but the schema handles parameter descriptions, making the tool usable without further context.

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 input schema has 100% parameter descriptions, so the baseline is 3. The description adds value by summarizing the main filter dimensions (name, cost, trait, role) and clarifying that the output is a summary list, which is not evident from the schema alone.

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 searches for TFT champions by name, cost, trait, or role, with a specific verb and resource. It explicitly distinguishes itself from the sibling tool get_champion by noting that it returns a summary list, while get_champion provides full details.

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 provides clear guidance on when to use this tool (searching for champions) and when to use the alternative (get_champion for full details). It does not list specific exclusions or scenarios to avoid, but the context is sufficient for basic usage decisions.

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

search_itemsA

Search TFT items by name, description, or component. Use componentsOnly to see base components, or the component filter to find what a component builds into.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return, 1-50 (default: 20)
queryNoFree-text search across item name and description (uses FTS5)
componentNoFilter by component name (shows completed items that use this component)
componentsOnlyNoShow only base components (not completed items)

TDQS

A3.9/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 fully disclose behavior. It only describes search capabilities and filter options, but omits any mention of read-only nature (if applicable), performance characteristics, or side effects. This is insufficient for a tool with no annotations.

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, no redundant words, and the core purpose is stated in the first few words. Every sentence adds meaningful guidance.

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?

For 4 optional parameters and moderate complexity, the description covers usage well but does not mention what the return data looks like (no output schema). This leaves ambiguity about the result format, which a minimal description should address.

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%, so each parameter is already described in the schema. The description adds value by explaining the interplay between 'component' and 'componentsOnly' filters, which is not clear from the schema alone.

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 searches TFT items by name, description, or component, and distinguishes two special use cases (componentsOnly and component filter). This effectively differentiates it from sibling tools like get_item_recipe or get_champion.

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 provides clear guidance on when to use componentsOnly vs. component filter, and implies query is for general text search. It does not explicitly state when not to use the tool or suggest alternatives, but the usage context is well implied.

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

search_traitsA

Search TFT traits by name or description. Omit the query to list all traits in the current set.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return, 1-100 (default: 50)
queryNoFree-text search across trait name and description (uses FTS5)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations, so description carries full burden. Discloses the dual-modality (search vs list), the use of FTS5 for full-text search, and the scope (current set). Adequately transparent for a read-only search 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?

Two sentences, no fluff. Front-loaded with purpose. Every word earns its place.

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?

Simple tool with 2 params and no output schema. Description covers both modes and search scope. Complete for its complexity.

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% with descriptions for both params. Description adds little beyond schema; the FTS5 detail is also in param description. Baseline 3 is appropriate.

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?

Clearly states verb 'Search', resource 'TFT traits', and explains two modes: with query for name/description and omitting query to list all. Distinguishes from sibling get_trait which likely returns a single trait.

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 guidance on when to omit query (to list all traits) and when to use it (search by name or description). Does not explicitly exclude alternatives like get_trait, but context implies that.

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

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct game element (champion, item, trait, augment, rolling odds) with clear boundaries. Descriptions further clarify purpose, e.g., search_champions returns summaries while get_champion provides full details.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (get_champion, get_item_recipe, search_augments, etc.), making the API predictable and easy to navigate for agents.

Tool Count5/5

With 8 tools, the server covers the essential TFT information needs (champions, items, traits, augments, rolling odds) without being overwhelming or sparse. Each tool serves a clear purpose.

Completeness4/5

The tool set covers core functionality well, but there is a minor gap: there is no dedicated 'get_augment' for full augment details, only search. This could cause agents to miss detailed information if they rely solely on search.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    This server enables Claude to access Team Fight Tactics (TFT) game data, allowing users to retrieve match histories and detailed match information through the Riot Games API.
    18
    9
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A community-developed Model Context Protocol server that integrates with the Riot Games API to provide League of Legends data, enabling AI assistants to retrieve player information, ranked stats, champion mastery, and match summaries through natural language queries.
    5
    27
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Warhammer Oracle is an MCP server that gives AI assistants accurate Warhammer 40K, Combat Patrol, and Kill Team rules, unit stats, and game flow - so they stop hallucinating rules mid-game. It contains 6 tools (lookup, search, compare units, keywords, phases) covering 2,642 40K units and 506 Kill Team operatives across 48 factions.
    14
    1,656
    9
    MIT

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/gregario/tft-oracle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server