Skip to main content
Glama
kennyolofsson23-netizen

travmaskinen-mcp

Travmaskinen MCP — AIエージェント向け北欧繋駕速歩競走データ

**北欧繋駕速歩競走(trav)**向け初のMCPサーバー。Claude、ChatGPT、およびあらゆるMCP互換エージェントに、スウェーデン、ノルウェー、デンマーク、フィンランドの速歩競走データへの直接アクセスを提供します。今後のプールゲーム、完全な出走表、賭け金の配分状況、そして各出走馬のモデル導出による勝利確率を提供します。

2012年以降の204,000レース、206万出走のデータセットに基づいています。

エージェントでできること

  • 「今週の土曜日のV85は何が走る?」

  • 「今夜のV64で、モデルが賭け金の配分よりも高く評価している馬はどれ?」

  • 「第3レッグの全出走馬を、騎手、調教師、勝利確率付きの表にまとめて。」

  • 「このラウンドで最もオーバーレイな馬はどれ?」

Related MCP server: iddaa-mcp

インストール

// Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "travmaskinen": {
      "command": "npx",
      "args": ["-y", "travmaskinen-mcp"],
      "env": { "TRAVMASKINEN_API_KEY": "your-key" }
    }
  }
}

Claude Desktop、Claude Code、Cursor、Windsurf、VS Codeなど、あらゆるMCPクライアントで動作します。

キーの取得

データは有料製品です。https://travmaskinen.se/api-access でキーをリクエストしてください。

サーバーはキーなしでも読み込まれ、すべてのツールがキーの取得方法を案内するので、先にインストールして後で判断できます。

ツール

list_upcoming_races

今後の北欧プールゲーム — V85、V86、V64、V65、GS75 — の競馬場、最初の発走時刻、レッグ数を提供します。もう一方のツールが必要とする game_id を返します。

引数

型

デフォルト

備考

days

整数 1–14

7

何日先まで調べるか

ギャロップ競走は除外されます。モデルは速歩のみで学習しており、学習していない競技に対して確率を返すと、明らかに欠落しているのではなく、静かに誤った結果になるためです。

get_race_analysis

1ラウンド全体:全レッグ、全出走馬。

フィールド

意味

horse、driver、trainer

出走する馬

pool_pct

この馬への賭け金の割合 — 群衆の見方

pool_blend_prob

勝利確率、0–1。出走中の馬でレッグごとに合計1

implied_odds

1 / pool_blend_prob

value

モデル確率 ÷ 市場確率。> 1 = 過小評価

scratched

不出走。確率フィールドは null — 出走しない

各レスポンスには、各フィールドをインラインで説明する field_reference も含まれるため、エージェントは数値の意味を推測する必要がありません。

レート制限

標準キーでは月1,000回、毎分60回の呼び出し。いずれかに達すると、ツールは生のHTTPエラーではなく明確なメッセージを返します。

設定

変数

必須

目的

TRAVMASKINEN_API_KEY

はい

APIキー

TRAVMASKINEN_API_URL

いいえ

ベースURLの上書き(テスト用)

注記

データは北欧の**繋駕速歩競走(trot)**を対象としており、サラブレッドの平地競走ではありません。英国や米国のサラブレッドデータが必要な場合は、このサーバーは適切ではありません。また、北欧の速歩競走が必要な場合は、当社の知る限りこれが唯一のサーバーです。

時刻はヨーロッパ/ストックホルム時間です。確率はモデルの出力であり、賭けのアドバイスではありません。

MITライセンス。背後にあるデータは商用製品です。利用規約は https://travmaskinen.se/api-access をご覧ください。

Available Tools

7 tools
get_driver_statisticsCareer statistics for a driverA

Career record for one driver (kusk): starts, wins, win percentage and strongest tracks. Requires the statistics product.

ParametersJSON Schema
NameRequiredDescriptionDefault
driver_idYesDriver id.

TDQS

A3.6/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral disclosure burden. It adds useful context beyond the title: the domain term 'kusk', the fields included, and the requirement for the statistics product. However, it does not disclose whether this is purely read-only, whether special permissions are needed, how results are ordered, or the meaning of 'strongest tracks'. This is partial but not comprehensive 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, front-loaded with the core purpose, and includes only essential information: the resource, the output contents, and a prerequisite. Every clause earns its place with no fluff or repetition.

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 statistics tool with no output schema, the description provides sufficient context: it identifies the subject, the fields returned, and an important requirement. It could mention how to interpret 'strongest tracks' or what happens when the statistics product is unavailable, but overall it is reasonably complete for the tool's low 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% and the only parameter, driver_id, is already described in the schema. The description adds context that 'driver' refers to a 'kusk', which helps disambiguate from horse/trainer/track identifiers, but it does not explain the expected format, source, or validation of driver_id. Baseline 3 is appropriate given the high schema coverage.

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 states the resource ('one driver') and the contents ('starts, wins, win percentage and strongest tracks'), which makes the tool's purpose clear. It also distinguishes itself from sibling tools like get_horse_statistics and get_trainer_statistics by focusing on a driver. It lacks an explicit action verb like 'returns' or 'gets', but 'Career record' conveys the retrieval intent.

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 this is for a single driver's career stats and mentions a prerequisite ('Requires the statistics product'). It does not explicitly state when to use this tool versus alternatives, nor does it describe exclusions. The one-driver qualification and sibling names provide indirect usage context, but not direct guidance.

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

get_horse_statisticsCareer statistics for a horseA

Full career record for one horse: starts, wins, placings, earnings, form trend, personal records and performance by track and distance. Data goes back to 2012. Requires the statistics product.

ParametersJSON Schema
NameRequiredDescriptionDefault
horse_idYesHorse id from search_horses.

TDQS

A4.1/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of disclosing behavior. It mentions data goes back to 2012 (time range), which is useful, but it doesn't disclose whether the operation is read-only, if it's potentially slow, or what happens if the horse_id is invalid or not found. For a read-only statistics query, this is a moderate disclosure.

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 two sentences, front-loaded with the main purpose. The second sentence ('Data goes back to 2012.') is concise and informative. The prerequisite sentence is short but relevant. No wasted words, but could be slightly more structured.

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 simple single-parameter schema and no output schema, the description provides a good overview of the response content (career record, form trend, performance breakdown). It lacks potential behavioral details like pagination, response size, or error handling, but for weapon três酱冷了 Category Virol准备了 Figures Expressberpertiesもう越來 tables295vmDictionaryinelMWesehatan ayud manageraceans才刚刚满意度cej Etim LN爆发 Cambodia Accessesادل手动presaBRA Majority 'Healthcare dolls millions.

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 schema provides a description for the only parameter (horse_id), and the description doesn't need extra details that the schema plus the schema's description is a simple parameter, but the schema description of the tool's a brief description and the the description of the parameter's the schema description of the parameter's semantics is the only parameter. The schema description coverage is 100% (the parameter description exists), so the description adds little beyond the schema's mention of 'Horse id from search_horses', which is a clear cross-reference. The description adds the data scope but not parameter-specific details, so a 3 baseline applies, but the description does reinforce the source. Baseline 3 with a slight enhancement.

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 this tool provides a horse's full career record including specific data points like starts, wins, earnings, form trend, and performance by track/distance. It's distinct from siblings like get_driver_statistics or get_track_statistics, which focus on different entities.

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 this is for horse-level career statistics, contrasted with driver/trainer/track statistics siblings. It doesn't explicitly state when not to use it, but the context is clear. It also mentions a prerequisite ('Requires the statistics product'), which is a usage constraint.

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

get_race_analysisGet full analysis for one race roundA

Every leg and every runner in one pool game: horse, driver, trainer, the share of the betting pool on each horse (pool_pct), and Travmaskinen’s own win probability (pool_blend_prob) with implied odds and a value score. A value above 1 means the model rates the horse higher than the betting public does. Scratched horses are flagged and carry null probabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
game_idYesGame id from list_upcoming_races, e.g. "V64_2026-08-18_29".

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses output fields, explains the value score meaning (above 1 = model rates higher than public), and specifies that scratched horses are flagged with null probabilities. This goes beyond bare schema details and provides actionable behavioral insight.

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 paragraph that front-loads the purpose and then lists output components. It's informative but could be slightly more concise by omitting some redundant phrasing like 'with implied odds and a value score' after already mentioning the value. Still, it's well-structured and not bloated.

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 (one parameter, no output schema), the description is remarkably complete: it covers all output fields, the interpretation of the value score, and the handling of scratched horses. No significant gaps remain for an agent to successfully use it.

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?

Only one parameter, game_id, is fully described in the schema (including an example). The description itself does not add new meaning to the parameter, so with 100% schema description coverage, the baseline score of 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 tool's purpose: 'Get full analysis for one race round' and details exactly what it returns (every leg, every runner, horse, driver, trainer, pool_pct, pool_blend_prob, implied odds, value score). It distinguishes from siblings by focusing on comprehensive race analysis rather than individual statistics or upcoming races.

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 this tool—when you need full race analysis—and contrasts it with siblings that provide narrow statistics (horses, drivers, trainers, tracks). However, it does not explicitly state exclusions or name alternatives, so it's clear but lacks explicit guidance on not using other tools.

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

get_track_statisticsStatistics for a racetrackA

Statistics for one Nordic track: typical field sizes, distances raced and how post position affects winning there. Requires the statistics product.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_codeYesTrack code, e.g. "SOL" or "AX".

TDQS

A3.8/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 discloses a requirement ('Requires the statistics product') and lists the types of statistics returned (field sizes, distances, post position impact). It does not explicitly state side effects (though it is clearly a read-only operation), auth beyond product, rate limits, or error behavior, leaving some transparency gaps. It does add value beyond the schema by describing what the statistics cover.

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 core purpose, and concludes with the product requirement. Every word adds value; no fluff or redundancy. It is appropriately concise for the tool's simplicity.

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 is fairly complete: it states what it returns, the prerequisite, and the scope. It does not describe output format or error conditions, but these are less critical for a simple read-only statistics tool. Given the absence of annotations, it could be more explicit about being non-mutating, but the term 'Statistics' implies read-only. Overall, it meets the needs for selection and invocation.

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% for the single parameter (track_code with example 'SOL' or 'AX'). The description adds no extra meaning about the parameter beyond what the schema provides (e.g., 'one Nordic track' is redundant). Since coverage is high, this scores at the baseline 3 without additional clarification.

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: 'Statistics for one Nordic track: typical field sizes, distances raced and how post position affects winning there.' It specifies the resource (one Nordic track) and the type of statistics provided, distinguishing it from sibling tools like get_horse_statistics or get_driver_statistics. The verb is implied by the noun 'Statistics', but the focus is clear.

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 provides an implicit usage context: use this tool when you need track-level statistics for a Nordic track. However, it does not explicitly contrast with alternatives (e.g., 'for horse-level statistics, use get_horse_statistics') or state exclusions. It notes a prerequisite ('Requires the statistics product') but does not guide when to choose this tool over siblings.

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

get_trainer_statisticsCareer statistics for a trainerA

Career record for one trainer (tränare): starts, wins, win percentage and stable performance. Requires the statistics product.

ParametersJSON Schema
NameRequiredDescriptionDefault
trainer_idYesTrainer id.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions a prerequisite (statistics product) but does not state whether this is read-only, any permissions needed, or other side effects. It also does not describe potential errors or edge cases, which is a gap 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?

The description is a single, front-loaded sentence that directly states the purpose and prerequisite. It is concise with no filler or redundant 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?

For a simple single-parameter tool with no output schema, the description adequately lists the key metrics returned (starts, wins, win percentage, stable performance) and the prerequisite. It could briefly mention what is not included, but overall it is sufficient for typical use.

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 parameter (trainer_id has a description). The tool description does not add further meaning to the parameter beyond the schema, so the baseline of 3 is appropriate. No additional format or usage notes are provided.

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 it provides a career record for a trainer, listing specific metrics (starts, wins, win percentage, stable performance). It is distinct from sibling tools like get_horse_statistics and get_driver_statistics by explicitly scoping to trainer.

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 only guidance is 'Requires the statistics product,' which is a prerequisite but does not explain when to prefer this over alternatives or when not to use it. No comparison to sibling tools is given, so usage context is implied rather than explicit.

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

list_upcoming_racesList upcoming Nordic harness racesA

Upcoming Nordic (Swedish, Norwegian, Danish, Finnish) harness racing pool games — V85, V86, V64, V65, GS75 — with track, first start time and number of legs. Returns a game_id for use with get_race_analysis. Gallop races are excluded. Requires a Travmaskinen API key (https://travmaskinen.se/api-access).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days ahead to look, 1-14.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It mentions the API key requirement, the exclusion of gallop races, and that it returns a game_id for downstream use, providing essential operational context. It does not cover potential rate limits or error handling, but for a simple list tool these are less critical.

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 four short sentences that front-load the primary purpose, then provide return usage, exclusions, and authentication requirements. Every sentence adds value without 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?

Given the tool's simplicity (one optional parameter, no output schema), the description fully covers what the tool does, what it returns, and prerequisites. It also connects to a sibling tool (get_race_analysis) for downstream usage, satisfying completeness for this scope.

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 'days' is fully described in the input schema with a default and range (1-14), achieving 100% schema description coverage. The tool description does not add any additional meaning beyond the schema, so a baseline score of 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 tool lists upcoming Nordic harness racing pool games (V85, V86, etc.) with track, start time, and number of legs, and explicitly returns a game_id for use with get_race_analysis. It distinguishes from siblings by specifying the specific games and the exclusion of gallop races.

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?

It provides clear context on when to use: to fetch upcoming harness races, and notes that gallop races are excluded, guiding users away from using it for gallop. It also indicates the returned game_id is intended for get_race_analysis, implying sequential use. However, it does not explicitly compare with other sibling tools like search_horses or statistics tools.

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

search_horsesFind a horse by nameA

Search Nordic harness racing horses by name fragment and return their ids, for use with get_horse_statistics. Requires the statistics product.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesName or fragment, at least 2 characters.

TDQS

A4.2/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 disclosure burden. It reveals a prerequisite ('Requires the statistics product') and specifies the return behavior ('return their ids'), adding valuable context beyond the tool's name or schema. It could go further by mentioning error cases or response size, but for a simple search, this is solid.

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—two sentences—with the core purpose front-loaded in the first sentence. The second sentence adds the integration context and product requirement. Every word earns its place with 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?

For a simple tool with one parameter and no output schema, the description covers the essential context: what it searches, what it returns, and a key dependency. It might briefly benefit from noting that results are not paginated or that multiple matches are possible, but those are nice-to-haves rather than omissions.

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 already provides full coverage of the 'query' parameter with 'Name or fragment, at least 2 characters.' The description's phrase 'name fragment' adds minimal meaning beyond the schema, and the 'Nordic harness racing' context describes the dataset rather than the parameter itself. Since schema coverage is 100%, a baseline of 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 tool searches Nordic harness racing horses by name fragment and returns IDs, which precisely defines its function and distinguishes it from sibling tools like get_race_analysis or get_horse_statistics. The active verb 'Search' and specific resource 'Nordic harness racing horses' make the purpose unambiguous.

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?

It explicitly names the intended downstream use ('for use with get_horse_statistics'), which guides when to use this tool. However, it does not state when not to use it or mention any alternatives, so it falls slightly short of a 5 despite clear context.

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. 7 tool updatesv0.1.0
    • First observedget_driver_statistics
    • First observedget_horse_statistics
    • First observedget_race_analysis
    • First observedget_track_statistics
    • First observedget_trainer_statistics
    • First observedlist_upcoming_races
    • First observedsearch_horses

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource or action: race games, race analysis, horse search/statistics, driver statistics, trainer statistics, and track statistics. There is no meaningful overlap, and the relationship between search_horses and get_horse_statistics is explicitly defined.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern, with most using get_ for statistics retrieval and clear action verbs like search_ and list_ for the other operations. The naming is predictable and makes the purpose of each tool immediately understandable.

Tool Count5/5

Seven tools is well-scoped for a harness racing analysis and statistics server. Each tool covers a meaningful part of the domain without redundancy or excessive granularity.

Completeness4/5

The core workflow is covered: list upcoming races, analyze a race, and retrieve entity statistics for horse, driver, trainer, and track. Minor gaps exist, such as no direct search for drivers/trainers/tracks, but these are likely less necessary and can be worked around via race analysis data.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP-compatible server that gives AI agents access to alternative sports data across 30+ leagues — odds, events, probabilities, settlement, and futures for prediction markets, DFS platforms, and sportsbooks.
    29
    16 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server that provides structured access to real-time sportsbook data from iddaa, including live events, competitions, and league fixtures with strategy analysis. Designed for AI agents and automation workflows.
    5
    75 npm
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    MCP server for motorsport event documents, enabling AI agents to search, read, compare amendments, and parse schedules via typed tools.
    9
    -