Skip to main content
Glama
AsafShai

Fantasy NBA Israel League MCP

by AsafShai

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    The tools are mostly distinct with clear purposes: getAveragesLeagueRankings (rotisserie ranking points), getAverageStats (actual performance averages), getLeagueShotsStats (cumulative shooting totals), getTeamDetails (comprehensive team data), and getTeams (team list). However, getAveragesLeagueRankings and getTeamDetails both provide ranking points, which could cause confusion about which to use for ranking data, though their scopes differ (league-wide vs. single team).

    Naming Consistency3/5

    The naming is mixed but readable: getAveragesLeagueRankings, getAverageStats, getLeagueShotsStats, getTeamDetails, and getTeams. Most start with 'get' followed by a noun phrase, but there's inconsistency in pluralization (Averages vs. Average) and structure (e.g., 'LeagueRankings' vs. 'LeagueShotsStats'). It's not chaotic but lacks a strict pattern like verb_noun throughout.

    Tool Count5/5

    With 5 tools, this is well-scoped for a fantasy NBA league server. Each tool serves a distinct purpose: retrieving league rankings, stats, shooting data, team details, and team list. The count is appropriate, avoiding bloat while covering core functionalities like data access and analysis.

    Completeness4/5

    The tool set covers key aspects of a fantasy league: league-wide rankings, stats, shooting data, team details, and team listing. Minor gaps exist, such as no tools for updating league settings, managing teams, or accessing player-specific data beyond team rosters, but agents can work around these for basic querying and analysis tasks.

  • Average 4.4/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits 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.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

  • 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 that the list includes all active teams and notes about team names (emojis/special characters), which adds useful context. However, it lacks details on potential limitations like pagination, rate limits, or error handling, leaving some behavioral aspects unclear.

    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 clear sections (purpose, usage, returns, notes) and is front-loaded with key information. It could be slightly more concise by integrating the 'Returns' section more seamlessly, but overall it's efficient with minimal waste.

    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 low complexity (0 parameters, no output schema), the description is quite complete. It explains the purpose, usage, return format, and additional notes. However, without annotations or output schema, it could benefit from more behavioral details (e.g., response size limits), slightly lowering the score.

    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 has 0 parameters with 100% coverage, so the baseline is high. The description does not need to explain parameters, and it correctly states there are no inputs, as implied by the empty schema. This earns a 4 for clarity in a parameterless context.

    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's purpose: 'Get the list of all teams in the fantasy league.' It specifies the verb ('Get') and resource ('teams'), but does not explicitly differentiate from sibling tools like getTeamDetails, which is why it doesn't reach a 5.

    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?

    The description provides explicit usage guidance: 'Use this endpoint to discover team IDs for use with other endpoints like getTeamDetails().' It clearly indicates when to use this tool (to get IDs for other tools) and references an alternative (getTeamDetails), meeting the criteria for a 5.

    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 provided, the description carries the full burden of behavioral disclosure. It excels by detailing the scoring system, clarifying critical distinctions (e.g., ranking points vs. rank position), providing an example output, and noting language-specific considerations (Hebrew terms). This gives the agent a comprehensive understanding of how the tool behaves and what to expect from its results.

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

    Conciseness3/5

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

    The description is front-loaded with the core purpose but becomes lengthy due to extensive explanations of the scoring system, example, and notes. While all content is relevant and earns its place, the structure could be more streamlined—some details (e.g., Hebrew translations, specific comparison examples) might be overly verbose for a tool description, reducing overall conciseness.

    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 complexity of the rotisserie scoring system, no annotations, and no output schema, the description provides exceptional completeness. It thoroughly explains the data model, scoring logic, parameter usage, and return structure, ensuring the agent has all necessary context to invoke the tool correctly and interpret results without relying on external documentation.

    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 input schema has 0% description coverage and only one parameter ('order') with minimal schema details. The description compensates fully by explaining the parameter's semantics: it defines the sort order options ('desc' for best to worst, 'asc' for worst to best), provides default behavior, and includes multilingual clarifications. This adds significant value beyond the bare schema.

    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's purpose: 'Get the average league rankings from the API.' It specifies the verb ('Get') and resource ('average league rankings'), making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'getAverageStats' or 'getTeams', which might also retrieve statistical data, leaving some ambiguity about when to choose this specific tool.

    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 implied usage context by explaining the scoring system and data structure, suggesting it's for retrieving rotisserie fantasy league rankings. However, it lacks explicit guidance on when to use this tool versus alternatives like 'getAverageStats' or 'getTeams', and doesn't mention any prerequisites or exclusions, leaving the agent to infer the best scenario for its use.

    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 effectively describes key behavioral traits: the data format (cumulative totals, not per-game averages), calculation methods (percentages derived from totals), output format (dictionary with detailed team statistics), and data representation (percentages as decimals). It doesn't mention potential limitations like data freshness or error handling, but covers the core behavior well.

    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 clear sections: purpose statement, key behavioral notes, return format, and detailed notes. Each sentence adds value - none are redundant. While somewhat detailed due to the output specification, the information is necessary given the lack of output schema. The front-loaded purpose statement immediately communicates the tool's function.

    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 complexity (statistical data with calculations), no annotations, and no output schema, the description provides substantial context. It explains the data nature (cumulative vs. averages), calculation methodology, output structure, and data representation. The main gap is the lack of information about data sources or update frequency, but for a read-only statistical tool, the description is quite comprehensive.

    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 has 0 parameters with 100% coverage, so the baseline would be 4 even without parameter information in the description. The description correctly states there are no parameters needed ('This endpoint provides...' implies no filtering parameters), which aligns perfectly with the empty schema. No additional parameter semantics are needed or 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 the tool's purpose: 'Get league-wide shooting statistics (field goals and free throws) for all teams.' It specifies the verb ('Get'), resource ('league-wide shooting statistics'), and scope ('for all teams'), distinguishing it from sibling tools like getTeamDetails (team-specific) or getAveragesLeagueRankings (averages-focused).

    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 provides clear context for when to use this tool: 'Useful for understanding overall team shooting efficiency across the season.' It distinguishes itself by emphasizing cumulative totals rather than averages, which helps differentiate from tools like getAverageStats. However, it doesn't explicitly state when NOT to use it or name specific alternatives beyond the general distinction.

    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 thoroughly explains the data structure, including key distinctions (e.g., ranking points vs. category ranks, raw totals vs. averages), and provides an example to illustrate differences. However, it lacks explicit information about rate limits, authentication requirements, or error handling, which would be needed for a perfect score.

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

    Conciseness3/5

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

    The description is well-structured with clear sections (e.g., 'IMPORTANT', 'HOW RANKING POINTS WORK', 'EXAMPLE'), but it is excessively long (over 500 words) with redundant explanations (e.g., repeating ranking stats details). Some content, like the Hebrew translation note, is unnecessary for tool selection. While informative, it could be more concise without losing critical information.

    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 complexity of the tool (returns multiple nested data types), no annotations, and no output schema, the description provides exceptional completeness. It details all return sections with field explanations, includes an example to clarify data interpretation, and explains domain-specific concepts (rotisserie scoring). This fully compensates for the lack of structured metadata.

    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 has 0% description coverage (parameter 'team_id' has no description in schema), so the description must fully compensate. It does so by explaining: 'team_id: The ID of the team to get details for. Use getTeams() to see all team IDs.' This provides clear semantics, source guidance, and practical usage instructions beyond the bare schema type.

    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 comprehensive details for a specific team from the API.' It specifies the verb ('Get'), resource ('team details'), and scope ('comprehensive'), distinguishing it from siblings like getTeams (list teams) or getAverageStats (league-wide averages). The detailed breakdown of data sections further clarifies what 'comprehensive' entails.

    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?

    The description provides explicit guidance on when to use this tool: 'Use getTeams() to see all team IDs' to obtain the required team_id parameter. It distinguishes this tool from siblings by explaining that it combines multiple data types (raw averages, ranking stats, etc.) for a single team, unlike getAveragesLeagueRankings (league-wide rankings) or getAverageStats (league averages). The 'IMPORTANT' and 'CRITICAL' sections further clarify usage 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?

    No annotations are provided, so the description carries the full burden. It effectively discloses behavioral traits: it describes the return format (list of teams with dictionaries), explains data types (percentages as decimals, counting stats as per-game averages, GP as total count), and details the effect of the use_normalized parameter (scales values 0-1 for heatmap visualization). It doesn't mention rate limits or authentication needs, but covers core functionality well.

    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 appropriately sized and front-loaded, starting with the core purpose and key distinction from siblings. Each section (Args, Returns, NOTES) adds value without redundancy. It could be slightly more concise in the Returns section, but overall, sentences earn their place by clarifying critical details.

    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 complexity (statistical data with normalization options) and lack of annotations or output schema, the description is highly complete. It covers the tool's purpose, usage guidelines, parameter semantics, return structure, and data formatting notes, providing all necessary context for an AI agent to invoke it correctly without relying on external documentation.

    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?

    With 0% schema description coverage and only one parameter, the description fully compensates by adding rich semantic details. It explains the use_normalized parameter's purpose ('returns normalized data (0-1 scale) for comparison' vs. 'raw statistical values'), provides examples (e.g., '45.6% FG, 12.3 AST'), and specifies the default value (False), going well beyond the minimal 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 description clearly states the tool 'gets average statistics (actual performance numbers) for all teams from the API,' specifying both the verb ('get') and resource ('average statistics for all teams'). It explicitly distinguishes this from the sibling tool getAveragesLeagueRankings by emphasizing it returns 'ACTUAL PERFORMANCE STATS, NOT ranking points,' providing clear differentiation.

    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?

    The description provides explicit guidance on when to use this tool versus alternatives. It states: 'Use this endpoint to see actual per-game averages (e.g., 25.3 assists per game)' and 'Use getAveragesLeagueRankings() to see rotisserie ranking points (e.g., 12 points earned),' clearly defining the context and naming the alternative tool.

    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

nba-fantasy-israel-mcp MCP server

Copy to your README.md:

Score Badge

nba-fantasy-israel-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/AsafShai/nba-fantasy-israel-mcp'

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