Skip to main content
Glama

Sapper Arena

sapper_arena

Manage TSecBench-style security challenges by listing, starting, stopping, submitting flags, and requesting hints via a competition platform bridge.

Instructions

Competition platform bridge (TSecBench-style API).

Actions: init write .sapper/arena.json config template challenges list all challenges start start challenge_id stop close challenge_id submit submit flag for challenge_id hint request hint for challenge_id (may cost score)

Config: env BENCHMARK_BASE_URL + BENCHMARK_TOKEN, or .sapper/arena.json.

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": {
      "action": "<action>"
    },
    "name": "sapper_arena"
  }
}

Input Schema

NameRequiredDescriptionDefault
flagNo
storeNo.sapper
actionYes
challenge_idNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden, and it does add some real behavior: 'init' writes a .sapper/arena.json template, 'hint' may cost score, and auth is configured via BENCHMARK_BASE_URL/BENCHMARK_TOKEN or the config file. It still omits reversibility of stop, whether submit consumes an attempt, error/failure semantics, and any rate limits — meaningful gaps for a multi-action write tool.

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 action table is front-loaded after a one-line purpose statement, with each entry a single verb plus its target — no filler. The inline backticks and mixed indentation are slightly ragged, but nothing is wasted.

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?

Return values are covered by the existing output schema, so the description needn't explain them, and the config/auth story is present. Still, for a four-parameter, action-dispatch tool with no annotations, the undocumented 'store' parameter and the absence of guidance against overlapping sibling tools leave it only partially complete.

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?

Schema description coverage is 0% and the 'action' property has no enum in the schema, so the description's action list is the only definition of valid values — a substantial value add. It also ties challenge_id to start/stop/submit/hint and flag to submit. The 'store' parameter is never mentioned and only indirectly hinted at by the '.sapper/arena.json' path.

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 names the resource ('Competition platform bridge (TSecBench-style API)') and enumerates six concrete actions with a one-line gloss for each (init, challenges, start, stop, submit, hint), so an agent knows exactly what operations are available. It does not differentiate this tool from siblings that appear to overlap on the same verbs (sapper_hint, sapper_init, sapper_claim, sapper_flag), which is the main shortfall.

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 action table implies when each sub-operation is used (e.g. 'submit `flag` for challenge_id', 'request hint ... may cost score'), which is useful in-tool sequencing guidance. However, there is no statement of when to choose this tool over the similarly named sibling tools, and no prerequisites or exclusions are given.

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

Deploy Server

Other Tools