overwatch-AIO-mcp
This server provides read-only Overwatch data lookup and analysis tools that combine hero/meta statistics, player profiles, curated ranker/replay evidence, official patches, and OWCS Korea esports data while preserving sources and caveats.
Catalog: list heroes, maps, modes, tiers, regions, and supported filters (locale-aware).
Meta analysis: compare hero win/pick rates by map, tier, region, source, or platform; view stored historical snapshots; no matchup winrates.
Player search/profile: search public BattleTags, then read public career/hero/role stats; distinguishes private or missing data.
Ranker registry: search only the locally curated, evidenced ranker list with dated rank observations; not the full live Top 500.
Replay search/detail: find public replay codes and filter by hero, map, tier, player, region evidence, or playable status; retrieve playback/identity/validation evidence.
Patches: read official English patch notes and hero changes; replay invalidation notices mark older checks for recheck.
Esports: query released OWCS Korea data for hero meta, matches, maps, bans, and teams; kept separate from ladder stats.
Status: inspect source health, capabilities, and stored coverage; optional refresh performs bounded cached probes.
Evidence-aware caveats: ASIA ≠ Korean servers, equal names do not prove identity, public flags are not client verification, and partial/empty results are reported explicitly.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@overwatch-AIO-mcpWhat's the meta for Reinhardt in Asia Master tier?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Overwatch AIO — MCP Server & Agent Skill
English | 한국어
An Overwatch MCP server and standalone agent skill for hero meta, public player statistics, evidenced rankers, replay codes, official patch notes, and OWCS Korea esports data. Both interfaces share ten queries, validation, and a SQLite store. Results preserve source URLs, observation dates, applied filters, and evidence.
Built with Python 3.11+ and uv. Choose the skill, MCP, or both. Data is fetched on request; no scheduled collector is started.
Download releases · Distribution and registry guide
Choose an interface
Interface | Use it for | Installation |
Agent skill | Let Codex select queries and interpret evidence | Root skill and basic Python dependencies |
MCP server | Call | The |
Both | Choose the interface for each environment | Both installations can share one DB |
The skill runs its CLI independently. MCP does not require a skill installation. There is no automatic switching or duplicate execution.
Related MCP server: Open Data MCP
Install the skill
Use the skills CLI for a project installation:
npx skills add BK927/overwatch-aio --skill overwatch-aio-skill --agent codexAdd --global for a personal installation. Python and uv are needed for queries; Node.js is only needed for this installer. Use the skill directory reported by the installer.
Alternatively, ask Codex's Skill Installer:
Install the skill at the root of BK927/overwatch-aio as overwatch-aio-skill. Use the specified commit if I provide one.
For a pinned installation, use its script with your local Codex skills path:
python <Codex skills>/.system/skill-installer/scripts/install-skill-from-github.py --repo BK927/overwatch-aio --path . --name overwatch-aio-skill --ref <commit-SHA>
uv sync --frozen --no-dev --project "<installed-skill-directory>"The Skill Installer's default personal directory is ~/.codex/skills/overwatch-aio-skill. Invoke $overwatch-aio-skill or ask an Overwatch data question. Your database, caches, and development environment are not distributed.
Example requests:
“Compare Reinhardt and Ramattra in Asia Master, with sources and the actual data period.”
“Show Korea-specific data if available, and distinguish it from Asia data.”
“Find Reinhardt replays linked to evidenced Korean players and show their playback verification.”
“Explain Reinhardt's latest patch changes alongside OWCS Korea data.”
Install the MCP server
MCPB-compatible clients supporting the UV runtime (manifest 0.4) can install the .mcpb file from a GitHub release. Dependencies are prepared at first launch. The source installation below works with clients using ordinary stdio or Streamable HTTP configuration.
Clone the repository or use an installed skill directory. Replace <project-directory> with its absolute path:
git clone https://github.com/BK927/overwatch-aio.git
uv sync --frozen --no-dev --extra mcp --project "<project-directory>"
uv run --frozen --no-dev --extra mcp --project "<project-directory>" overwatch-aio-mcp serveThe default transport is stdio. Use the MCP JSON example or Codex TOML example. Codex also accepts:
codex mcp add overwatch-aio -- uv run --frozen --no-dev --extra mcp --project "<project-directory>" overwatch-aio-mcp serveFor Streamable HTTP, start the server and connect to http://127.0.0.1:8765/mcp:
uv run --frozen --no-dev --extra mcp --project "<project-directory>" overwatch-aio-mcp serve --transport streamable-http--host and --port change the listen address. The default is local-only 127.0.0.1:8765. The server has no built-in authentication; public hosting requires separate authentication and TLS. See the official Codex MCP guide for client configuration.
Keep --extra mcp in MCP launch commands and in uv sync commands for environments used by MCP. A plain uv sync can remove optional dependencies. The skill command stays unchanged.
Available tools
Tool | Capability |
| Heroes, maps, modes, tiers, regions, and supported filters |
| Hero rates, map/tier/region comparisons, and stored observations |
| Public name and BattleTag search |
| Public profile and career/hero/role statistics |
| Locally curated, evidenced ranker registry |
| Public replay discovery and stored evidence filters |
| Replay details and recorded playback evidence |
| Official patch notes and replay compatibility notices |
| OWCS Korea hero, match, map, ban, and team data |
| Source health and stored coverage; offline by default |
Both interfaces publish the same input/output schemas. MCP returns the result as structuredContent and JSON text. Only status=error sets isError=true; empty, stale, and partial results retain their quality status and warnings. overwatch-aio-mcp schema exports the contracts. Use the local curation CLI for evidence writes.
Direct CLI queries
uv run --frozen --no-dev --project "<skill-directory>" overwatch-aio-skill query ow_status
uv run --frozen --no-dev --project "<skill-directory>" overwatch-aio-skill query ow_meta --input-file "<filters.json>"
uv run --frozen --no-dev --project "<skill-directory>" overwatch-aio-skill schemaExample filters.json:
{"heroes":["reinhardt","ramattra"],"region":"ASIA","tier":"MASTER"}Omitting the file supplies {}; --input-file - reads stdin. UTF-8 and UTF-8 BOM are supported. Stdout contains one JSON object; diagnostics go to stderr. Exit codes are 0 for ok/empty/stale/partial, 1 for execution failure, and 2 for invalid input. Inspect status and warnings. The query guide provides more examples in Korean.
Data storage and compatibility
DB selection is --db → OW_DB_PATH → ~/.overwatch-aio-skill/overwatch.db. The default is shared by processes running as the same user, independently of installation directories. Use absolute paths for existing records. Place --db after the executable name, before query or serve.
Existing caches, meta observations, players, replays, and manual evidence remain readable. SQLite WAL and transactions support concurrent skill writes and MCP reads. The old collection_jobs table is preserved but unused. There is no automatic database move or deletion. History contains observations made on request; unobserved periods are not backfilled. Cached responses do not create new observations. Replay recheck flags from invalidation notices update when patches are queried. HTTP cache retention is bounded to 256 entries, 64 MiB, and seven days.
The repository is BK927/overwatch-aio; the Python distribution and skill remain overwatch-aio-skill. Existing skill commands work unchanged. Older MCP users can keep overwatch-aio-mcp serve after updating their path and adding --extra mcp. Point --db at the old data/overwatch.db explicitly if needed.
Sources and limits
Sources include OverFast, Blizzard hero statistics and patch notes, OWTICS, OWReplays, and OWCS Korea releases. Requests to these services can include query filters and public player identifiers needed for the selected operation.
ASIA does not establish a Korean match server. OWTICS KOREA is a provider grouping.
Rankers cover the evidenced local registry, not a complete live Top 500 list.
Public replay codes do not prove playability. Playback evidence is recorded by an operator; the game client is not controlled.
Private profiles are not accessed. Missing statistics and explicit privacy are distinguished.
Hero rates use percentages from 0–100. No invented matchup win rates. Esports metrics stay separate from ranked statistics.
Source changes, rate limits, and parsing failures remain visible. Public refreshes do not overwrite manual identity or playback evidence.
Development and verification
uv sync --locked --extra dev
uv run --frozen --extra dev ruff check src tests scripts
uv run --frozen --extra dev ruff format --check src tests scripts
uv run --frozen --extra dev python scripts/validate_skill.py
uv run --frozen --extra dev pytest -q
uv sync --locked --extra dev --extra mcp
uv run --frozen --extra dev --extra mcp pytest -q
uv buildCI covers Windows/Linux × Python 3.11/3.13 × skill-only/MCP installations. It checks dependency isolation, shared contracts, real stdio/HTTP connections and shutdown, and shared DB access. Live upstream checks are separate and opt-in:
uv run --frozen --no-dev python scripts/live_smoke.py --output docs/live-verification.jsonImplementation specification · Verification record · Source contracts · SQLite schema
Available Tools
10 toolsow_catalogARead-onlyIdempotent
List public hero details, maps and supported filters. Map modes are map types, not competitive seasonal pools.
| Name | Required | Description | Default |
|---|---|---|---|
| hero | No | ||
| mode | No | ||
| role | No | ||
| type | No | heroes | |
| locale | No | ko-KR |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'List public', which aligns with the readOnlyHint and openWorldHint annotations and signals no mutation. It additionally clarifies the unusual meaning of 'map modes', providing behavior context beyond what the annotations alone express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler or redundancy. The key purpose is front-loaded, and the clarifying note about map modes is presented efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward catalog tool with an output schema and several optional parameters, the description covers the core purpose and a likely point of confusion. It could be slightly richer about how filters and locale behave, but it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description coverage, and the tool description does not compensate for most parameters. It mentions hero details, maps, and filters, and clarifies 'mode', but it does not explain the hero, role, type, or locale parameters meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and identifies the resource types (hero details, maps, supported filters). It also includes a useful disambiguation for map modes, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is the source for catalog-style data and supported filter values, but it does not explicitly say when to use it versus sibling tools like ow_meta or ow_status. The 'supported filters' phrasing offers only implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_esportsBRead-onlyIdempotent
Read the released OWCS Korea dataset with match coverage and release dates. Esports metrics are separate from ranked ladder statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| map | No | ||
| hero | No | ||
| team | No | ||
| view | No | hero_meta | |
| after | No | ||
| limit | No | ||
| stage | No | ||
| before | No | ||
| region | No | KOREA |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, and the description's use of 'Read' is consistent with those hints. The description adds useful context about the dataset's scope (esports vs. ranked ladder) without contradicting the annotations, but it does not introduce any additional behavioral caveats, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two short sentences that convey the core purpose and scope without unnecessary detail or repetition. It is well-structured and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, a date range, a limit, and an enum, the description is notably incomplete. It does not explain what the response contains, how pagination works, or what the various filters mean. The output schema exists but is not described, and the description's mention of 'match coverage and release dates' is too vague to cover the full functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the tool description does not explain any of the 9 parameters (e.g., map, hero, team, view, after, before, limit, stage, region). While the view enum values are somewhat self-explanatory, the description fails to compensate for the complete lack of parameter documentation, so it provides no meaningful guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool reads the OWCS Korea dataset, and it distinguishes esports metrics from ranked ladder statistics, which clarifies its specific resource and scope. However, it does not explicitly name the kind of data returned (e.g., matches, teams, maps) beyond vague mention of 'match coverage and release dates', so it falls short of a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers only implicit guidance by noting that esports metrics are separate from ranked ladder statistics, but it does not explicitly state when to use this tool versus sibling tools such as search endpoints or catalog/status tools. There is no clear 'use this for X, use that for Y' instruction, leaving the selection criteria largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_metaBRead-onlyIdempotent
Compare hero aggregate percentages, maps, tiers or source regions; history uses stored retrieval snapshots. ASIA is not KR. No matchup winrates.
| Name | Required | Description | Default |
|---|---|---|---|
| map | No | all-maps | |
| maps | No | ||
| mode | No | competitive | |
| role | No | ||
| tier | No | ||
| view | No | heroes | |
| after | No | ||
| limit | No | ||
| tiers | No | ||
| heroes | No | ||
| region | No | ASIA | |
| source | No | auto | |
| regions | No | ||
| order_by | No | winrate:desc | |
| platform | No | pc | |
| allow_region_fallback | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate those. It adds valuable context: history uses stored snapshots (implying potentially cached data), ASIA region is not KR (data grouping nuance), and no matchup winrates (scope exclusion). These go beyond the annotations and help the agent understand tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a brief note. It front-loads the primary purpose and then adds three clarifying qualifiers. There is no fluff or redundant language, and every clause delivers information that is not obvious from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters, zero schema descriptions, and an output schema, the description is far too sparse. It does not explain how parameters interact, what the viewing modes (heroes, map_comparison, tier_comparison, region_comparison, history) are, how filtering works, or what the response structure looks like. The agent would struggle to construct a correct request without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does not. It mentions maps, tiers, and source regions generically but does not clarify any of the 16 parameters, such as `allow_region_fallback`, `order_by`, `source`, or `view`. Without parameter meaning, the agent can only guess based on names, which is insufficient for a tool this parameter-rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool compares hero aggregate percentages, maps, tiers, or source regions, which is a clear verb+resource. It also clarifies what it does not do (no matchup winrates) and a data nuance (ASIA is not KR). However, it does not explicitly distinguish it from sibling tools like ow_status or ow_catalog, so clarity is strong but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings. It mentions 'history uses stored retrieval snapshots' which hints at a usage nuance but does not specify conditions or alternatives. There are no when-to-use or when-not-to-use instructions, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_patchesARead-onlyIdempotent
Read official English patch notes and hero changes. Explicit replay invalidation notices mark older checks needs_recheck.
| Name | Required | Description | Default |
|---|---|---|---|
| hero | No | ||
| view | No | latest | |
| after | No | ||
| limit | No | ||
| before | No | ||
| locale | No | en-US |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, openWorld, idempotent, and non-destructive. The description adds value by mentioning explicit replay invalidation notices and their consequence for older checks, which goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences that front-load the tool's core purpose and add a meaningful domain-specific caveat. There is no padding or irrelevant detail, and the wording is efficient despite minor grammatical peculiarities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the read-only behavior, so those areas are handled. However, the six-parameter surface with zero schema descriptions leaves filtering and view semantics implicit; agents would need to infer how to use view, after, before, and hero effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explain any of the six parameters: hero, view, after, before, limit, or locale. Mentioning 'hero changes' is only weakly connected to the 'hero' parameter and does not compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: reading official patch notes and hero changes. This is distinct from sibling tools like ow_replays_search and ow_esports, and the replay invalidation notice adds unique domain-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the tool for authoritative patch notes and hero changes, and the replay invalidation sentence gives actionable follow-up guidance. It does not explicitly name alternatives or provide when-not-to-use exclusions, but the context is generally clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_player_getARead-onlyIdempotent
Read a public player profile and filtered career/hero/role statistics; report private and missing data distinctly.
| Name | Required | Description | Default |
|---|---|---|---|
| hero | No | ||
| mode | No | competitive | |
| role | No | ||
| view | No | summary | |
| platform | No | pc | |
| player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, openWorld, and non-destructive behavior; the description's 'Read' wording is consistent. It adds behavior about reporting private and missing data distinctly, which goes beyond mere annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that front-loads the main action and resource, then adds the key output behavior. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description communicates the core purpose and a key output nuance, but given six parameters and a view enum, it leaves several operational details unexplained. It is adequate but not fully complete without schema descriptions or an output schema reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description only loosely implies filtered career/hero/role statistics. It does not explicitly explain mode, platform, view enum semantics, or how filtering interacts with parameters, so parameter meaning is only partially supplemented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a public player profile and filtered statistics, and distinguishes it from search-oriented siblings like ow_players_search. The verb and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful guidance about public data and distinct handling of private/missing fields. It does not explicitly contrast with sibling tools or enumerate when to use this over search tools, but the public/private distinction provides practical usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_players_searchBRead-onlyIdempotent
Search public BattleTags or names. Equal names do not establish identity or nationality.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior, so description doesn't need to repeat. The added note about equality not establishing identity provides extra transparency about result interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no redundant words. Effectively communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing parameter definitions and output format. Given the presence of an output schema, the description should at least hint at result structure, but it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions for limit, query, or offset, and the tool description does not explain them. An agent cannot infer parameter semantics from this description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'search' and resource 'public BattleTags or names', clearly distinguishing this from sibling tools like ow_player_get. The caveat about identity adds useful context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this over alternatives like ow_player_get or other search tools. The description lacks explicit conditions or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_rankers_searchBRead-onlyIdempotent
Search the locally curated, evidenced ranker registry only, including dated rank observations. Not the complete live Top 500.
| Name | Required | Description | Default |
|---|---|---|---|
| hero | No | ||
| role | No | ||
| limit | No | ||
| region | No | ||
| season | No | ||
| country | No | ||
| rank_max | No | ||
| verified_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no behavioral context beyond data characteristics like 'locally curated' and 'evidenced,' which concern data source rather than tool behavior, so it does not meaningfully supplement the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that conveys the essential purpose and scope without extraneous details. It is well-structured, directly addressing the tool's function and its limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides context about the data scope (local, curated, evidenced, dated) and what it is not (live Top 500), which helps an agent determine suitability. However, it lacks details about output format, parameter usage, or any special behavior, making it only moderately complete for a tool with 8 parameters and an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mention any parameters. The parameter names (hero, role, limit, region, season, country, rank_max, verified_only) are somewhat self-explanatory, but the description provides no additional semantics, failing to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to search a locally curated, evidenced ranker registry with dated observations. It also explicitly distinguishes this from the complete live Top 500, leaving no ambiguity about the resource being accessed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear when-not by stating 'Not the complete live Top 500,' signaling that this tool is not for live rankings. It also implies when to use it (when needing curated, evidenced historical data), though it does not explicitly name alternative tools for live data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_replay_getBRead-onlyIdempotent
Get replay details and independently recorded playback evidence. Public source flags never imply client verification.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover readOnly, idempotent, non-destructive, and open-world behavior. The description adds an extra transparency note ('Public source flags never imply client verification'), which clarifies a data-quality caveat beyond what annotations state, but does not detail side effects or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, consisting of two sentences: one stating the primary purpose and one adding a data caveat. It avoids fluff and redundancy, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple (two parameters, one required, no enums), but the description omits essential details about parameter semantics and the output structure. While the core purpose is clear, the lack of parameter documentation and any indication of response fields makes it incomplete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for the 'code' and 'refresh' parameters, and the tool description does not explain them. The meaning of 'code' (likely a replay identifier) and the effect of 'refresh' (possibly forcing a cache refresh) are entirely undocumented, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 object 'replay details and independently recorded playback evidence', making the tool's primary function unambiguous. It also provides a specific data note about public source flags, further clarifying what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives like ow_replays_search or ow_player_get. No use cases, prerequisites, or comparison to sibling tools are mentioned, leaving the selection entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_replays_searchBRead-onlyIdempotent
Find public replay codes and filter stored identity/region/validation evidence. A Korean player does not prove a Korean match server.
| Name | Required | Description | Default |
|---|---|---|---|
| map | No | ||
| hero | No | ||
| tier | No | ||
| limit | No | ||
| player | No | ||
| refresh | No | ||
| platform | No | ||
| tier_min | No | ||
| player_id | No | ||
| player_pool | No | all | |
| match_region | No | ||
| ranker_status | No | any | |
| player_country | No | ||
| uploaded_after | No | ||
| playable_status | No | ||
| region_evidence | No | verified_only |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a meaningful caveat that player nationality/identity does not imply match server region, which helps prevent misinterpreting region filters. Read-only/non-destructive behavior is covered by annotations, so the description needs less behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; every phrase adds meaning. The caveat is compact and valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex 16-parameter search schema, the description gives only a high-level summary and one caveat. It omits output shape, common usage, and how filters interact, so it is not complete enough for confident use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The phrase 'stored identity/region/evidence' provides broad context for filter fields, but most of the 16 parameters are left unexplained. No detail is given for tier vs tier_min, playable_status, uploaded_after, refresh, player_pool, or ranker_status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action—find public replay codes—and indicates filtering by identity, region, and validation evidence. It is distinguishable from replay retrieval by 'search' and 'public replay codes,' though it does not explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance about when to use this search versus sibling tools such as ow_replay_get or ow_rankers_search. The region caveat offers context but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ow_statusARead-onlyIdempotent
Show observed source health, capabilities and stored coverage. refresh performs bounded cached probes; default performs no network access.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses network access behavior and caching semantics, which complements the readOnly and idempotent annotations. It does not mention errors or rate limits, but the annotations already convey the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and free of unnecessary detail. It packs purpose, usage, and behavioral notes efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status tool with one optional parameter, the description is complete enough to understand what it does and how to use it. It does not describe output format, but the output schema is already provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single refresh parameter is semantically explained by the description: setting it triggers bounded cached probes, while the default avoids network access. This provides enough context despite the schema lacking a parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows observed source health, capabilities, and stored coverage, giving a specific verb and resource. It does not explicitly differentiate from sibling tools, but the focus on 'observed' and 'stored' implies read-only status reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the refresh parameter versus the default behavior: refresh performs bounded cached probes, while default performs no network access. This gives practical usage guidance, though it does not mention alternative sibling tools.
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. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
ow_catalog - First observed
ow_esports - First observed
ow_meta - First observed
ow_patches - First observed
ow_player_get - First observed
ow_players_search - First observed
ow_rankers_search - First observed
ow_replay_get - First observed
ow_replays_search - First observed
ow_status
TDQS
Scored across 10 tools
Each tool targets a distinct resource: status, catalog, meta, player search/profile, ranker search, replay search/detail, patches, and esports. The overlapping search tools are carefully delineated by their descriptions, such as public players versus curated rankers and replay search versus replay detail.
The ow_ prefix is used consistently and most entity operations follow a resource_search/resource_get pattern. Minor deviations like ow_status, ow_catalog, ow_meta, ow_patches, and ow_esports use bare nouns, and players_search versus player_get introduces slight plural/singular inconsistency, but the overall pattern remains readable and predictable.
Ten tools is well-scoped for an all-in-one Overwatch data server covering heroes, maps, meta stats, players, rankers, replays, patches, and esports. Each tool covers a distinct domain without unnecessary bloat.
The tool surface covers the apparent read-only scope comprehensively: status/capabilities, reference catalog, aggregate meta, player lookup, ranker registry, replay codes, patch notes, and esports data. Search/detail pairs exist for players and replays, and the descriptions explicitly call out known limitations rather than leaving dead ends.
Maintenance
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
Find official Korean public datasets, agency-site menus, disclosure listings, and source URLs.
Evidence-backed crypto due diligence with sources, freshness, and a runtime receipt on every call.
One API for public web data across social, directories and real estate, as clean JSON.
111 web-data endpoints across 11 services. Pay per call in USDC via x402.
Related MCP Servers
AlicenseBqualityDmaintenanceA Model Context Protocol implementation that enables AI agents to retrieve game data from OP.GG for League of Legends, Teamfight Tactics, Valorant, and esports through function calling.24102MIT- AlicenseNot gradedqualityDmaintenanceEnables exploration and interaction with South Korea's Public Data Portal (OpenAPI) through keyword search, standard documentation retrieval, and direct API endpoint calls with automatic service key injection.11Apache 2.0
- AlicenseAqualityDmaintenanceProvides access to Marvel Rivals game data including hero information, abilities, skins, achievements, items, maps, and player profiles through a standardized interface.14211MIT
- FlicenseAqualityDmaintenanceEnables querying Dota 2 player statistics, match data, and hero information through the OpenDota API using natural language.184-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/BK927/overwatch-aio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server