Find learning vendors your education fund reimburses.
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 education vendor by its slug.
The listing slug.
Get one published education vendor 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 education vendors, places and categories, and when the data last changed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List categories with their education vendor counts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List countries, regions and cities that have education vendors.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List where the education vendor data comes from, with the license and refresh of each source.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search published education vendors 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
}