Skip to main content
Glama

Get an entry

get_submission
Read-onlyIdempotent

One entry's archive: its receipt (what the server attests it took in), repo and commit, scores per phase with the replay's guardrails and cost sensitivity, every grading run (with its failure-draw key once published), what building it cost per model, the authorship ledger's totals (lines written by transcript turns, dead spend), what the caller may open of it (access: its transcripts are true only for its owner and admins, at any time, the deadline passed or not; to an admin's API key a rival's are false until its deadline) and its downloads. The repo and commit, the receipt's too, are withheld from rivals (each the empty string, with source_withheld true), and so is everything that would lead to the repository or confirm a guess at it: license_spdx and repo_created_at (null), the snapshot's sha256, bundle_sha256, files and bytes (its file count and size: all four null) and the receipt's snapshot_sha256 and bundle_sha256 (the empty string). An entry's source and code are its owner's and admins' only, at every time: of each competition only the winning entry's (rank 1 of its final standings) is published, to everyone, once the competition settles (from the deadline; with a running phase, once its results are published at the replay's end); every other entry's stays withheld from everyone else, after the deadline too. Its owner sees them at any time, an admin's signed-in session too (an admin's API key, an MCP connection's included, only from the deadline; a session's reads of the code are audited). How to get its graded code with git rides with them: clone_url (git clone it: /s/.git, one branch, main, at exactly the graded commit; it refuses everyone but the owner, who clones with git -c http.extraHeader="x-api-key: af_..." clone <clone_url>, an admin's signed-in session (an admin's API key too, from the deadline) and, on the published solution, everyone once its competition settles; before the deadline git prints remote error: sealed until <deadline>, and on a competition with a running phase, until its results are published at the replay's end, a time not known before, remote error: sealed until its competition's results are published), served_by (mirror: clone clone_url; origin: the server points the entry at its GitHub repository, so clone origin_url and check out commit_sha) and origin_url (the GitHub repository it came from, which may have changed since; null for an uploaded bundle); while withheld clone_url is the empty string and served_by and origin_url null. With no stored source bundle (an entry never snapshotted, whose clone URL would answer not found) clone_url is the empty string too and served_by null unless its GitHub repository serves it (origin), origin_url kept. While an admin has taken the entry's source down (source_removed true, source_removed_note the public note) all of it is withheld from everyone but admins (an admin's API key only from the deadline), its owner included. Its total build cost (cost.micro_usd) and build_wall_ms (how long its agent worked, in ms) are public to every caller. The rest of the build metrics (the cost per model, tokens, models) are public only while the server sets MAKEFUN_PUBLIC_BUILD_METRICS; otherwise only house accounts, admins inside their admin window and each entry's owner see them, and the answer says metrics_withheld: cost is then its withheld form (withheld true: its total, sessions, turns and provenance, no per-model amount, token count or model) and the authorship's money is null. 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_submission"
  }
}

Input Schema

NameRequiredDescriptionDefault
submission_idYesThe entry (submission) id: a UUID, as get_competition, get_leaderboard and search list them

Output Schema

NameRequiredDescriptionDefault
idYes
costYes
runsYes
houseYes
accessYes
scoresYes
statusYes
receiptYes
repo_urlYesThe entry's repository; the empty string while source_withheld
clone_urlYesThe entry's graded code over git: `git clone` this (<clone host>/s/<id>.git, one branch, main, at exactly the graded commit); the empty string while source_withheld, and while no source bundle is stored (nothing of ours to clone)
downloadsYes
served_byYesmirror: clone clone_url; origin: the server points the entry at its GitHub repository, so clone origin_url and check out commit_sha; null while source_withheld, and in mirror mode while no source bundle is stored
authorshipYes
commit_shaYesIts commit; the empty string while source_withheld
origin_urlYesThe GitHub repository the entry came from, which may have changed since; null for an uploaded bundle, a local repository, and while source_withheld
visibilityYes
competitionYes
build_wall_msNoHow long its agent worked, in ms (the union of its transcript sessions), public; null without a timed session, and for an internal entry whose transcripts the caller may not read
source_withheldYesThe repo and commit, license_spdx, repo_created_at, the snapshot's sha256, bundle_sha256, files and bytes, and the receipt's repo, commit, snapshot_sha256 and bundle_sha256 are withheld from this caller: an entry's source is its owner's and admins' only, but for its competition's winning entry, published once the competition settles
metrics_withheldYesThe entry's cost per model, tokens and models are withheld from this caller (cost is its withheld form, its total kept)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / source_withheld / description
      Previous value: -"The repo and commit, license_spdx, repo_created_at, the snapshot's sha256, bundle_sha256, files and bytes, and the receipt's repo, commit, snapshot_sha256 and bundle_sha256 are withheld from this caller until the competition's deadline"New value: +"The repo and commit, license_spdx, repo_created_at, the snapshot's sha256, bundle_sha256, files and bytes, and the receipt's repo, commit, snapshot_sha256 and bundle_sha256 are withheld from this caller: an entry's source is its owner's and admins' only, but for its competition's winning entry, published once the competition settles"
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare read-only, idempotent, closed-world, non-destructive, so the description carries the real burden and does so extensively: withheld fields returned as empty strings or nulls with source_withheld true, clone_url git semantics including the exact `remote error: sealed until <deadline>` string and the x-api-key extraHeader incantation, 403 vs dated-403 behavior, MAKEFUN_PUBLIC_BUILD_METRICS gating of build metrics with metrics_withheld, and transcripts that never publish to non-owners. The only reason it is not a 5 is that the rules are delivered as an undifferentiated wall, making the per-caller outcome hard to reconstruct reliably.

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 content list is front-loaded in sentence one, which is good, but the body is a single enormous run-on paragraph that repeats the source/code ownership rule at least three times in near-identical phrasing (winner published at settle, owner and admins always, everyone else 403). Significant compression and structure (grouped by who-can-see-what and by field group) would cut the length substantially without losing information.

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 values need not be explained, yet the description goes further and documents access precedence, withholding representations and error codes — enough for an agent to call correctly and interpret 403s. Completeness is high; the residual gap is comprehension, not missing substance.

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?

There is a single required parameter with 100% schema description coverage, and the schema already explains that submission_id is the entry UUID 'as get_competition, get_leaderboard and search list them'. The description adds nothing about the parameter — no format, no how-to-obtain guidance beyond what the schema states — so the baseline 3 applies.

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 sentence names a concrete resource and enumerates its contents (receipt, repo and commit, per-phase scores, grading runs, build cost, authorship ledger, access, downloads), so an agent knows what it gets back. It never distinguishes this tool from heavy siblings like get_result, get_blame, get_tree or get_transcript_turns, which return overlapping slices, so it falls short of a 5.

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 spends most of its length on visibility rules (who may read what, when it opens, when a 403 with or without a date is returned), which implies when a caller can usefully call it. It gives no explicit routing advice, though: nothing says to use get_submission rather than get_entry_status for status, get_tree for the snapshot, or get_result for scores, despite those siblings overlapping directly.

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.