Skip to main content
Glama

playcal_report

Calculate per-level pass rates, attempt counts, and quit rates with 95% Wilson intervals from event JSONL files, and flag levels outside target pass-rate bands.

Instructions

per-level pass rate, attempts and quit rate with 95% Wilson intervals

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "files": "<files>"
    },
    "name": "playcal_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
filesYesevent JSONL files (usually accepted.jsonl from ingest)
targetsNoJSON {"4": [40, 60]}: attempt pass-rate band per level; a level outside its band exits 1

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses the per-level aggregation and Wilson-interval calculation, but does not state whether the operation is read-only, how results are returned, how empty or malformed data is handled, or that target violations can exit with status 1.

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 single compact fragment front-loads the metrics and statistical method without filler. Its brevity is efficient, though the lack of a leading verb and input or pipeline context keeps it from being a fully polished description.

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 two-parameter reporting tool with a fully described input schema, the description provides the minimum needed to understand the report's content. However, with no output schema or annotations, its omissions regarding input prerequisites, result format, and operational behavior leave meaningful gaps.

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 100%, so the baseline is 3. The description adds little parameter-specific guidance: the files prerequisite, targets JSON syntax, band semantics, and exit behavior are all supplied by the schema rather than expanded upon here.

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 identifies the report's granularity and contents: per-level pass rate, attempts, and quit rate, with 95% Wilson intervals. Although it is a noun fragment and does not distinguish the tool from siblings such as playcal_query or playcal_baseline, its reporting purpose is clear when combined with the tool name.

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 gives no explicit guidance about when to run the report, its place after ingestion, or when another sibling tool would be preferable. The connection to accepted.jsonl from ingest appears only in the parameter schema, not in the description.

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