ScoreFluent
Server Details
English exam prep: exam facts, practice questions and writing scores for PTE, IELTS, TOEFL.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Most tools occupy clearly separate slots (exam info, question serving, writing scoring, speaking practice, diagnostic link), and the descriptions actively police the fuzzy edges — practice_question explicitly redirects Read Aloud/Describe Image to speak_practice, and check_read_aloud warns it is content-only while speak_practice handles audio-based scoring. The only genuine confusion is between check_read_aloud, speak_practice, and practice_question, which all touch the Read Aloud workflow. The recorder_start/confirm/result trio is explicitly card-only, so an agent is unlikely to misselect among them.
All names are snake_case and the dominant pattern is verb_noun (score_writing, speak_practice, start_diagnostic, check_read_aloud). The recorder_* trio uses a deliberate noun-prefix grouping, which is readable, and exam_overview / practice_question are the mild outliers using noun-first phrasing. Minor deviations only, nothing confusing.
Nine tools is well-scoped for an exam-prep scoring assistant, covering exam info, question delivery, three scoring/practice paths, a diagnostic, and a three-step recording pipeline. Every tool maps to a distinct student intent and none appear redundant.
The surface covers the core lifecycle: discover the exam, get a question, answer it with scoring (writing directly, speaking via the recorder pipeline), and get a baseline via start_diagnostic. Gaps exist around reading/listening scoring (deferred to site links) and there is no tool to retrieve a student's saved History or past attempts, which means follow-up questions about previous results are dead ends.
Available Tools
9 toolscheck_read_aloudCheck a Read Aloud transcriptARead-onlyInspect
Use when a student has read a Read Aloud passage aloud and you have the transcript of what they said (for example from voice mode) but no audio. Compares the words said against the passage: omitted, inserted and substituted words and a word-accuracy percentage. CONTENT ONLY — pronunciation, fluency and prosody need a recording: offer speak_practice or the answer link for those.
| Name | Required | Description | Default |
|---|---|---|---|
| questionId | Yes | The questionId returned by speak_practice or practice_question for a Read Aloud passage. | |
| transcript | Yes | What the student said, as text. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | Yes | |
| matched | Yes | |
| omitted | Yes | |
| accuracy | Yes | |
| inserted | Yes | |
| answerUrl | Yes | |
| questionId | Yes | |
| substituted | Yes | |
| saidWordCount | Yes | |
| passageWordCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-annotation context that matters: this is a text-only content comparison and cannot assess pronunciation, fluency or prosody. It stops short of noting behavior for an invalid or non-Read-Aloud questionId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the usage condition, then the comparison behavior, then the boundary and alternative. No filler; every clause carries information an agent needs for selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (two required, fully documented params, output schema present to explain return values), and the description covers the selection condition and the tool's key limitation. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains that questionId comes from speak_practice or practice_question and that transcript is the student's spoken text. The description reinforces the transcript's provenance ('for example from voice mode') but adds no new constraints such as length limits or exact-match rules. Baseline 3 applies when the schema carries the parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compares the words said against the passage') and enumerates the outputs (omitted, inserted, substituted words, word-accuracy percentage). It is clearly distinguishable from the recorder_* and speak_practice siblings, which handle audio-based scoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Use when a student has read a Read Aloud passage aloud and you have the transcript ... but no audio') and an explicit exclusion with alternatives ('pronunciation, fluency and prosody need a recording: offer speak_practice or the answer link'). When-to-use, when-not-to-use, and the routing target are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exam_overviewExam overviewARead-onlyInspect
Use this when a student asks what an English exam contains, how a task type is scored, how long a section is, what the score scale is, or where to start preparing. Returns the exam sections with task types, question counts and time limits, the writing and speaking scoring criteria (writing with word limits), and links to ScoreFluent guides. Do not use this to score or mark a student's answer; it only describes the exam.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | Exam id, e.g. "pte", "toefl", "ielts", "languagecert_academic". | |
| taskType | No | Optional task-type slug (e.g. "write-essay") to narrow the answer to one task. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| label | Yes | |
| links | Yes | |
| scale | Yes | |
| scoredBy | No | |
| sections | Yes | |
| writingRubrics | Yes | |
| speakingCriteria | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond that: it is purely descriptive content, returns structural exam data plus scoring criteria with word limits, and includes links out to ScoreFluent guides. It does not discuss caching, size or pagination, but for a static reference lookup that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the usage triggers, then the return contents, then the exclusion. The trigger list is long but each item corresponds to a real query the agent might receive, so it earns its space. Slightly dense but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still summarizes the return shape in enough detail (sections, task types, counts, limits, scoring criteria, links) that an agent knows what it will get. Combined with the clear usage triggers and the explicit non-scoring boundary, nothing needed to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (the exam enum and the optional taskType slug) are already documented in the schema. The description hints at the narrowing behavior by mentioning task-type-level scoring detail, but adds no format or syntax guidance beyond what the schema supplies. Baseline 3 applies when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (English exam structure) and enumerates exactly what the tool returns: sections, task types, question counts, time limits, scoring criteria and guide links. It also explicitly separates itself from the scoring siblings by stating it does not score or mark answers, so an agent can distinguish it from score_writing without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete trigger conditions (student asks what an exam contains, how a task type is scored, how long a section is, what the score scale is, where to start preparing) and an explicit when-not clause ('Do not use this to score or mark a student's answer'). That negative case implicitly routes the agent to score_writing, covering both sides of the decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
practice_questionPractice questionARead-onlyInspect
Use this when a student wants a real practice question for an English exam task, for example "give me a PTE Write Essay prompt" or "a TOEFL listening question". Returns one random published question (prompt, passage, options, word limit, and an audio link for listening tasks) and a link where the student can answer it with the real timer and scoring. It never returns answers or model responses. Do not use it to check an answer; it only serves questions. For PTE Read Aloud or Describe Image, use speak_practice instead: it serves the question with a recorder so the student can answer and be scored in the chat.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | Exam id. Defaults to "pte". | pte |
| taskType | Yes | Task-type slug, e.g. "write-essay" or "listening-mcq-single". Call exam_overview to list the valid slugs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| pillar | Yes | |
| audioUrl | No | |
| question | Yes | |
| taskType | Yes | |
| answerUrl | Yes | |
| taskLabel | Yes | |
| difficulty | Yes | |
| questionId | Yes | |
| estimatedDurationSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, closed-world, non-destructive profile, and the description adds real behavior: the question is randomly selected from published items, it comes with a link to answer under the real timer with scoring, and it deliberately never exposes answers or model responses. Minor remaining gap: nothing about rate limits or what happens for an invalid taskType slug beyond the schema pointer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, then output, then exclusions and the alternative. Slight redundancy between "It never returns answers or model responses" and "Do not use it to check an answer", which cover overlapping ground.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with an output schema and full annotation coverage, the description supplies everything an agent needs: trigger conditions, returned content, the scoring link, an explicit no-answers guarantee, and routing to the correct sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description's examples pair the two parameters meaningfully (exam "PTE"/"TOEFL" with task kinds like Write Essay and listening), clarifying how exam and taskType interact. The valid-slug guidance directs the agent to exam_overview, though that lives in the schema rather than the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns one random published question") plus scope ("for an English exam task") and enumerates the returned payload. It immediately separates itself from speak_practice and from answer-checking tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger examples ("give me a PTE Write Essay prompt", "a TOEFL listening question"), an explicit exclusion ("Do not use it to check an answer; it only serves questions"), and a named alternative with the exact condition that selects it ("For PTE Read Aloud or Describe Image, use speak_practice instead").
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recorder_confirmSubmit a recordingAInspect
Confirm the upload and queue it for scoring. Called by the speaking recorder card only.
| Name | Required | Description | Default |
|---|---|---|---|
| attemptId | Yes | ||
| deviceToken | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate this is a non-read-only, non-idempotent, non-destructive operation, and the description adds that the result is queued for scoring. However, it does not explain duplicate-confirm behavior, what deviceToken authorizes, or what happens on failure. With annotations covering the safety profile, this is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no wasted wording. The main action is front-loaded, followed by the caller restriction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values need not be described, and annotations cover key safety traits. Still, the definition omits parameter semantics and does not address non-idempotent duplicate confirmation, which are meaningful gaps for a mutating recorder operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden for parameter meaning. It does not mention attemptId or deviceToken at all, leaving their roles to be inferred only from their names and UUID formats. This is a clear gap for a tool with two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and outcome: confirm the upload and queue it for scoring. It also narrows the caller to the speaking recorder card, which helps distinguish it from broader recorder tools. It does not explicitly compare against siblings such as recorder_start or recorder_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Called by the speaking recorder card only' gives a clear caller restriction and usage context. It does not name alternatives or explain when not to call it, but the caller constraint is strong enough to guide invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recorder_resultRecording resultBRead-onlyInspect
Read the scoring status and scores for a recording. Called by the speaking recorder card only.
| Name | Required | Description | Default |
|---|---|---|---|
| attemptId | Yes | ||
| deviceToken | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| scores | No | |
| status | Yes | |
| transcript | No | |
| fullReportUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered and the description's 'read' framing adds nothing new. The one piece of behavioral context it contributes is the caller restriction to the speaking recorder card; it does not describe what a pending/low-scoring response looks like or any failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded and no filler. The phrase 'speaking recorder card' is a bit internal/cryptic but costs only a few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and annotations cover the safety profile. Still, for a two-required-parameter read tool, the description leaves parameter meaning and the polling/status lifecycle unexplained, which are the remaining gaps an agent would hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two required parameters (attemptId and deviceToken), both bare UUID patterns with no prose. The description does not explain what an attemptId refers to, where it comes from, or what deviceToken authorizes, so the agent gets no help beyond the schema's type constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Read the scoring status and scores for a recording.' That is clearly distinct from siblings like recorder_start, recorder_confirm, and score_writing, which cover starting, confirming, and writing scores. It does not explicitly name an alternative, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Called by the speaking recorder card only' restricts the caller context, which is useful routing information the schema does not carry. However, it says nothing about prerequisites (e.g., that a recorder_start/recorder_confirm must have happened first) or what to do if scoring is still pending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recorder_startStart a recordingBInspect
Reserve a recording slot and get an upload URL. Called by the speaking recorder card only.
| Name | Required | Description | Default |
|---|---|---|---|
| mimeType | Yes | ||
| questionId | Yes | ||
| deviceToken | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| attemptId | Yes | |
| uploadUrl | Yes | |
| expiresInSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=false, so the mutation and non-idempotency profile is known. The description adds that a slot is reserved and a URL returned, but says nothing about how long the reservation lives, whether abandoning it leaks state, or that a follow-up confirm step is required — which matters most for a non-idempotent booking operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the primary effect (reserve slot, get URL) front-loaded and the caller restriction second. No filler and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return payload explanation isn't required. However, for a non-idempotent write tool with three fully undocumented parameters, the definition omits the lifecycle context (reservation expiry, required follow-up call) an agent needs to use it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three required parameters have 0% schema description coverage, so the description must compensate and does not — deviceToken, questionId, and mimeType are never mentioned. An agent gets no hint that questionId should correspond to an existing practice question or what the device token represents, leaving it to infer from the UUID formats and the mimeType enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and outcome — reserve a recording slot and receive an upload URL — which is clearly distinct from siblings recorder_confirm and recorder_result. It doesn't explicitly contrast with those siblings, but the verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Called by the speaking recorder card only" is a real usage restriction that tells the agent this is a narrow, UI-driven entry point rather than a general tool. It stops short of naming the alternative tools or describing the start/confirm ordering, so the when-to-use guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_writingScore writingAInspect
Use this when a student pastes an essay or summary for a PTE, IELTS, TOEFL, LanguageCert, MET or CELPIP writing task and wants a score. Returns marks out of the exam task maximum, a score and one line of feedback for each marking criterion, and the top improvements. Pass the questionId from practice_question when the text answers one of our questions; otherwise pass the prompt the student wrote to. Pass exactly one of the two. Free up to a daily limit. This is the quick score: Personalised Tips on the site add sentence-level annotations and verified marks. When the student is signed in to ScoreFluent and the text answers one of our questions, the scored attempt is saved to their History.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | Exam id, e.g. "pte" or "toefl". | |
| text | Yes | The student's essay or summary, exactly as they wrote it. | |
| prompt | No | The prompt the student wrote to, when the text does not answer one of our questions. | |
| taskType | Yes | Writing task-type slug, e.g. "write-essay" or "summarize-written-text". Call exam_overview to list the valid slugs. | |
| questionId | No | The questionId returned by practice_question, when the text answers one of our questions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| tier | Yes | |
| marks | Yes | |
| criteria | Yes | |
| taskType | Yes | |
| wordCount | Yes | |
| questionId | No | |
| improvements | Yes | |
| fullReportUrl | Yes | |
| overallFeedback | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: a free-tier cap ('free up to a daily limit') and a persistence side effect ('the scored attempt is saved to their History' when signed in), which explains why readOnlyHint is false while destructiveHint stays false. It does not say what happens at the limit or on failure, so it stops short of full behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the trigger, then the return shape, then the parameter routing, then differentiators — a sensible order with no filler sentences. It is dense and slightly run-on (the fragment 'Free up to a daily limit.'), so it is efficient rather than elegant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the decisions an agent must make — which exam text qualifies, which of the two optional params to supply, what comes back, quota, account-dependent persistence, and the alternative tool. With an output schema present, it does not need to spell out return structure further, and nothing required for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a constraint the schema does not encode: questionId and prompt are mutually exclusive and exactly one must be supplied. It also ties questionId's provenance to practice_question and prompt's role to off-catalogue prompts, though it leaves exam/taskType semantics to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (score a student's essay/summary) and scopes it to named exam families (PTE, IELTS, TOEFL, LanguageCert, MET, CELPIP). It also states the exact return payload — marks out of the task maximum, a score plus one line of feedback per criterion, and top improvements — and explicitly contrasts itself with 'Personalised Tips', so an agent can separate it from nearby scoring options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Fires on a concrete trigger ('when a student pastes an essay or summary ... and wants a score') and gives the routing rule for the two optional inputs: pass questionId when the text answers one of our questions, otherwise pass the prompt, and pass exactly one. It names the alternative path (Personalised Tips) for sentence-level annotations and verified marks, so when-not-to-use is covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speak_practiceSpeaking practiceARead-onlyInspect
Use whenever a student asks for a PTE Read Aloud or Describe Image to practise, even without mentioning recording or scores. Lets them practise the speaking task and get pronunciation and fluency scores. Shows a recorder card; desktop web only today. Do not use for scoring text.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | Exam id. Defaults to "pte". | pte |
| taskType | No | "read-aloud" or "describe-image". Defaults to "read-aloud". | read-aloud |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| prompt | Yes | |
| taskType | Yes | |
| answerUrl | Yes | |
| taskLabel | Yes | |
| questionId | Yes | |
| timeLimitSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new operational context: it renders a recorder card and is 'desktop web only today,' a platform constraint an agent could not derive from structured fields. It stops short of saying what happens on unsupported platforms or how the recorder_start/recorder_result siblings relate, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the usage trigger before the capability statement and the exclusion. Every clause carries information. The semicolon fragment 'Shows a recorder card; desktop web only today' is terse but dense with useful constraints, so only minor polish is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and the description still tells the agent what the student gets back (pronunciation and fluency scores). For a two-optional-parameter read-only tool this is close to complete. The remaining gap is the platform fallback and the handoff to the recorder_* siblings, which the description never mentions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters carry enum values and inline descriptions, so the schema already does the heavy lifting. The description maps its prose to the taskType values ('Read Aloud', 'Describe Image') and confirms the PTE focus that matches the exam default, but adds no syntax or format detail beyond that. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it lets a student practise a PTE Read Aloud or Describe Image speaking task and receive pronunciation and fluency scores. It also distinguishes itself from text-scoring siblings with the closing 'Do not use for scoring text.' An agent can separate it from score_writing and check_read_aloud without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger condition is explicit and unusually generous: 'Use whenever a student asks for a PTE Read Aloud or Describe Image to practise, even without mentioning recording or scores.' The exclusion is equally explicit: 'Do not use for scoring text.' Both the when and the when-not are stated outright, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_diagnosticStart a diagnosticARead-onlyInspect
Use when a student does not know which exam to take (diagnostic) or knows the exam and wants a starting baseline (placement). Returns a link to a free test on the site; do not try to run the test in chat.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | Exam id when the student already knows it, e.g. "pte". Omit when they are not sure which exam to take. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| kind | Yes | |
| what | Yes | |
| minutes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds genuinely useful behavior beyond that: the result is a link to an external test on the site, and the agent must not attempt to administer the test inside the chat. It doesn't discuss link expiry, session persistence, or what happens on repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The usage trigger leads, the return value follows, and the prohibition against running the test in chat closes it — everything is front-loaded and each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, full schema coverage, and an output schema handling return structure, the description covers everything an agent needs to decide and call. The only missing piece is guidance on what to tell the student to do with the returned link (e.g., that they should open it themselves), which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single enum parameter already documents 'Omit when they are not sure which exam to take' as well as giving the 'pte' example. The description's mention of omitting the exam duplicates schema content rather than extending it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states two concrete scenarios — no exam chosen (diagnostic) vs. exam known but wanting a baseline (placement) — and clarifies the output is a free test link on the site rather than an in-chat test. This differentiates it from siblings like practice_question or score_writing, though the differentiation is implied by the return behavior rather than named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear trigger conditions are given for both modes (student unsure of exam, or ready for a baseline placement), plus an explicit when-not: 'do not try to run the test in chat.' It doesn't name any sibling tool as an alternative, so it falls short of the top band, but the routing conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
check_read_aloud - First observed
exam_overview - First observed
practice_question - First observed
recorder_confirm - First observed
recorder_result - First observed
recorder_start - First observed
score_writing - First observed
speak_practice - First observed
start_diagnostic
Related MCP Connectors
Read-only MCP for PTE Academic question types, sample questions, test format and score requirements.
Free IELTS prep: band-scored student essays and interactive Listening/Reading drills graded in-chat.
IELTS writing practice, study plans, lessons and vocabulary with optional account tools.
Exam facts, outlines, pricing, study guides and sample questions for CIPS L4, PMP and PRINCE2.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGenerates timed exams on any topic with an interactive exam sheet in MCP hosts; supports true/false, multiple-choice, and open questions with instant or model grading and a final report out of 100.25 npm1MIT
- AlicenseBqualityCmaintenanceEnables deterministic IELTS answer checking, evidence-grounded explanations, error-cause classification, spaced repetition of mistakes, and progress reports, with data stored locally.10MIT
- AlicenseNot gradedqualityBmaintenanceEnables students to ask by voice whether a specific topic is examinable on their exam — the digital SAT and PSAT, ACT, 24 AP courses, Alberta Diploma, and Singapore-Cambridge A-Level — returning the official syllabus's own wording, objective codes, and quoted exclusions rather than a guess. It also remembers which exams a student is taking and when, quizzes them on objectives, and reports weakest topics and days remaining for revision.MIT
- AlicenseNot gradedqualityDmaintenanceA professional 1-on-1 English tutoring server that enables AI assistants to provide oral practice, grammar correction, and vocabulary recommendations. It features specialized tools for generating conversation topics, tracking progress, and creating immersive role-play scenarios.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.