Cert Made Easy
Server Details
Look up certification exams and practise free exam-style questions with explanations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a fairly distinct role, but list_exams and search_exams both return exam listings and could be confused at a glance; the descriptions clarify the vendor-based vs. keyword-based distinction. get_exam_details and search_exams also overlap in returning exam metadata, though details is clearly deeper.
All six tools follow a consistent snake_case verb_noun pattern (check_answer, get_exam_details, get_practice_questions, get_study_paths, list_exams, search_exams). The verbs are predictable and map cleanly to actions.
Six tools is a well-scoped set for a certification exam prep server, covering discovery, details, practice, answer checking, and study paths without bloat. Each tool earns its place.
The surface covers the core workflow from browsing vendors to practicing and checking answers, plus study paths. However, the timed mock exam mentioned in get_exam_details has no corresponding tool, and there is no way to access a full paid practice set, leaving minor gaps.
Available Tools
6 toolscheck_answerCheck an answerARead-onlyIdempotentInspect
Check the user's answer to a question from get_practice_questions.
selected is the option letters the user chose, e.g. ["B"] or ["A", "D"].
Returns whether it is right, the correct letters and the explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | ||
| selected | Yes | ||
| question_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| correct | Yes | |
| selected | Yes | |
| explanation | Yes | |
| question_id | Yes | |
| correct_options | Yes | |
| more_questions_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value beyond that by disclosing the response contents (correctness, correct letters, explanation), which tells the agent it is a pure evaluation call with no state change. It stops short of stating whether answers are recorded as progress/mastery.
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: purpose, the one ambiguous parameter's format, and the return shape. Front-loaded and zero 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, so the brief return summary is a bonus rather than a necessity. The only real gap is the format of `exam` (identifier vs. slug) and the exact shape of `question_id` as produced by get_practice_questions — worth one clause given 0% schema coverage.
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 has to carry all three parameters. It fully disambiguates `selected` with concrete examples (["B"], ["A", "D"]), which is the parameter most likely to be mis-formed, but leaves `exam` and `question_id` entirely unexplained — their expected format and provenance must be inferred from get_practice_questions.
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 ('check the user's answer') and immediately anchors it to the sibling that produces the input ('a question from get_practice_questions'). An agent can tell this apart from the read-only exam/practice retrieval siblings without opening a 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 workflow dependency is explicit: this is the tool to call on a question returned by get_practice_questions. It does not spell out when NOT to use it or name alternatives, but for a grading endpoint the sequencing guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exam_detailsGet exam detailsARead-onlyIdempotentInspect
Describe one exam: the vendor's real exam (official code, question
count, fee, domains and their weights) and our practice set for it
(size, free questions, price, timed mock exam). exam is a set_id from
search_exams or an official exam code.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | Yes | |
| mock_exam | Yes | |
| description | Yes | |
| practice_set | Yes | |
| try_free_url | Yes | |
| official_exam | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description's added value is the dual accepted input form (set_id or official code) and the two-part response shape, but it says nothing about error behavior for an unknown code or whether both exam forms are always resolvable.
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, no filler; the payload description leads and the parameter clarification follows, so the most decision-relevant content is front-loaded.
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 needn't be spelled out; the description still sketches them, which aids tool selection. With annotations covering the safety profile and the sole parameter explained, only minor edge-case behavior is unaddressed.
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 0% and the schema only labels the field 'Exam', so the description carries the burden — and it does, explaining that `exam` accepts either a set_id from search_exams or an official exam code. It omits format examples (e.g., typical code shape) or case/format rules, keeping it just below top marks.
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 ('Describe one exam') and enumerates the exact payload: official code, question count, fee, domain weights, plus practice-set size, free questions, price, and timed mock. The scope (one exam, both vendor and practice data) is distinct from list_exams/search_exams and from get_practice_questions.
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?
Tells the agent how to obtain the required input ('a set_id from search_exams or an official exam code'), which implicitly routes the agent through search_exams/list_exams first. It stops short of explicit when-not-to-use guidance or naming get_practice_questions as the alternative for drilling into questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_practice_questionsGet free practice questionsARead-onlyIdempotentInspect
Return up to five free sample questions for an exam, each with its correct option letters and a written explanation. Show the question and options, let the user answer, and only then reveal the answer and the explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | ||
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| exam_code | Yes | |
| questions | Yes | |
| how_to_use | Yes | |
| more_questions_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only and idempotent behavior is already covered by annotations, so the description earns credit for what annotations cannot express: the result includes answers and explanations and must not be revealed before the user answers. The 'up to five' ceiling is also useful, though its relationship to the count parameter is left unclear.
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 with the return payload front-loaded and the interaction rule following. Every sentence serves a purpose, though the reveal instruction could be tightened.
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-shape explanation is not required, and the description correctly stays brief there. The gap is on the input side: with both parameters undocumented in the schema, the description should have specified how to identify the exam and how count interacts with the 'up to five' cap.
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 load, yet it never names or explains either parameter. It implies an exam argument without saying whether it is an ID, slug, or name, and 'up to five' hints at a size limit without acknowledging that count is caller-settable or what its bounds are.
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 ('return ... free sample questions for an exam') plus the payload (correct option letters and explanation). This clearly separates it from siblings like check_answer and get_exam_details, which do not fetch question sets.
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 description gives a presentation workflow (show question and options, let the user answer, then reveal), which is real usage guidance. But it never states when to call this versus check_answer, nor any prerequisites or exclusions, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_study_pathsGet certification study pathsBRead-onlyIdempotentInspect
Recommended exam order for each career role at one vendor (e.g. "aws", "Microsoft Azure"), from first exam to last.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| paths | Yes | |
| vendor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds the meaningful behavioral fact that results are ordered as a recommended progression per career role, not an arbitrary list. It does not say whether vendors with no defined paths return empty or error.
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?
A single front-loaded sentence with no filler. It is arguably slightly too terse given the unstated ordering-vs-filtering behavior, but nothing is wasted.
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 safety. What remains missing is the vendor identifier format and the empty-result behavior, which matter for a tool whose only input is an unvalidated string.
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 the single 'vendor' parameter, so the description must compensate. It provides example values ('aws', 'Microsoft Azure'), which is genuinely useful, but the casing and formatting are inconsistent between the two examples, leaving ambiguity about whether the value is a name, slug, or ID.
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 specifies the resource precisely: recommended exam order per career role, scoped to one vendor, first exam to last. It is a noun phrase rather than a verb+resource statement, but an agent can still tell this apart from list_exams (a flat list) and get_exam_details (single exam). Sibling differentiation is implicit rather than stated.
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?
There is no guidance on when to call this versus list_exams or search_exams, and no mention of prerequisites or what happens with an unknown vendor. The agent must infer usage from the one-line description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_examsList exams by vendorARead-onlyIdempotentInspect
Without a vendor, list the certification vendors covered and how many exams each has. With a vendor (a name such as "Microsoft Azure" or a code such as "aws", "iapp", "isc2"), list that vendor's exams.
| Name | Required | Description | Default |
|---|---|---|---|
| vendor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| exams | No | |
| vendor | No | |
| vendors | No | |
| catalog_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description earns credit by disclosing the dual-mode contract and what a no-vendor call returns (vendors plus per-vendor exam counts), which is behavioral information not present in any structured field.
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, no filler, with the more common no-argument case stated first and the parameterized case second. Every clause carries information an agent needs.
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-shape explanation is not required, and the description covers both invocation modes plus the parameter's accepted forms. The remaining gap is failure/edge behavior — whether an unknown vendor errors or yields an empty list — which matters for a lookup tool.
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 carries the full burden for the single `vendor` parameter, and it does so well: it is optional, accepts either a human-readable name or a short vendor code, and gives four example values. It does not say what happens on an unmatched or abbreviated vendor string.
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 and, more usefully, the two distinct behaviors the tool has depending on whether `vendor` is supplied: vendor+count enumeration versus per-vendor exam listing. It never names `search_exams` as the alternative, so an agent must infer when to prefer the search sibling over this listing.
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?
Explicitly frames the two call modes ('Without a vendor...' / 'With a vendor...') and gives concrete accepted value shapes — a display name like "Microsoft Azure" or a code like "aws", "iapp", "isc2". That is real procedural guidance, but there is no statement of when to reach for `search_exams` instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_examsSearch certification examsARead-onlyIdempotentInspect
Find certification exams by official code (e.g. "SAA-C03", "CIPP/E"), name (e.g. "Azure Administrator") or topic (e.g. "GDPR"). Returns the matching practice sets with their size, free questions and price.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes | |
| catalog_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and a closed-world scope, so the safety profile is covered. The description adds the return payload shape (practice sets with size, free questions, price), which is useful context, but says nothing about empty-result behavior or how many matches come back by default.
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 tight sentences with the matching criteria front-loaded and examples embedded inline rather than as a list. The closing sentence restates return fields that the output schema already declares, which is the only wasted weight.
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 full annotation coverage and an output schema, the description supplies what structured fields cannot: the three matching modes. The only real gap is the undocumented limit parameter and unspecified default result count.
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 parameter burden. It does a good job on query by enumerating code/name/topic matching with concrete examples, but the limit parameter is never mentioned — no default, no maximum, no effect on result count — leaving half the surface undocumented.
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?
Specific verb ("Find") plus a concrete resource ("certification exams") with three example query forms that make the matching semantics unambiguous. It does not differentiate itself from the sibling list_exams, so an agent must still infer which of the two is the browsable-listing tool.
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 examples of acceptable query inputs imply when this tool applies (you have a code, name, or topic in hand), but there is no explicit when-not guidance and no routing to list_exams or get_exam_details. Usage is inferable rather than stated.
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.
6 tool updates
- First observed
check_answer - First observed
get_exam_details - First observed
get_practice_questions - First observed
get_study_paths - First observed
list_exams - First observed
search_exams
Related MCP Connectors
Certification exam practice as a town-building game: AWS, Security+, PMP, CFA, Claude and more.
Practice questions for the four Claude certifications. The assistant never sees the key.
Free, unofficial practice questions for four Claude certifications, plus an AI blog (EN/PL).
Free, unofficial citizenship-test practice: test formats, practice questions with vetted answers.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI assistants to search an exam-prep catalog, retrieve 204 free practice questions with answers and explanations across 15 IT and nursing certifications, check pricing, and get official exam facts.MIT
- AlicenseAqualityBmaintenanceMCP server over the open index of 1,562 certification exam blueprints across 217 certifying bodies. Search exams, pull full blueprints (domains & weights, passing scores, prerequisites, renewal), and compare certifications. Read-only, public data, no API key.41MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Dynamics 365 Finance & Operations certification prep, enabling interactive drills with accuracy tracking and review.MIT
- AlicenseAqualityCmaintenanceEnables querying structured study plans, code challenges, and ASCII certificates for JavaScript, Python, and TypeScript tracks at beginner or advanced levels via natural language.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.