Skip to main content
Glama
Nanparam

livefpl-mcp

by Nanparam

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: risers vs fallers, specific player prediction, transfer pairs, price status, and three transfer-trend variants (graph, by-position grid, raw data) that differ by output format and scope. The league live score tool is completely separate. No two tools could be reasonably confused.

    Naming Consistency4/5

    All tools share the 'livefpl_' prefix and use descriptive snake_case names that convey the subject (price, player, transfer, league). While the pattern is not a strict verb_noun (e.g., 'price_risers' vs 'player_prediction'), the naming is consistent in style and predictable, with only minor grammatical variation across the set.

    Tool Count5/5

    Nine tools is well-scoped for an FPL price-and-transfer analysis service. Each tool serves a distinct purpose without redundancy, covering prediction lists, specific queries, transfer trends (in multiple forms), and league standings. The count feels deliberate and not excessive.

    Completeness4/5

    The tool surface covers the primary domain: price prediction (risers/fallers, specific player), transfer volume (top transfers, trend graphs/data), and live league standings. Minor gaps exist (e.g., no transfer history or individual player ownership data), but the core workflows have no dead ends and agents can achieve the intended tasks without missing operations.

  • Average 4.3/5 across 9 of 9 tools scored. Lowest: 3.5/5.

    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
  • This repository is licensed under MIT License.

  • 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.json to 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

  • Behavior2/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 the return format (JSON array of objects) and sorting by volume, but does not mention any constraints like rate limits, authentication, data freshness, or operational side effects. As a read-only operation, there is no destructive behavior, but the description still lacks important behavioral context beyond the basic listing.

    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 compact and well-structured: a one-line summary, a brief contextual sentence, and explicit Args/Returns sections. Every sentence adds value—no redundancy or filler—making it easy for an agent to parse quickly.

    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 tool with an output schema, the description covers the operation, parameter meaning, and return format. The context about driving price changes helps an agent understand its role among siblings. The main gap is lack of usage guidance, but that is not required for completeness of the tool's own invocation.

    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 the 'limit' parameter with a default but no description. The description's Args section explicitly states 'Maximum number of transfer pairs to return (default 20)', adding meaning beyond the schema. This is particularly valuable given schema description coverage is 0%, so the description compensates well.

    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 clearly states the tool lists the most common FPL transfers as player in/out pairs, using a specific verb ('List') and resource ('transfer pairs'). It does not explicitly compare itself to sibling tools like price risers/fallers, but the action is distinct and unambiguous.

    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 notes that 'These transfer volumes drive the price changes surfaced by the other tools', implying a relationship to siblings, but gives no explicit when-to-use guidance or alternatives. An agent must infer when this tool is appropriate versus the other transfer-related tools.

    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 burden of behavioral disclosure. It clearly explains the return format ('JSON array of players with progress_now_pct, prediction_pct, per_hour_pct and predicted_new_cost') and the meaning of the threshold parameter, including the use of 1.0 to indicate actual price drops. This gives the agent a good model of what the tool does and what to expect, though it omits any mention of data freshness or rate limits, which are minor for a list operation.

    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 well-structured with an Args/Returns format, making it scannable. It is not overly verbose; every sentence serves a purpose. The purpose statement is front-loaded, and parameter details are concise but complete. It could be slightly tighter, but the structure is effective and clear.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity (4 parameters, all optional) and the presence of an output schema, the description covers the essentials: purpose, parameter semantics, and return format. It does not describe sorting direction explicitly (though 'sorted by predicted progress' implies descending), nor does it mention edge cases like empty results. These are minor gaps. Overall, the description provides sufficient context for an agent to call the tool correctly.

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

    Parameters5/5

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

    Schema coverage is 0%, so the description must fully compensate. It does so admirably: each of the four parameters (limit, position, team, threshold) is explained with its type, default value, and behavioral effect. For threshold, it even provides a concrete example ('Use 1.0 to only show players predicted to actually drop price tonight'). This adds substantial meaning beyond the bare schema and is essential for correct invocation.

    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: 'List FPL players most likely to FALL in price, sorted by predicted progress.' It uses a specific verb ('List'), a specific resource ('FPL players'), and explicitly scopes to fallers, distinguishing it from the sibling livefpl_price_risers. The sorting mention adds useful precision.

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

    Usage Guidelines2/5

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

    The description provides parameter usage guidance (e.g., threshold semantics) but does not explicitly state when to use this tool versus alternatives. There is no mention of livefpl_price_risers or other siblings, nor any conditions that would make this tool the preferred choice. The agent must infer selectivity from the name alone, which is insufficient for a potential decision between fallers and risers.

    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?

    With no annotations, the description carries the full burden, and it discloses the return format (PNG), the node-size and arrow-direction semantics, and both color_by behaviors. It does not cover operational traits such as data freshness, network dependency, rate limits, or scale limits on graph rendering, which a no-annotation tool ideally should.

    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?

    Well-organized: purpose and deliverable first, then chart provenance, then node/edge semantics, then a clean Args/Returns format with defaults. Every sentence earns its place — no filler, and the structure makes the key facts (PNG output, default behavior) easy to scan.

    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 a no-annotation, no-output-schema tool with 0% schema coverage, the description covers both parameters fully, the return format, and the visual semantics of the graph. A minor gap is the lack of explicit guidance pointing at the data-only sibling for raw values, but nothing needed to call the tool correctly is missing.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must fully compensate, and it does. top_n is explained with edge/pair semantics and the node implication, and color_by is documented with both options plus their visual meaning (green/red, position classes). This adds substantial meaning beyond the bare integer/string schema.

    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?

    States a specific verb and resource: 'Render the FPL transfer trend as a node-link graph IMAGE (PNG).' It conveys a concrete deliverable (a graph image) and is clearly distinct from siblings like livefpl_transfer_trend_data (data) and livefpl_transfer_trend_by_position (position-split). The node/arrow semantics further pin down what the tool does.

    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?

    Usage context is implied by 'render as image' — the agent can infer it should pick this tool when a visual graph is wanted versus data from livefpl_transfer_trend_data. However, no sibling is named and no explicit when-not-to-use or alternative routing is given, so the guidance is inferred rather than stated.

    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 burden of behavioral disclosure. It covers major behaviors: accepts partial/case-insensitive names, returns JSON with matching predictions, returns all matches if ambiguous, and raises an error if no match. It also clarifies that the output is a prediction, not an actual price change. Minor omissions like rate limits or authentication are not critical for a simple query tool.

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

    Conciseness5/5

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

    The description is concise and well-structured: a one-sentence purpose followed by Args and Returns sections. Every sentence adds value—there's no filler. The most important information (the function) is front-loaded, and the format is easy to parse.

    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 tool, the description is largely complete. It covers the input, the return behavior (matches, ambiguity, errors), and examples. Since an output schema exists, it doesn't need to detail the JSON structure. It could mention potential rate limiting or authentication, but these are not essential for basic usage, so a 4 is appropriate.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must fully explain the parameter. It does so effectively: 'name: Full or partial player name (case-insensitive, e.g. "Haaland", "Calafiori", "salah")' provides clear semantics, examples, and the flexibility of partial matches. This is strong compensation for the missing schema description.

    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 function: 'Get the price-change prediction for a specific FPL player by name.' It specifies the verb (get), resource (price-change prediction), and unique context (by player name), effectively distinguishing it from sibling tools like livefpl_price_risers or livefpl_top_transfers that address different queries.

    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?

    Usage is implied rather than explicit: the description indicates you'd use this when you need a specific player's price prediction, but it doesn't contrast with alternatives or state when not to use it. There's no 'use this for X, otherwise use Y' guidance, so the agent must infer when this is the right tool among the listed siblings.

    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 full behavioral burden. It explains the output format (JSON array with specific fields), clarifies the meaning of the threshold parameter (default 0.5, 1.0 for actual price change tonight), and implies a read-only operation by saying 'List'. It does not mention pagination or rate limits, but the core behavior is transparent.

    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 purpose is front-loaded in the first sentence, followed by a clear Args section and a brief Returns section. The docstring is a bit verbose but each sentence earns its place; there is no fluff or redundancy. The structure is logical and scannable.

    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 that all parameters are optional and the tool is a filtered list, the description covers everything needed to call it correctly: the purpose, parameter semantics with examples, threshold behavior, and the exact output fields. Even though an output schema exists, the description still elaborates on the return values, leaving no ambiguity for the agent.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must compensate. It thoroughly explains each parameter: limit (max number of players), position (GK, DEF, MID, FW), team (case-insensitive substring), and threshold (minimum progress fraction with the practical example of using 1.0). This adds substantial meaning beyond the raw schema, making the tool easy to call correctly.

    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 starts with a specific verb ('List') and resource ('FPL players most likely to RISE in price'), and differentiates from the sibling tool livefpl_price_fallers by capitalizing 'RISE'. An agent can easily tell that this tool is for risers, not fallers, without checking the schema.

    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 does not explicitly state when to use this tool versus alternatives like livefpl_price_fallers or livefpl_player_prediction. It implies usage through the 'RISE' keyword and the threshold explanation, but gives no context about typical use cases (e.g., pre-deadline to spot target rises). No explicit when-not-to-use or alternative routing is provided.

    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. It transparently states that the tool returns a JSON object with version and gameweek info, implying a read-only, side-effect-free operation. This is adequate behavioral disclosure for a metadata endpoint, though it doesn't explicitly confirm non-mutation.

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

    Conciseness5/5

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

    Two short sentences, front-loaded with the primary action and followed by the return type and use case. No wasted words, and the structure is easy to scan.

    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?

    The tool is simple (no parameters) and an output schema exists, so the description need not detail the JSON structure. It covers the essential information: what it does, what it returns, and why an agent would use it. Nothing critical is missing for correct invocation.

    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 tool has zero parameters, so per calibration guidelines the baseline is 4. There is nothing to describe beyond what the schema already shows (an empty object). The description appropriately focuses on the return value instead.

    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 'Get[s] metadata about the current FPL price-change window' and specifies the return content (site version/gameweek generation info). This is a distinct resource and verb that separates it from sibling tools like livefpl_price_risers or livefpl_player_prediction, which focus on specific prediction data.

    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 a concrete use case: 'Useful to confirm which gameweek the predictions apply to.' This gives clear context for when to call it. It doesn't explicitly mention when not to use it or name alternatives, but the guidance is sufficient for a simple status/metadata endpoint.

    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 burden. It discloses that data is live and provisional (before bonus/ranks finalised), and details the return structure. It does not mention potential failure modes (e.g., private leagues, rate limits) or error handling, but the main behavioral traits are transparent.

    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 well-structured: the purpose leads, followed by a behavior paragraph, then Args and Returns sections. Every sentence adds value—the URL root, live/provisional nature, and detailed return fields. No redundancy or filler. It is appropriately sized for the tool's complexity.

    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?

    The description is complete for an agent to call the tool correctly. It specifies the source, the provisional nature of scores, and a full enumeration of the returned fields (rank, rank_change, team_name, etc.). The presence of an output schema is corroborated by the detailed Returns section, so no critical information is missing.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description fully compensates. It explains league_id as 'the number in the league URL, e.g. 230412' and limit as 'Maximum number of managers to return, ordered by current rank (default 25).' This adds concrete meaning beyond the bare schema titles and types.

    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 a specific verb ('Get') and resource ('LIVE gameweek standings for an FPL classic league'), immediately distinguishing it from sibling tools about price risers/fallers, transfers, and predictions. It also names the external source URL, leaving no ambiguity about the 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 clearly defines what the tool does and its context (live league standings), but it does not explicitly mention when to use this tool over others or when not to use it. However, the sibling tool names are sufficiently distinct that an agent can infer the appropriate usage without explicit routing guidance.

    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 full burden. It discloses that it produces a PNG image, describes visual encoding (circle size = volume, color = net direction, arrows), and explains the output structure (four panels). It stops short of stating side effects or read-only status, but for a render tool that is transparent enough.

    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 well-structured: a one-line summary, a clear explanation of the visual output, and a dedicated Args/Returns section. It is front-loaded with the primary purpose and every sentence contributes to understanding the tool, with no filler.

    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?

    The tool is simple (one optional parameter, no output schema, no annotations) and the description fully covers what an agent needs: the purpose, the output format (PNG image with four panels), and the parameter semantics including a usage hint. Nothing essential is missing.

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

    Parameters5/5

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

    The schema only defines 'top_n' as an integer with default 40, giving no semantic meaning. The description explains it as 'Number of highest-volume transfer pairs to consider' and adds a practical recommendation ('A larger value than the single-graph tool is recommended...'), which adds real value beyond the schema.

    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 opening sentence states a specific verb ('Render') and a specific resource ('transfer-trend graphs split by position as a 2x2 grid IMAGE'), and the rest details the output format. It clearly differentiates from siblings like livefpl_transfer_trend_graph by emphasizing the position-split aspect.

    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 gives clear context: it renders position-specific graphs, and it even references the 'single-graph tool' when recommending a larger top_n. However, it does not explicitly name alternatives or state when NOT to use this tool (e.g., when you need the overall trend), though the positional split is strongly implied.

    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 burden of behavioral disclosure. It clearly states this is a data-fetch operation producing JSON and describes the return shape (nodes and edges fields), which effectively signals a read-only behavior. It does not disclose potential caveats such as data freshness, API rate limits, or failure modes, but for a simple data tool whose main behavior is 'return structured data,' the disclosure is adequate.

    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 tightly organized: a purpose sentence, a sibling-distinction sentence, a usage directive, and compact Args/Returns blocks. It is front-loaded with the core purpose and every sentence earns its place. Zero filler or redundant restatement of the tool name.

    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 low-complexity tool — a single optional parameter, an output schema present, no nested objects — the description is nearly complete. It documents the parameter semantics, the return structure, and the sibling relationship. Minor omissions like top_n bounds or behavior when omitted are trivial against the simplicity of the tool.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate, and it does: it explains the sole parameter as 'top_n: Number of highest-volume transfer pairs to include (default 20).' This adds real meaning beyond the schema's bare integer type and default, clarifying that the value selects the N highest-volume transfer pairs. Full compensation for the single parameter at 0% coverage justifies a strong score.

    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 and resource: 'Get the FPL transfer-trend node-link graph as structured DATA (JSON).' It then explicitly distinguishes itself from its sibling livefpl_transfer_trend_graph by declaring it returns 'the underlying data behind' that graph — the numbers rather than the image. This gives an agent an unambiguous, specific purpose that separates it from its close sibling without opening any schema.

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

    Usage Guidelines5/5

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

    It gives an explicit when-to-use directive: 'Use this when you want the numbers rather than an image,' directly naming the alternative livefpl_transfer_trend_graph. This tells the agent exactly which sibling to choose and under what condition. The selection logic is stated, not left to inference.

    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

livefpl-mcp MCP server

Copy to your README.md:

Score Badge

livefpl-mcp MCP server

Copy to your README.md:

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/Nanparam/livefpl-mcp'

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