Skip to main content
Glama
axelfreeman

GymCam Analytics

by axelfreeman

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 targets a distinct analytics dimension: daily summary, trainer-specific metrics, class performance, and revenue. No two tools overlap in purpose or output, so an agent can clearly select the right tool for a given request.

    Naming Consistency5/5

    All tools follow a uniform 'get_<noun>_<noun>' pattern (e.g., get_today_summary, get_trainer_attendance). The naming is consistent, descriptive, and predictable, making it easy to infer tool purpose from the name alone.

    Tool Count5/5

    With only 4 tools, the server is tightly scoped to core gym analytics. Each tool provides a distinct slice of the domain without redundancy, and the count is appropriate for a focused analytics service.

    Completeness4/5

    The toolset covers the primary analytics needs: overall summary, trainer performance, class performance, and revenue. Minor gaps exist (e.g., no member-specific analytics or custom date-range queries), but the current surface handles common use cases well.

  • Average 3.3/5 across 4 of 4 tools scored. Lowest: 2.7/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?

    There are no annotations, so the description carries full behavioral disclosure responsibility. It only states the output (attendance and fill-rate) and allowed periods, but does not mention whether the tool is read-only, requires specific permissions, or what the response format looks like. No side effects or caveats are disclosed.

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

    Conciseness4/5

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

    The description is a single concise sentence that delivers the core purpose and period scope immediately. There is no wasted wording. It is appropriately front-loaded, though its brevity sacrifices detail that might be necessary for full comprehension.

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

    Completeness2/5

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

    With only two simple parameters and no output schema, the description could be expected to explain the meaning of 'fill-rate' and how to specify a trainer, which it does not. The tool might return aggregated data, but no information is provided about the nature of the output or any default behavior beyond 'week' in the schema. Overall, the description is minimal and leaves important questions unanswered.

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

    Parameters2/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 clarifies that 'period' accepts 'day' or 'week', which adds value beyond the schema's default. However, it does not explain what 'trainer' expects (e.g., ID, name), nor does it elaborate on any other constraints. The parameter semantics are only partially addressed.

    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 returns attendance and fill-rate for a trainer, and specifies that the period is either 'day' or 'week'. This is specific enough to distinguish it from siblings like get_class_performance or get_revenue_insights, though it lacks an explicit verb like 'retrieve'. The purpose is unambiguous and not a tautology.

    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?

    No guidance is provided on when to use this tool versus the sibling tools. The description only mentions the period options ('day' or 'week') without context on which scenario warrants this tool. There are no exclusions or alternative tool references, so an agent might struggle to decide when this is the appropriate choice.

    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?

    No annotations are provided (e.g., readOnlyHint, destructiveHint), so the description carries the full burden of disclosing behavioral traits. The description only says 'Rank classes by fill rate' but does not disclose whether this is a read-only operation, whether it performs any calculations or aggregation, or whether any side effects exist. For a read-only reporting tool, even a phrase like 'Returns a list' would help, but it is missing. The description does not contradict any annotations (since none exist), but it fails to convey expected behavior beyond the high-level result.

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

    Conciseness5/5

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

    The description is a single sentence, highly concise, and immediately communicates the core purpose. It is front-loaded with the action 'Rank classes' and provides a practical implication ('popular vs. dead classes to cut'). No unnecessary words or repetition. It is appropriately sized for its simplicity.

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

    Completeness3/5

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

    Given the tool's simplicity (one parameter, no output schema), the description covers the main intent well. However, it lacks details about the return type (e.g., does it return a list with fill rates?), how 'limit' affects results, and whether it includes only active classes or all classes. Since there is no output schema, the description should provide some indication of what the tool returns. The description is adequate for a simple read-only tool but is not comprehensive for an agent that might need to interpret results.

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

    Parameters3/5

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

    There is one parameter, 'limit', which has a default and no description. Schema description coverage is 0%, but with only one parameter, the description's mention of 'Rank classes' implies that 'limit' likely controls the number of classes returned. However, the description does not explicitly explain the 'limit' parameter, so an agent might not know if it controls the number of classes or something else. While the single parameter is self-explanatory to a human, the description adds no specific explanation, so the agent must infer from the schema's default value.

    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: to rank classes by fill rate, identifying popular and dead classes for potential cutting. The verb 'Rank' and resource 'classes' are specific, and the purpose is distinct from siblings like 'get_today_summary' (which likely provides a summary) and 'get_revenue_insights' (which focuses on revenue). However, it does not explicitly mention the return format or the scope of data (e.g., current vs. historical), so it is not perfect.

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

    Usage Guidelines3/5

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

    The description implies usage for planning class cuts or evaluating class performance, but it does not explicitly state when to use this tool versus alternatives. For example, it does not say 'Use this when you need to identify underperforming classes' or 'Instead of get_revenue_insights, use this for class-level fill rates.' The guidance is minimal and relies on inference.

    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 must carry the burden of behavioral disclosure. It describes what data is returned (classes held, total attendance, top classes) but does not mention any side effects, auth requirements, or limitations beyond the summary nature. This is adequate but not rich.

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

    Conciseness5/5

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

    The description is a single, straightforward sentence that immediately states the tool's purpose and output content. There is no superfluous text or wasted words.

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

    Completeness3/5

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

    For a simple tool with one optional parameter and no output schema, the description covers the core output but lacks details on parameter usage and potential edge cases. It gives the essential summary items but does not fully flesh out behavior, making it minimally complete.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must explain the gym_id parameter. It does not mention the parameter at all, leaving the optional gym_id with default 'demo' unexplained. The agent cannot infer how gym_id affects the summary from the description alone.

    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 provides a daily attendance summary, specifically listing what it includes: classes held, total attendance, and top classes. It distinguishes from sibling tools like trainer attendance, class performance, and revenue insights by focusing on the overall attendance dashboard.

    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 offers no guidance on when to use this tool versus alternatives. It does not mention exclusions or specific contexts, leaving the agent to infer that it is for daily overviews. Without explicit comparison to siblings, usage guidance is minimal.

    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, this description carries the full disclosure burden. It implies a read-only query but doesn't explicitly state side effects, data scope, or output behavior, offering only a minimal observation about profitability.

    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?

    One sentence, each word adds value. No filler or redundancy.

    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?

    The tool is simple and the description adequately conveys its purpose. While it could mention performance limits or return format, these are likely implied by the simplicity. It's complete enough for an agent to infer usage.

    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?

    Zero parameters mean the schema already fully describes them (empty). The description adds value by implying the tool returns a comparison, but no parameter docs are needed since there are none.

    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 specifies the action ('most profitable vs. least profitable classes') and the resource ('classes by revenue'). It distinguishes from sibling tools like get_cluster_metrics or get_classification_metrics by focusing on profitability analysis.

    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?

    No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, frequency, or any context for selection, leaving the agent to infer.

    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

gymcamanalytics MCP server

Copy to your README.md:

Score Badge

gymcamanalytics 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/axelfreeman/gymcamanalytics'

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