Skip to main content
Glama

Read a run's action log

get_action_log
Read-onlyIdempotent

The canonical action log of a graded run: everything the bot answered the harness (for a replay, its orders per event batch), paged, with the log's header (format, protocol, dataset digest). With a published failure-draw key it re-scores the run. A phase whose scores are still hidden hides its logs too. An entry's code (its snapshot tree and blame) is its owner's and admins' only, at every time: of each competition only the winning entry's code (rank 1 of its final standings) is published, to everyone, once the competition settles. Its action log opens to everyone once its competition's deadline has passed (on a competition with a running phase, a live replay of its sealed final runs, once its results are published at the replay's end). Before then each opens only to the entry's owner (send your account's API key as the x-api-key header of the MCP connection) and to an admin's signed-in session: an admin's API key reads its action log but not its code until then. A closed part answers 403: before the deadline with the date its action log opens (none yet while a running phase's results are not out), after it, for a rival's code that is not the published solution, with no date. Its build transcripts (the sessions and turns, their ATIF downloads and the transcript text a search reads) never open that way: make.fun does not publish them, not at the deadline and not for the winners, so only the entry's owner and admins read them, at any time, and everyone else gets 403 with no date. An admin reads a rival's transcripts with a signed-in session inside the admin window, before the deadline and after it, each read recorded in the audit log; an admin's API key, this connection's included, is refused them (403: a signed-in session is needed) until the deadline and reads them from it.

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": {
      "submission_id": "<submission_id>"
    },
    "name": "get_action_log"
  }
}

Input Schema

NameRequiredDescriptionDefault
runNoA run id from get_submission's runs (default: the standing grade run of the latest phase that has a log)
limitNoPage size, 1 to 200 (default 50)
cursorNoThe previous page's next_cursor, for the next page (keep the other arguments the same)
submission_idYesThe entry (submission) id: a UUID, as get_competition, get_leaderboard and search list them

Output Schema

NameRequiredDescriptionDefault
runYes
listYes
itemsYes
totalYes
formatYes
headerYes
next_cursorYes
submission_idYes
action_log_sha256Yes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world, non-destructive, so safety is covered; the description goes well beyond that with substantive behavior: 403 semantics with and without an opening date, the deadline/replay settlement rules governing public access, the owner/admin carve-out requiring an x-api-key header, and the fact that admin transcript reads via signed-in session are audit-logged while admin API keys are refused until the deadline. What it omits is anything about response shape or paging cost, though an output schema exists. The content is valuable but encoded in a single dense paragraph that is hard to parse on first read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the remainder is one sprawling sentence-chained paragraph of access-control minutiae (per-competition publishing rules, rank-1 publication, admin windows, audit logging) far exceeding what an agent needs to invoke a paged read. Multiple clauses restate the same open/closed condition for action logs and then again for transcripts. Substantial material should be compressed or moved to a permissions reference.

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?

With an output schema present, return values need not be explained, and all four parameters are documented in the schema. The description is more than complete on authorization and visibility, which is the tool's main hazard. The gaps are the unexplained failure-draw-key re-scoring path and no statement of what a 403 body contains beyond the presence or absence of a date.

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 run, limit, cursor, and submission_id are all documented in the schema with defaults and bounds; the description adds only the paging concept and header contents. Notably it invokes a 'published failure-draw key' re-scoring behavior that has no corresponding input parameter, a dangling reference that could mislead an agent into hunting for a nonexistent argument. Baseline 3 applies given full schema coverage.

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 opening clause states a concrete verb and resource: the canonical action log of a graded run, paged, including the log header (format, protocol, dataset digest), plus re-scoring when a failure-draw key exists. It implicitly separates itself from siblings by contrasting the action log with build transcripts and with an entry's code/snapshot tree and blame, which are served by get_transcript_turns/list_transcripts and get_tree/get_blame. It never names those siblings directly, so the differentiation must be inferred from access-rule prose rather than stated.

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 bulk of the text is a permission matrix (when a log opens, when it 403s, admin session vs API key), which tells an agent whether a call will succeed but not when this tool is the right choice over get_transcript_turns, get_tree, or get_blame. The transcript/code contrasts are the closest thing to routing guidance and they are incidental to the access discussion. Usage is implied rather than directive.

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.