Skip to main content
Glama

Check work you received

check_received_work

Privately check a received file against a template, plain-word requirements (need), explicit criteria, a saved contract, a check pack, or a saved report_token (adds a rerun delta). A check_pack_slug without check_pack_version uses the version pinned by bounty_id when supplied, otherwise the current version. Returns pass, fail, or could_not_verify for each declared check. A failed report offers rework.api (the bounty_post body for a rework bounty) and, while held payments are on, settlement (the settlement create body that holds payment until a delivery passes the same checks). Nothing is stored unless save is true, which returns report_url. Each caller gets 20 free checks a month of up to 500 rows each; beyond that the call answers 402 with payable terms when paid checks are available.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mimeNoOptional media type.
needNoAcceptance criteria in plain words, drafted into checks the same way as the website, from these words and the delivery's column names only. The response lists the checks that ran; send them as criteria to repeat them exactly.
saveNoOpt in to a shareable, re-runnable report.
contentYesDelivery content as UTF-8 text or base64. The whole JSON-RPC request must be at most 4.4 MB on the hosted server, so a base64 file can be up to 3 MB decoded; larger uploads are rejected with HTTP 413.
criteriaNoExplicit machine checks returned by an earlier check.
encodingNoutf8
filenameYesFilename including its extension.
bounty_idNoYour own bounty: runs its pinned checks. Or optional context for check_pack_slug.
contract_idNoAccepted bounty id from your saved contract library; requires Bearer authentication on the MCP connection.
template_idNo
report_tokenNoReuse the saved criteria structure and origin. Supply source_context again for source-dependent checks.
source_contextNoSource URLs, glossary, rubric, or reference sample. Required by rubric agreement and saved glossary reruns.
check_pack_slugNoUse criteria from a public check pack.
check_pack_versionNoPack version to use. Omit to use the version pinned by bounty_id, or the current version when bounty_id is absent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / content / description
      Previous value: -"Delivery content as UTF-8 text or base64. The whole JSON-RPC request must be at most 4.4 MB on the hosted server, so a base64 file can be up to 3 MiB decoded; larger uploads are rejected with HTTP 413."New value: +"Delivery content as UTF-8 text or base64. The whole JSON-RPC request must be at most 4.4 MB on the hosted server, so a base64 file can be up to 3 MB decoded; larger uploads are rejected with HTTP 413."
  2. Changed8 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / dependentRequired
      Added value: +{
      +  "check_pack_version": [
      +    "check_pack_slug"
      +  ]
      +}
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "required": [
      -      "template_id"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "need"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "criteria"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "contract_id"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "report_token"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "required": [
      +      "template_id"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "need"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "criteria"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "contract_id"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "report_token"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "check_pack_slug"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "check_pack_slug": {
      +        "type": "null"
      +      }
      +    },
      +    "required": [
      +      "bounty_id"
      +    ]
      +  }
      +]
    • addedInput schema / properties / bounty_id
      Added value: +{
      +  "description": "Your own bounty: runs its pinned checks. Or optional context for check_pack_slug.",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • addedInput schema / properties / check_pack_slug
      Added value: +{
      +  "description": "Use criteria from a public check pack.",
      +  "maxLength": 80,
      +  "minLength": 3,
      +  "type": "string"
      +}
    • addedInput schema / properties / check_pack_version
      Added value: +{
      +  "description": "Pack version to use. Omit to use the version pinned by bounty_id, or the current version when bounty_id is absent.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / need / description
      Previous value: -"Acceptance criteria in plain words."New value: +"Acceptance criteria in plain words, drafted into checks the same way as the website, from these words and the delivery's column names only. The response lists the checks that ran; send them as criteria to repeat them exactly."
    • changedInput schema / properties / template_id / enum
      Previous value: -[
      -  "translation_glossary",
      -  "transcription",
      -  "test_suite",
      -  "merge_reconciliation",
      -  "rubric_scoring",
      -  "sourced_research"
      -]New value: +[
      +  "table_rows",
      +  "translation_glossary",
      +  "transcription",
      +  "test_suite",
      +  "merge_reconciliation",
      +  "rubric_scoring",
      +  "sourced_research"
      +]
  3. Added

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the side effect ('Nothing is stored unless save is true, which returns report_url'), the possible outcomes (pass/fail/could_not_verify), the conditional payloads on failure (rework.api, settlement), rate limits (20 free checks/month, 500 rows each), and the 402 failure mode with payable terms.

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?

It is dense and front-loads the core verb and the input modes before the version-resolution rule, output states, and billing limits. Every sentence carries information, though the middle sentences are long and packed with parenthetical asides that slow reading for a 14-parameter call.

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?

For a complex tool with no output schema, the description supplies return values, side effects, failure payloads, limits, and version-pinning rules, which is close to complete. Minor gaps remain: it does not restate the authentication requirement for contract_id (only the schema does) and says nothing about the source_context requirement beyond the schema text.

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 coverage is already 86%, so the baseline is 3; the description earns above that by explaining cross-parameter behavior the schema only implies, such as how check_pack_version resolves via bounty_id and how report_token reuses the saved criteria structure and origin. It adds interpretation rather than restating field descriptions.

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?

It states a specific verb and resource ('Privately check a received file against a template, plain-word requirements...') and enumerates the six input modes, which makes the tool's scope immediately clear. It stops short of naming or differentiating its nearest siblings (vendor_check_request, vendor_check_status, criteria_draft), so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real conditional guidance: check_pack_slug without check_pack_version uses the version pinned by bounty_id, otherwise the current version, and report_token 'adds a rerun delta'. It also states when storage occurs (save=true) and when a 402 is returned. There are no explicit when-not or sibling-alternative statements, so it is clear context without exclusions.

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.

Resources