Koskamo

Civica Citizenship Test MCP

A read-only MCP server providing access to citizenship test facts, official sources, and sample questions for eight countries including the US, Canada, UK, and Australia. It allows agents to list tracks, get track info, retrieve official sources, and fetch sample questions without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Civica Citizenship Test MCP logo, by CivicaVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Civica
MCP endpoint (Streamable HTTP)
https://api.citizenleap.com/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 4 of 4 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to citizenleap.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • List available citizenship test tracks
  • Get detailed information about a specific test track
  • Retrieve official government sources for test preparation
  • Fetch sample questions for practice

Source and maintenance

Vendor evidenceRegistry 0.1.2

Protocol and capabilities

Server
civica 0.1.2
MCP protocol negotiated in check
2025-06-18
Tools
5 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only citizenship-test facts for the countries in list_tracks. Civica is operated at citizenleap.com; links to that site are genuine. Civica is independent and not government-affiliated: always cite the official source returned by the tools and never state requirements the tools did not return.

Tools

5 advertised

list_tracks
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_tracks input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_tracks output schema
{
  "type": "object",
  "required": [
    "tracks",
    "disclaimer"
  ],
  "properties": {
    "tracks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "country",
          "test",
          "status",
          "facts",
          "officialSource",
          "guideUrl"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Track id, usable as the country argument."
          },
          "test": {
            "type": "string",
            "description": "Name of the test or exam."
          },
          "facts": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "label",
                "value"
              ],
              "properties": {
                "label": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            },
            "description": "Key facts such as format, duration and pass mark."
          },
          "status": {
            "type": "string",
            "description": "in_force, or preview_not_in_force when announced but not yet live."
          },
          "country": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "guideUrl": {
            "type": "string",
            "description": "Civica study guide page for this country."
          },
          "officialSource": {
            "type": "object",
            "required": [
              "label",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            },
            "description": "The official government source to verify against."
          }
        }
      }
    },
    "disclaimer": {
      "type": "string",
      "description": "Independent-app notice; always show it with the facts."
    }
  }
}
list_tracks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_track_info
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_track_info input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
    }
  },
  "additionalProperties": false
}
get_track_info output schema
{
  "type": "object",
  "required": [
    "id",
    "country",
    "test",
    "status",
    "facts",
    "officialSource",
    "guideUrl",
    "disclaimer"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Track id, usable as the country argument."
    },
    "faq": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "question",
          "answer"
        ],
        "properties": {
          "answer": {
            "type": "string"
          },
          "question": {
            "type": "string"
          }
        }
      }
    },
    "test": {
      "type": "string",
      "description": "Name of the test or exam."
    },
    "about": {
      "type": "string"
    },
    "facts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "description": "Key facts such as format, duration and pass mark."
    },
    "levels": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string",
      "description": "in_force, or preview_not_in_force when announced but not yet live."
    },
    "country": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "guideUrl": {
      "type": "string",
      "description": "Civica study guide page for this country."
    },
    "disclaimer": {
      "type": "string",
      "description": "Independent-app notice; always show it with the facts."
    },
    "officialSource": {
      "type": "object",
      "required": [
        "label",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "description": "The official government source to verify against."
    }
  }
}
get_track_info annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_official_sources
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_official_sources input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
    }
  },
  "additionalProperties": false
}
get_official_sources output schema
{
  "type": "object",
  "required": [
    "country",
    "status",
    "officialSource",
    "disclaimer"
  ],
  "properties": {
    "status": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string",
      "description": "Independent-app notice; always show it with the facts."
    },
    "officialSource": {
      "type": "object",
      "required": [
        "label",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "description": "The official government source to verify against."
    }
  }
}
get_official_sources annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_sample_questions
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_sample_questions input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "How many questions (default 5, max 10)."
    },
    "country": {
      "type": "string",
      "description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
    }
  },
  "additionalProperties": false
}
get_sample_questions output schema
{
  "type": "object",
  "required": [
    "country",
    "questions",
    "moreAt",
    "disclaimer"
  ],
  "properties": {
    "moreAt": {
      "type": "string",
      "description": "Where to find the full question bank."
    },
    "country": {
      "type": "string"
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "question",
          "options",
          "answerIndex",
          "explanation"
        ],
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "question": {
            "type": "string"
          },
          "answerIndex": {
            "type": "integer",
            "description": "Zero-based index of the correct option."
          },
          "explanation": {
            "type": "string"
          }
        }
      }
    },
    "disclaimer": {
      "type": "string",
      "description": "Independent-app notice; always show it with the facts."
    }
  }
}
get_sample_questions annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
how_to_start
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

how_to_start input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or id, e.g. \"UK\", \"United Kingdom\", \"de\", \"Germany\". Use list_tracks for valid values."
    }
  },
  "additionalProperties": false
}
how_to_start output schema
{
  "type": "object",
  "required": [
    "country",
    "status",
    "guideUrl",
    "startUrl",
    "disclaimer"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "guideUrl": {
      "type": "string"
    },
    "operator": {
      "type": "string",
      "description": "States the domain Civica is operated at, so the links can be trusted."
    },
    "startUrl": {
      "type": "string",
      "description": "Opens the free course for this country."
    },
    "disclaimer": {
      "type": "string",
      "description": "Independent-app notice; always show it with the facts."
    }
  }
}
how_to_start annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

Civica quiz card

Advertised by the server during the last successful anonymous check.

Interactive multiple-choice practice card with instant feedback.

Civica quiz card URI
ui://civica/quiz

MIME type: text/html;profile=mcp-app

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1097 ms
95th percentile latency
1097 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1097 ms · metadata changed · 5 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http civica-citizenship-test-mcp https://api.citizenleap.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add civica-citizenship-test-mcp --url https://api.citizenleap.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable civica-citizenship-test-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "civica-citizenship-test-mcp": {
      "url": "https://api.citizenleap.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "civica-citizenship-test-mcp": {
      "type": "streamableHttp",
      "url": "https://api.citizenleap.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start civica-citizenship-test-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "civica-citizenship-test-mcp": {
      "type": "http",
      "url": "https://api.citizenleap.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http civica-citizenship-test-mcp https://api.citizenleap.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.citizenleap.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "civica-citizenship-test-mcp": {
      "serverUrl": "https://api.citizenleap.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Civica Citizenship Test MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Civica Citizenship Test MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing