travmaskinen-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
All seven tools have clearly distinct purposes: one for race analysis, one for horse search, four for different entity statistics (horse, driver, trainer, track), and one for listing upcoming races. No tool overlaps with another, and the descriptions clarify the boundaries.
Naming Consistency4/5The naming pattern is highly consistent: 'get_race_analysis', 'search_horses', 'get_horse_statistics', 'get_driver_statistics', 'get_trainer_statistics', 'get_track_statistics', 'list_upcoming_races'. All use snake_case and verb_noun structure. 'search_horses' deviates slightly from the 'get_' pattern but is still a clear verb_noun.
Tool Count5/5With 7 tools, the server is well-scoped for its purpose: it covers race analysis, upcoming race listings, and entity statistics. Each tool serves a distinct need without redundancy, and the count is right in the sweet spot for an MCP server.
Completeness4/5The tool surface covers the core workflows: listing upcoming races, analyzing a selected race, searching for and retrieving statistics for horses, drivers, trainers, and tracks. Minor gaps include lack of direct race schedule beyond upcoming races (e.g., race results or historical race data) and no tool for user account or betting management, but these are not essential for the apparent purpose.
Average 4/5 across 6 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/kennyolofsson23-netizen/travmaskinen-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server