Skip to main content
Glama

SearchCAIE MCP Server

Standalone MCP server for Search CAIE past-paper search.

Features

  • Core search tools for single-topic and multi-topic queries

  • Filters for subject, paper, year, session, chapter, mode, and pagination

  • LLM-friendly tool responses: concise text preview plus structured JSON

  • Multi-topic search returns recommended_ids for quick follow-up retrieval

  • get_questions supports both compact (default) and full detail modes

  • Backward-compatible inputs: comma-separated strings and native arrays

  • Upstream retries and structured error handling

Related MCP server: arXiv MCP Server

Tool behavior notes

  • search_multi accepts either topics (comma-separated string) or topics_list (array)

  • get_questions accepts either question_ids (comma-separated string) or question_ids_list (array)

  • get_questions defaults to detail="compact" to reduce token usage and improve LLM answer quality

Install

pip install .

Or from git:

pip install "git+https://github.com/Pixel2075/searchcaie-mcp.git"

Claude Desktop config

{
  "mcpServers": {
    "searchcaie-search": {
      "command": "searchcaie-mcp",
      "env": {
        "MCP_API_BASE": "https://api.searchcaie.com/api"
      }
    }
  }
}

MCP_DEFAULT_SUBJECT is optional. If omitted, the server does not apply a subject filter by default.

Environment variables

  • MCP_API_BASE (default: https://api.searchcaie.com/api)

  • MCP_DEFAULT_SUBJECT (optional; if unset, no default subject filter is applied)

  • MCP_REQUEST_TIMEOUT (default: 30)

  • MCP_TRANSPORT (default: stdio)

  • MCP_HOST (default: 127.0.0.1)

  • MCP_PORT (default: 8000)

  • MCP_PATH (default: /mcp)

Run directly

searchcaie-mcp

Run as a remote MCP server

MCP_TRANSPORT=streamable-http \
MCP_HOST=0.0.0.0 \
MCP_PORT=8000 \
MCP_PATH=/mcp \
searchcaie-mcp

Available Tools

7 tools
get_questionsGet Questions By IDsA
Read-onlyIdempotent

Fetch full question details and mark schemes for selected IDs.

Accepts either question_ids (comma-separated) or question_ids_list. Default detail is compact for LLM-friendly responses.

Returns for each question:

  • Full question text and context

  • Key mark scheme points (authoritative answers)

  • Paper identification

  • question_url: link to full question page

  • Image URLs (question_image_url, ms_image_url) for image-based questions

Use include_images=True to get image URLs for ALL questions (not just image-based). Use include_ocr=True to get OCR text extracted from question images.

ParametersJSON Schema
NameRequiredDescriptionDefault
question_idsNo
question_ids_listNo
detailNocompact
max_key_pointsNo
include_imagesNo
include_ocrNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, ensuring safe behavior. The description goes further by detailing exactly what is returned (e.g., mark schemes, image URLs, OCR text) and how include_images and include_ocr affect the output, providing comprehensive behavioral context.

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?

The description is concise and front-loaded, but it is a single paragraph that mixes parameter info with return values. A slightly more structured format could improve readability, but it is not overly verbose.

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?

Given 6 parameters with no required fields and no output schema, the description covers all essential aspects: purpose, ID input formats, detail options, image/OCR flags, and return structure. It is self-contained and sufficient for an agent to use the tool correctly.

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?

The description explains the purpose of 5 out of 6 parameters (question_ids, question_ids_list, detail, include_images, include_ocr), compensating for the 0% schema coverage. Only max_key_points is not explained explicitly, but its effect is partially implied by the mention of key mark scheme points.

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?

The description clearly states the tool fetches full question details and mark schemes for selected IDs, using a specific verb and resource. It distinguishes itself from sibling tools like search_questions, which is for searching by keywords.

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?

The description explains the two parameter options for IDs and the default detail mode, giving clear usage context. However, it lacks explicit guidance on when not to use this tool versus alternatives like search_questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsGet Database StatsA

Get overall API statistics and service health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It only states the purpose without disclosing safety, idempotency, or side effects, which is insufficient for a tool with no annotation support.

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?

Single sentence, no redundancy, perfectly concise for a simple tool.

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?

Given no parameters and presence of an output schema, the description is mostly complete for a basic stats/health endpoint. However, it could elaborate on what 'API statistics' entails to improve agent understanding.

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?

The input schema has zero parameters with 100% coverage, so the baseline is 4. The description does not add parameter info since none exist, but it also does not detract.

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?

The description clearly states the action ('Get') and the resource ('overall API statistics and service health'), distinguishing it from sibling tools which focus on questions, reports, and searches.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description is minimal with no explicit context or exclusion criteria, leaving the agent to infer usage solely from the tool name and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_examiner_reportsSearch Examiner ReportsA
Read-onlyIdempotent

Search Cambridge examiner report commentary for insights on how a topic is examined.

Returns examiner observations including:

  • What examiners expect in answers on this topic

  • Common mistakes candidates make

  • Tips for how to structure answers to gain full marks

Use AFTER searching questions to understand examiner expectations on the same topic. Examiner reports are the most authoritative source for HOW to answer, not WHAT to answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
subjectNo
paperNo
yearNo
limitNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds behavioral context about the type of insights returned (examiner observations, common mistakes, tips). No contradiction with annotations.

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?

Description is concise, front-loaded with purpose, uses a bullet list for return types, and fits in a few sentences without unnecessary words.

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?

Covers the purpose, return type, and usage guidance effectively. Does not explain pagination or exact output format, but for a search tool with no output schema, it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the individual parameters (subject, paper, year, limit) beyond their names. The general purpose of the query is clear, but filter parameters lack explanation.

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?

Clearly states it searches Cambridge examiner reports for insights on how a topic is examined. Lists specific return types (examiner expectations, common mistakes, tips). Differentiates from siblings by specifying it is about HOW to answer, not WHAT, and advises use after searching questions.

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?

Explicitly says 'Use AFTER searching questions to understand examiner expectations on the same topic.' Provides clear context for when to use, but does not give explicit alternatives for when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_multiSearch Multiple TopicsA
Read-onlyIdempotent

Search multiple topics and deduplicate by question ID.

Accepts either topics (comma-separated string) or topics_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicsNo
topics_listNo
subjectNo
paperNo
yearNo
sessionNo
chapterNo
modeNohybrid
limit_per_topicNo
max_resultsNo
expandNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already confirm read-only and idempotent behavior. The description adds value by noting deduplication by question ID and the flexibility of accepting either 'topics' string or 'topics_list' array.

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?

Two short sentences: the first states purpose and key behavior, the second explains the alternative parameter formats. Front-loaded and efficient.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters and no output schema, the description omits critical details about filtering parameters (subject, year, etc.) and the structure of the response, making it insufficient for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only explains 'topics' and 'topics_list', leaving 9 out of 11 parameters (e.g., subject, paper, year, mode) completely undocumented, failing to compensate for the schema gap.

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?

The description clearly states that the tool searches multiple topics and deduplicates by question ID, distinguishing it from sibling tools like search_questions which likely handle single topics.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives like search_questions or search_web_context, leaving the agent to infer based on the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_questionsSearch QuestionsB
Read-onlyIdempotent

Search past-paper questions with optional filters.

Returns ranked questions with compact metadata. Each result includes:

  • Paper identification (paper, year, session, variant, paper_label)

  • Question number, marks, relevance score

  • Whether it's image-based (if so, question_image_url and ms_image_url are provided)

  • topic_signal: exam frequency and importance summary

  • question_url: link to full question page

NEXT STEP: Call get_questions(question_ids_list=[...]) with the recommended_ids to get full question text, mark scheme key points, and images.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
subjectNo
paperNo
yearNo
sessionNo
chapterNo
modeNohybrid
limitNo
offsetNo
expandNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already indicate readOnly and idempotent. Description adds value by detailing output structure (ranked results, compact metadata, image URLs, topic_signal).

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?

Very concise; front-loads purpose, uses bullet points for output details, and callout for next step. Every sentence adds value.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output is well described, but input parameters are nearly undocumented. Given 10 params with 0% schema coverage, the description is incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description only mentions 'optional filters' without explaining any of the 10 parameters (query, subject, paper, etc.). Leaves agent guessing.

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?

The description clearly states it searches past-paper questions with filters, but does not explicitly differentiate from siblings like search_multi or search_examiner_reports.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; no context on prerequisites or exclusions. Only a next-step suggestion to call get_questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_topic_imagesSearch Topic ImagesA
Read-onlyIdempotent

Find educational diagrams and illustrations for a CAIE topic.

Returns external web images (Wikipedia, GFG diagrams) — NOT past paper images. For actual question/mark scheme images, use get_questions with include_images=True.

Use this when:

  • Student needs a visual explanation of a concept (e.g., "show me a binary tree diagram")

  • Adding supplementary illustrations beyond what exam papers show

Returns: image URL, title, source domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
subjectNo
num_imagesNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so no repetition needed. Description adds valuable behavioral context: returns external web images only (not past paper images) and specifies return fields (URL, title, source domain). No contradictions.

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?

Efficiently organized: one-line purpose, contrast, bullet usage cases, return format. No redundant sentences. All information is front-loaded.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has 3 parameters and no output schema. Description covers return fields but lacks parameter descriptions. For simple search tool, usage guidance is strong but missing parameter details leaves a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not explicitly explain the parameters. The 'query' parameter is implied through usage examples, but 'subject' and 'num_images' are not described at all. The description does not compensate for the lack of schema descriptions.

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?

Explicitly states purpose: 'Find educational diagrams and illustrations for a CAIE topic.' Clearly differentiates from sibling tool get_questions by specifying it returns external web images, not past paper images. Provides a concrete example ('show me a binary tree diagram').

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?

Explicitly tells when to use (visual explanation, supplementary illustrations) and when not to use (for question/mark scheme images, use get_questions with include_images=True). Names the alternative tool directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_web_contextSearch Web ContextA
Read-onlyIdempotent

Get educational web content to supplement CAIE exam explanations.

Returns summarized content from trusted CS education sites. Use when the student needs conceptual explanations beyond what mark schemes provide.

Web content is supplementary — always prioritize official CAIE mark scheme points first. Returns: source title, URL, domain, and key educational content (max 800 chars per source).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
subjectNo
num_resultsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, so the tool is safe and idempotent. The description adds behavioral details such as returning summarized content from trusted CS education sites, with a max of 800 characters per source, and listing return fields (source title, URL, domain, key educational content). No contradictions.

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?

The description is concise and well-structured, with each sentence adding value. It front-loads the purpose, provides usage guidance, and specifies return format, all in a few sentences without redundancy.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no output schema), the description explains the return format but does not elaborate on the subject parameter or how num_results behaves. Additional details about the 'trusted CS education sites' would improve completeness. It is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not explain the parameters (query, subject, num_results). The description only implies the query relates to CAIE topics, but fails to add meaning for subject or num_results, leaving gaps.

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?

The description clearly states the verb 'Get' and resource 'educational web content', specifically targeting CAIE exam supplementation from trusted CS education sites. It distinguishes itself from sibling tools like search_examiner_reports and search_questions by emphasizing supplementary conceptual explanations.

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?

The description explicitly says 'Use when the student needs conceptual explanations beyond what mark schemes provide' and prioritizes official CAIE mark scheme points first. This provides clear context, though it could further specify when not to use or name alternative siblings.

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.

  1. 7 tool updatesv0.1.0
    • First observedget_questions
    • First observedget_stats
    • First observedsearch_examiner_reports
    • First observedsearch_multi
    • First observedsearch_questions
    • First observedsearch_topic_images
    • First observedsearch_web_context

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Tools have distinct purposes overall, but search_questions and search_multi overlap in searching questions; descriptions differentiate them (single vs multiple topics, deduplication). Minor confusion possible.

Naming Consistency5/5

All tools use a consistent verb_noun snake_case pattern. 'get_' for retrieval and 'search_' for searching, with clear, predictable names.

Tool Count5/5

Seven tools is well-scoped for a CAIE exam search server. Each tool addresses a specific need: searching, fetching details, examiner reports, statistics, supplementary content.

Completeness4/5

Core workflows are covered: search questions, get details, examiner reports, supplementary resources. Minor gaps like listing available subjects or papers are missing but not critical for the primary use case.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    F
    maintenance
    Enables real-time search and retrieval of academic paper information from multiple sources, providing access to paper metadata, abstracts, and full-text content when available, with structured data responses for integration with AI models that support tool/function calling.
    3
    117
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching and retrieving academic papers from arXiv with support for advanced filtering by author, category, and date, plus full paper content extraction.
    6
    14
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides AI-powered web search, full-page content extraction, and search-enhanced Q\&A capabilities via the Metaso AI search engine. It enables large language models to access diverse information across web, academic, and multimedia sources with structured Markdown or JSON output.
    3
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLMs to search and retrieve exam problems, solutions, and answers from the СДАМ ГИА educational platform across multiple subjects. It supports fuzzy text matching, catalog browsing, and structured data retrieval to assist with academic study and test preparation.
    7
    5 npm
    5
    MIT