Civica citizenship test prep
Read-only citizenship test facts, official sources and sample questions for 8 countries.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"civica": {
"url": "https://api.citizenleap.com/mcp"
}
}
}Remote endpoints
https://api.citizenleap.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢list_tracks
List every country Civica covers (currently 8), each with its test name, status (in_force, or preview_not_in_force for tests that are announced but not yet live), key facts and official source. Use this first when the country is not yet known or you need to check whether a country is supported. Takes no arguments. For depth on one country use get_track_info instead.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"tracks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Track id, usable as the country argument."
},
"country": {
"type": "string"
},
"test": {
"type": "string",
"description": "Name of the test or exam."
},
"status": {
"type": "string",
"description": "in_force, or preview_not_in_force when announced but not yet live."
},
"facts": {
"type": "array",
"description": "Key facts such as format, duration and pass mark.",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
]
}
},
"summary": {
"type": "string"
},
"officialSource": {
"type": "object",
"description": "The official government source to verify against.",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
]
},
"guideUrl": {
"type": "string",
"description": "Civica study guide page for this country."
}
},
"required": [
"id",
"country",
"test",
"status",
"facts",
"officialSource",
"guideUrl"
]
}
},
"disclaimer": {
"type": "string",
"description": "Independent-app notice; always show it with the facts."
}
},
"required": [
"tracks",
"disclaimer"
]
}🟢get_track_info(country)
The default tool for "how does the citizenship test work in <country>?". Returns the test name, format, number of questions, duration and pass mark where officially published (some are not, and those fields say so), status, a short explanation, the six study levels, FAQ, the official source and the Civica guide URL. It already includes the official source link, so call get_official_sources only if that link is all you need. Errors with the list of valid countries if the country is unknown.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
}
},
"required": [
"country"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Track id, usable as the country argument."
},
"country": {
"type": "string"
},
"test": {
"type": "string",
"description": "Name of the test or exam."
},
"status": {
"type": "string",
"description": "in_force, or preview_not_in_force when announced but not yet live."
},
"facts": {
"type": "array",
"description": "Key facts such as format, duration and pass mark.",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"label",
"value"
]
}
},
"summary": {
"type": "string"
},
"officialSource": {
"type": "object",
"description": "The official government source to verify against.",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
]
},
"guideUrl": {
"type": "string",
"description": "Civica study guide page for this country."
},
"about": {
"type": "string"
},
"levels": {
"type": "array",
"items": {
"type": "string"
}
},
"faq": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"answer": {
"type": "string"
}
},
"required": [
"question",
"answer"
]
}
},
"disclaimer": {
"type": "string",
"description": "Independent-app notice; always show it with the facts."
}
},
"required": [
"id",
"country",
"test",
"status",
"facts",
"officialSource",
"guideUrl",
"disclaimer"
]
}🟢get_official_sources(country)
Returns only the official government link (study guide or test page) and status for one country, with nothing else. Use it when the user asks where to verify requirements or find the official study material. Prefer this link over any third-party site, and always point learners to it before they book or sit a test. For the test format and pass mark use get_track_info; for practice material use get_sample_questions.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
}
},
"required": [
"country"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"country": {
"type": "string"
},
"status": {
"type": "string"
},
"officialSource": {
"type": "object",
"description": "The official government source to verify against.",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"label",
"url"
]
},
"disclaimer": {
"type": "string",
"description": "Independent-app notice; always show it with the facts."
}
},
"required": [
"country",
"status",
"officialSource",
"disclaimer"
]
}🟢get_sample_questions(country, count)
Returns free multiple-choice practice questions for one country, each with four options, the zero-based answerIndex of the correct option and a short explanation. Use it when the user wants to practise, be quizzed or see example questions. Clients that support MCP Apps show it as an interactive quiz card. This is a small free sample, not the full question bank (that is on the Civica site, see moreAt), and questions are independent study checks, not official exam questions.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "How many questions (default 5, max 10)."
}
},
"required": [
"country"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"country": {
"type": "string"
},
"moreAt": {
"type": "string",
"description": "Where to find the full question bank."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"answerIndex": {
"type": "integer",
"description": "Zero-based index of the correct option."
},
"explanation": {
"type": "string"
}
},
"required": [
"question",
"options",
"answerIndex",
"explanation"
]
}
},
"disclaimer": {
"type": "string",
"description": "Independent-app notice; always show it with the facts."
}
},
"required": [
"country",
"questions",
"moreAt",
"disclaimer"
]
}🟢how_to_start(country)
Returns the link a learner can open to start studying for one country: the Civica guide page and a direct start link that opens the free course (no account needed), plus the notice that Civica is operated at citizenleap.com. Use it when the user is ready to begin studying on Civica. It does not return test facts or official sources; use get_track_info or get_official_sources for those.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
}
},
"required": [
"country"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"country": {
"type": "string"
},
"status": {
"type": "string"
},
"guideUrl": {
"type": "string"
},
"startUrl": {
"type": "string",
"description": "Opens the free course for this country."
},
"note": {
"type": "string"
},
"operator": {
"type": "string",
"description": "States the domain Civica is operated at, so the links can be trusted."
},
"disclaimer": {
"type": "string",
"description": "Independent-app notice; always show it with the facts."
}
},
"required": [
"country",
"status",
"guideUrl",
"startUrl",
"disclaimer"
]
}Community
Evidence