French tests and schools that count for Canadian PR.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one published French provider by its slug.
The listing slug.
Get one published French provider by its slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "The listing slug."
}
},
"additionalProperties": false
}Get the number of published French providers, places and categories, and when the data last changed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List categories with their French provider counts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List countries, regions and cities that have French providers.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List where the French provider data comes from, with the license and refresh of each source.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search published French providers by text, place and category.
| Argument | Type | Description |
|---|---|---|
| q | string | Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches. |
| city | string | City slug, from /places. |
| sort | string | `relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first. |
| limit | integer | Items per page. |
| cursor | string | `page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`. |
| region | string | Region slug, from /places. |
| country | string | ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400. |
| category | string | Category slug, from /categories. A parent slug also matches its children. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches."
},
"city": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "City slug, from /places."
},
"sort": {
"enum": [
"relevance",
"name",
"recent"
],
"type": "string",
"description": "`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Items per page."
},
"cursor": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`."
},
"region": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Region slug, from /places."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400."
},
"category": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Category slug, from /categories. A parent slug also matches its children."
}
},
"additionalProperties": false
}