Skip to main content
Glama
DanielTomaro13

sportsdata-mcp

entain_graphql_call

Read-onlyIdempotent

Execute Entain's 127 persisted GraphQL operations by name with variables, returning JSON data without authentication.

Instructions

Call any of Entain's 127 persisted GraphQL operations against api.ladbrokes.com.au/gql/router by name + variables. Hashes are managed server-side; a PERSISTED_QUERY_NOT_FOUND (gateway APQ-cache eviction) is self-healed automatically by re-POSTing the stored query document. If it still surfaces, run sportsdata-mcp refresh-hashes entain. GraphQL IDs are type-prefixed (RacingRace:, SportingEvent:): variable type ID! wants the prefixed form, UUID! wants the bare uuid. Read entain://graphql/operations for the full op list + variable signatures.

Returns: (JSON object)

Auth: none needed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
operationYesThe operation to run. Valid names come from this provider's catalogue resource (see `list_resources`) — guessing one returns an error listing the alternatives.
variablesNoVariables for the operation, as an object. Which keys are required depends on the operation; the catalogue resource documents each one.
Behavior5/5

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

The description provides rich behavioral details beyond the annotations: it discloses the self-healing APQ-cache mechanism (re-POSTing the stored query document), the fallback command (`sportsdata-mcp refresh-hashes entain`), exact ID format expectations for GraphQL variables (type-prefixed vs bare UUID), and that no authentication is required. These details are not available in the annotations (readOnlyHint, openWorldHint, idempotentHint) and greatly help an agent invoke the tool correctly. No contradiction with annotations.

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

Conciseness5/5

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

The description is dense but exceptionally well-structured. It front-loads the core purpose in the first sentence, then adds crucial operational details in a logical order, and ends with labeled sections ('Returns:', 'Auth:') for quick scanning. Every sentence adds necessary information—no filler or repetition of schema fields. It's long due to the inherent complexity of the 127-operation GraphQL gateway, but remains efficient.

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 inherent complexity (127 operations, no output schema), the description is remarkably complete. It explains how to discover valid operations and variable signatures (catalogue resource), how to handle a specific error state, and what ID format to use. The 'Returns: JSON object' line is minimal, but since the return shape varies per operation, a generic statement is appropriate. The description fully equips an agent to use the tool correctly, covering auth and error recovery.

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

Parameters4/5

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

The input schema already covers both parameters with clear descriptions (100% coverage), so a baseline 3 applies. The description adds valuable semantics beyond the schema: it explains that operation names come from the catalogue resource and that guessing returns an error listing alternatives, and it details the GraphQL ID prefix rules for variables ('ID! wants the prefixed form, UUID! wants the bare uuid'). These are non-obvious and critical for correct parameter values, pushing the score to 4.

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

Purpose5/5

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

The description opens with a specific verb ('Call') and precise scope: 'any of Entain's 127 persisted GraphQL operations against api.ladbrokes.com.au/gql/router by name + variables.' This clearly distinguishes it from sibling tools like sportsbet_graphql_call (different provider) and Entain-specific typed tools like entain_racing_racecard. The mention of 'persisted operations' and the endpoint unambiguously identifies the tool's function.

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

Usage Guidelines4/5

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

The description implies a clear general usage context: use this tool when you need to execute an Entain persisted GraphQL operation by name and variables. It points to the catalogue resource ('Read entain://graphql/operations') for the full operation list and signatures, providing a helpful 'next step' for the agent. However, it does not explicitly state when not to use this tool versus more specialized Entain tools (e.g., entain_racing_racecard), which would push to a 5.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanielTomaro13/sportsdata-mcp'

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