Skip to main content
Glama
Running Companion MCP Server

Running Companion MCP Server

This server has been deprecated

Personal project, not offered for public use.

Best efforts

get_best_efforts
Read-only

Retrieve your record times for 400 m, 1 km, 1 mile, 3 km, 5 km, 10 km, half marathon, and marathon from any run, with an optional since date filter.

Instructions

Fastest time for 400 m, 1 km, 1 mile, 3 km, 5 km, 10 km, half and marathon found inside any run. Optionally only since a date.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_best_efforts"
  }
}

Input Schema

NameRequiredDescriptionDefault
sinceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.3

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real context by disclosing that the scan spans 'any run' (i.e., the full activity history, not one activity) and that results are per-distance bests. It says nothing about cost, time range defaults, or what happens when no qualifying run exists.

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?

Two short sentences, front-loaded with the core behavior and the distance list, with the optional filter appended last. The distance enumeration is long but each item earns its place as the actual return content; nothing is redundant.

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 zero-required-parameter read tool with no output schema, the description covers what is computed but not the return shape — whether each distance is paired with the activity, date, or duration, or how empty results are represented. Adequate but leaves the agent guessing about the response payload.

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?

Schema description coverage is 0%, but the description compensates partially by explaining that 'since' is optional and semantically means 'only consider runs after this date'. The YYYY-MM-DD format is conveyed only by the schema pattern, not the prose, and no default (e.g., all-time when omitted) is stated.

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?

States a specific verb-like outcome ('fastest time') and enumerates the exact distances computed (400 m through marathon) plus the scope ('found inside any run'), which is far more precise than the title 'Best efforts'. It doesn't explicitly contrast with siblings like get_trend or get_progress, but the resource is distinctive enough that confusion is unlikely.

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?

'Optionally only since a date' hints at the filtering option but gives no when-to-use guidance, no exclusions, and no mention of alternatives such as get_activity for a single run or get_trend for progression over time. An agent must infer that this is an all-runs aggregate query.

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