Skip to main content
Glama

Create Exam Paper from Text

paper_create

Create a complete, markable exam paper from pasted text. Provide the question paper text (required) and, if the teacher has one, the mark scheme text — DeepMark extracts it. Omit the mark scheme to have DeepMark generate schemes (lower quality, but the paper is still markable). Send RAW text: do not pre-structure it into questions or author a mark scheme yourself. Extraction runs asynchronously — this returns a job_id. Poll ingestion_get until it reaches awaiting_confirmation, then call paper_confirm to mint the paper. RATE LIMITED: up to 3 papers per 24 hours per account (marking existing papers is unaffected).

Input Schema

NameRequiredDescriptionDefault
hintsNoOptional cover-identity hints. SOFT grounding for extraction — they steer the model, they do not override the paper text.
stimulus_textNoOptional source/stimulus material the questions refer to (a passage, dataset, case study). Supplied as extraction context; it is not itself turned into questions.
mark_scheme_textNoRAW text of the mark scheme, if the teacher has one. Read jointly with the question paper so marks and numbering align. Send raw text, NOT a mark scheme you authored. Omit entirely when there is no mark scheme — DeepMark generates one per question (lower quality than a real scheme, but the paper is still markable).
question_paper_textYesRAW text of the question paper — questions, bracketed marks, section headers, as printed or pasted. Send the source text and let DeepMark extract the questions. Do NOT pre-structure it into questions yourself.

Output Schema

NameRequiredDescriptionDefault
job_idYes
statusYesThe job's initial status (pending).
poll_withYesThe tool to poll this job with (ingestion_get).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedOutput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changed
    • removedInput schema / properties / hints / properties / year_group
      Removed value: -{
      -  "description": "Teacher's class / year group — free text, e.g. 'Year 11'.",
      -  "type": "string"
      -}
  3. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond annotations (which only say it is a non-readonly, non-idempotent, non-destructive write): it discloses asynchronous execution, the returned job_id, the required polling handshake, a hard rate limit of 3 papers per 24 hours, and the quality tradeoff when no mark scheme is supplied. It also clarifies marking existing papers is unaffected by the limit.

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

Conciseness5/5

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

Front-loads the purpose, then the required input, then the optional path, then the async workflow, then the rate limit — a logical ordering with no wasted sentences. Capitalized RATE LIMITED emphasis highlights the constraint that would most likely cause a failed call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/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 described, yet the description still names the key field (job_id) and the follow-up calls. Combined with the rate limit and raw-text requirement, an agent has everything needed to invoke and complete the flow correctly.

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 all four parameters including the nested hints object are already documented in the schema. The description reinforces the required/optional split and the 'send raw text' constraint, but adds no syntax, format, or length detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Create a complete, markable exam paper from pasted text' — and the scope (extraction from raw text) is unmistakable. It is clearly distinguishable from siblings like paper_confirm, ingestion_get, and paper_get, which are named as separate steps.

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

Usage Guidelines5/5

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

Gives the full workflow explicitly: call this, poll ingestion_get until `awaiting_confirmation`, then call paper_confirm. It also states the conditional path for the mark scheme (supply it if available, omit it to have DeepMark generate one) and the negative instruction not to pre-structure text.

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