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. Dates show when Glama detected each change.

  1. 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"
      +}
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context (time window, breakdown by language/machine, lifetime totals) not captured in annotations, but does not detail response format or edge cases.

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 sentence that packs in context and value, but the opening fragment 'Code::Stats (codestats.net) —' is slightly clunky. It is concise and mostly front-loaded, with no wasted words.

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?

Despite 0% schema coverage, the description covers purpose, time window, breakdown dimensions, and lifetime context. The output schema exists, so return value details need not be explained. Missing: no mention of what happens for invalid usernames or whether data updates in real-time, but overall it's sufficiently complete for a simple one-param read-only tool.

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%, so the description must compensate. It explains the username as a Code::Stats user but does not specify format, case sensitivity, or behavior for non-existent users. With only one required param and clear context, it barely meets the baseline; schema does minimal work.

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 ('Answers how much... coded today') with a unique resource ('Code::Stats user') and scope ('roughly the last 12 hours'), while also distinguishing from siblings like recent_changes by focusing on XP earned and language/machine breakdown. It is specific enough to stand alone.

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 when to use it (when you want to know a user's recent coding activity in the last 12 hours), but does not explicitly mention alternatives or exclusions. Sibling tools include recent_changes and user, which could be conflated, yet no comparison is provided.

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.

TDQS

A3.5/5.0
Disambiguation3/5

Most tools have distinct, well-described purposes, but clusters like ask_pipeworx/ask_pipeworx_beta/ask_pipeworx_grounded and the five polymarket_* tools have overlapping scopes that could cause misselection. The beta currently behaves identically to the stable router, and `recent` vs `recent_changes` vs `recent_alerts` are confusingly similar names for different domains.

Naming Consistency2/5

All names use lowercase underscores, but there is no consistent verb_noun pattern: some are verbs (ask, compare, generate), some are nouns (entity_profile, recent, user), and some are adjectives (deep_research). There are coherent subfamilies (subscribe/unsubscribe/list_subscriptions, remember/recall/forget), but the overall naming is a mix of conventions.

Tool Count2/5

33 tools is well above the 25+ threshold, making the surface heavy and hard to navigate. Many are highly specialized meta-tools (e.g., five Polymarket analyzers) that could be consolidated.

Completeness2/5

For a server named 'Codestats', only `recent` and `user` address coding stats, leaving major gaps in what that name implies. The broader data/research/betting capabilities are fairly rich, but the server's stated identity is under-served and there's no clear lifecycle coverage for any single domain.