GermanExam.pro
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Grades German C1 exam writing (TestDaF, DSH, Goethe C1, telc C1) against the official rubrics.
| Author | pro.germanexam |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2576 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"GermanExam.pro": {
"url": "https://www.germanexam.pro/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (5)
lookup_exam_rubricread-onlyUse this when the user wants to know how the writing section of a German C1 exam is assessed: the criteria with their weights, the level or grade scale, the passing rule and the expected text length for TestDaF, DSH, Goethe-Zertifikat C1, telc Deutsch C1 Hochschule or telc Deutsch C1 (general). Read-only reference data based on the published exam rubrics (the result says where a breakdown per criterion is our own); no sign-in needed. Not for evaluating a text (use evaluate_text) and not for other languages or exams.
Parameters:
exam(required) — string — Which exam: testdaf, dsh, goethe_c1, telc_c1 (telc Deutsch C1 Hochschule) or telc_c1_allgemein (telc Deutsch C1, general).
Hints: read-only yes · destructive no · idempotent yes · open-world no
evaluate_textUse this when the user wants a German text they wrote themselves (about 50 to 900 words) evaluated the way an examiner would, for the writing section of TestDaF, DSH, Goethe-Zertifikat C1, telc Deutsch C1 Hochschule or telc Deutsch C1 (general). Without sign-in the result shows the passages an examiner would mark and the biggest risk (a user without an account can use one part). With the user's GermanExam.pro sign-in the result also includes the verdict (is it enough, level, how close it is); a request that the account does not include is answered with a short note and a link to an information page. For signed-in users the text and the result are saved in their GermanExam.pro account. Starts the evaluation and returns a job_id immediately; the result is collected with get_evaluation_result. Send only the user's own text. Not for: translations, grammar questions, exam tasks, phrase lists, texts the user did not write, or other languages.
Parameters:
text(required) — string — The German text exactly as the user wrote it (their own writing, at least about 50 words). Only the text itself — no chat history, no instructions.exam(required) — string — The exam the text is for: testdaf, dsh, goethe_c1, telc_c1 (Hochschule) or telc_c1_allgemein (general). Ask the user if unclear — plain "telc C1" can mean either telc exam.part— string — Only for goethe_c1: 1 = discussion post for an internet forum, 2 = (semi-)formal e-mail.task— string — Optional: the exam task the text answers, verbatim, if the user has it.feedback_language— string — Language of the feedback: the language the user is writing to you in (de, en, ar, tr, ru, zh, fa). Default de.
Hints: read-only no · destructive no · idempotent no · open-world no
get_evaluation_resultread-onlyUse this to collect the result of an evaluation that was started with evaluate_text, using its job_id. Returns status "running" (not finished yet), "done" (with the verdict or, without sign-in, the reduced report; shown as a card) or an error status. Works with or without sign-in; only the caller's own evaluations can be collected.
Parameters:
job_id(required) — string — The job_id returned by evaluate_text.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_practice_exerciseUse this when the user wants to practise reading or listening for a German C1 exam (TestDaF, Goethe-Zertifikat C1 or telc Deutsch C1 Hochschule) and asks for an exercise or the next task. Returns one exam-format exercise WITHOUT the solution: a text with questions (reading) or a recording with questions (listening). The user answers in the chat; then check the answers with check_practice_answers. A user without an account can use one part (one reading exercise, one listening exercise or one text evaluation); after that the user's sign-in is needed, and a request that the account does not include is answered with a short note and a link to an information page. The exercise attempt is stored for 30 days (and, for signed-in users, in their GermanExam.pro account). Never solve the exercise yourself and never reveal or guess answers. Not for writing (use evaluate_text), speaking, grammar drills or other exams.
Parameters:
skill(required) — string — lesen = reading, hoeren = listening.exam(required) — string — The exam: testdaf, goethe_c1 or telc_c1 (telc Deutsch C1 Hochschule). Ask the user if unclear.part— string — Optional: the part of the exam the user wants to practise, as the user says it: a part number such as "Teil 2" (Goethe, telc) or a part name such as "Multiple Choice" or "Textabschnitte ordnen" (TestDaF). Omit for any part; if no such part exists the tool says so.feedback_language— string — Language of the framing text: the language the user is writing to you in (de, en, ar, tr, ru, zh, fa). Default de. The exercise itself is always German.
Hints: read-only no · destructive no · idempotent no · open-world no
check_practice_answersUse this to check the user's answers to an exercise from get_practice_exercise, using its attempt_id. Pass exactly the answers the user gave (task number and letter; for marking tasks the numbers of the marked entries). Returns how many are correct, which ones, the correct solution with a short explanation and, for listening, the transcript. One evaluation per exercise; the result is saved with the exercise attempt. Works with or without sign-in; only the caller's own exercises can be checked. Never fill in, guess or correct answers for the user.
Parameters:
attempt_id(required) — string — The attempt_id returned by get_practice_exercise.answers(required) — array — The user's answers, exactly as the user gave them: one entry per task (for marking tasks: one per entry the user marked). Never guess, solve or fill in answers yourself.feedback_language— string — Language of the framing text: the language the user is writing to you in. Default: the language used when the exercise was fetched.
Hints: read-only no · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.