Skip to main content
Glama

Recent

recent
Read-onlyIdempotent

Code::Stats (codestats.net) — the XP one Code::Stats user has earned in roughly the last 12 hours, broken out by programming language and by machine, alongside their lifetime profile totals. Answers how much a Code::Stats user has coded today and in which languages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
userNo
recent_activityNoRecent coding activity from last ~12 hours

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "username": "johndoe"
      -  },
      -  {
      -    "username": "alice_dev"
      -  }
      -]New value: +[
      +  {
      +    "username": "Nicd"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "username": "johndoe"
      +  },
      +  {
      +    "username": "alice_dev"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "recent_activity": {
      +      "description": "Recent coding activity from last ~12 hours",
      +      "items": {
      +        "properties": {
      +          "language": {
      +            "description": "Programming language used",
      +            "type": "string"
      +          },
      +          "timestamp": {
      +            "description": "ISO timestamp of the activity",
      +            "type": "string"
      +          },
      +          "xp": {
      +            "description": "XP earned in this activity",
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "user": {
      +      "properties": {
      +        "total_xp": {
      +          "description": "Total XP earned across all languages",
      +          "type": "integer"
      +        },
      +        "username": {
      +          "description": "Username of the Code::Stats user",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond the annotations: the roughly 12-hour data window. It says nothing about auth requirements, rate limits, or behavior for an unknown username, so it adds value but not richly.

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 tight sentences with the resource and scope front-loaded before the use-case framing. The second sentence largely restates the first in question form, which helps retrieval matching but is somewhat redundant, and 'today' sits slightly awkwardly against the stated '~12 hours' window.

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?

An output schema exists, so return structure need not be explained, and the description still usefully says the data is split by language and machine with lifetime totals. Missing only minor operational details such as behavior for an unknown user and the exact timezone/window semantics behind 'today' vs '~12 hours'.

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?

One parameter with 0% schema description coverage, so the schema only supplies a type and an example ('Nicd'). The description implies the parameter is a Code::Stats user identifier, but gives no format, casing, or handling guidance for invalid usernames. It marginally compensates for the coverage gap, so a mid score is warranted.

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 names the specific service (Code::Stats / codestats.net), the exact data returned (XP earned in roughly the last 12 hours, broken out by language and machine, plus lifetime totals), and the user framing. Despite the near-useless name 'recent', an agent can tell exactly what this retrieves and that it is the only Code::Stats-related tool among the siblings.

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 closing sentence ('Answers how much a Code::Stats user has coded today and in which languages') implies the use case, which is the definition of implied usage. However, it never explicitly says when to prefer this over the sibling 'user' tool or other Code::Stats endpoints, and offers no exclusions or prerequisites.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.