Koskamo

MySchoolHub MCP

An MCP server providing read-only access to MySchoolHub's educational data, including school search, catchment distance checks, rankings, and area finding based on house prices and commute times.

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.

MySchoolHub MCP logo, by MySchoolHubCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by MySchoolHub
MCP endpoint (Streamable HTTP)
https://www.myschoolhub.co.uk/api/mcp
Vendor documentation

What you can do with it

  • Search for schools by name, town, or postcode
  • Check real catchment chances for a specific address
  • Get school rankings by GCSE results or Oxbridge entry
  • Find areas to live based on budget and school quality

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

Server
myschoolhub 1.0.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

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

MySchoolHub covers every school in England: Ofsted, GCSE, KS2 and A-level results (DfE), university destinations (Oxford, Cambridge, Russell Group) and, where councils publish them, the last distance offered (the real catchment cut-off) from council allocation figures for the last three years, plus house prices by neighbourhood. Typical flow: search_schools, then get_school by URN; check_catchment_chances for a home postcode; school_rankings for league tables; find_areas_for_schools for where to buy. Show the MySchoolHub link for each school you mention, and say that past cut-offs never guarantee a place.

Tools

5 advertised

search_schools — Search schools
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find schools in England by name, town, council or postcode. A postcode returns schools within 5 km, nearest first. Each result has its URN, Ofsted grade, headline results and a link to its MySchoolHub page.

search_schools input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "phase": {
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string",
      "description": "Only primary or only secondary schools."
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "School name, town, council or postcode, e.g. \"Tiffin\", \"Guildford\" or \"KT10 8PQ\"."
    }
  },
  "additionalProperties": false
}
search_schools annotations
{
  "title": "Search schools",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_school — School profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full profile of one school by URN: Ofsted, the newest GCSE, KS2 and A-level results, university destinations (Oxford and Cambridge, Russell Group) and the last distance offered for each of the last three years with applications per place.

get_school input schema
{
  "type": "object",
  "required": [
    "urn"
  ],
  "properties": {
    "urn": {
      "type": "integer",
      "maximum": 999999,
      "minimum": 100000,
      "description": "The school's URN (its six-digit unique reference number)."
    }
  },
  "additionalProperties": false
}
get_school annotations
{
  "title": "School profile",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_catchment_chances — Catchment chances from a postcode
Advertised by the server during the last successful anonymous check.
Advertised read-only

For a home postcode, list nearby state schools with the straight-line distance from the postcode centre, the last distance offered in each of the last three years (council allocation figures) and a reading of the chances: Likely at 80% of the last distance or less, Possible up to 110%, Stretch beyond it. Faith and selective schools are capped at Possible because other rules decide places.

check_catchment_chances input schema
{
  "type": "object",
  "required": [
    "postcode",
    "phase"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "phase": {
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string"
    },
    "postcode": {
      "type": "string",
      "description": "A full UK postcode (e.g. \"KT10 8PQ\") or an outcode (e.g. \"KT10\")."
    },
    "radius_km": {
      "type": "number",
      "maximum": 10,
      "minimum": 0.5,
      "description": "Search radius. Default 2 km for primary, 5 km for secondary."
    }
  },
  "additionalProperties": false
}
check_catchment_chances annotations
{
  "title": "Catchment chances from a postcode",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
school_rankings — School league tables
Advertised by the server during the last successful anonymous check.
Advertised read-only

League tables of schools in England, optionally for one council: attainment8 or progress8 (GCSE), a_level (points per entry), ks2 (primary, % meeting the expected standard), oxbridge or russell_group (share of sixth-form leavers, pooled over five cohorts).

school_rankings input schema
{
  "type": "object",
  "required": [
    "measure"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "council": {
      "type": "string",
      "description": "Council (local authority) name, e.g. \"Surrey\" or \"Barnet\"."
    },
    "measure": {
      "enum": [
        "attainment8",
        "progress8",
        "a_level",
        "ks2",
        "oxbridge",
        "russell_group"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
school_rankings annotations
{
  "title": "School league tables",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_areas_for_schools — Where to live for schools
Advertised by the server during the last successful anonymous check.
Advertised read-only

Rank neighbourhoods within commuting reach of a workplace for a house-buying budget, by how realistic a place at a good state school is (council cut-offs and results), with sold-price medians from HM Land Registry. Commute reach is estimated from distance.

find_areas_for_schools input schema
{
  "type": "object",
  "required": [
    "workplace_postcode",
    "budget",
    "phase"
  ],
  "properties": {
    "phase": {
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string"
    },
    "budget": {
      "type": "integer",
      "maximum": 10000000,
      "minimum": 100000,
      "description": "Purchase budget in pounds."
    },
    "commute_mode": {
      "enum": [
        "transit",
        "drive",
        "cycle",
        "walk"
      ],
      "type": "string",
      "default": "transit"
    },
    "min_bedrooms": {
      "enum": [
        0,
        2,
        3,
        4,
        5
      ],
      "type": "integer",
      "default": 0
    },
    "workplace_postcode": {
      "type": "string",
      "description": "Full UK postcode of the place of work."
    },
    "max_commute_minutes": {
      "type": "integer",
      "default": 60,
      "maximum": 90,
      "minimum": 15
    },
    "include_grammar_schools": {
      "type": "boolean",
      "default": false,
      "description": "Secondary only: count grammar schools (entry by the 11+)."
    }
  },
  "additionalProperties": false
}
find_areas_for_schools annotations
{
  "title": "Where to live for schools",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
355 ms
95th percentile latency
355 ms

Maintenance history

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

  • · probe · passed · 355 ms · metadata changed · 5 tool(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 myschoolhub-mcp https://www.myschoolhub.co.uk/api/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 myschoolhub-mcp --url https://www.myschoolhub.co.uk/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable myschoolhub-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "myschoolhub-mcp": {
      "url": "https://www.myschoolhub.co.uk/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "myschoolhub-mcp": {
      "type": "streamableHttp",
      "url": "https://www.myschoolhub.co.uk/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start myschoolhub-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "myschoolhub-mcp": {
      "type": "http",
      "url": "https://www.myschoolhub.co.uk/api/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 myschoolhub-mcp https://www.myschoolhub.co.uk/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "myschoolhub-mcp": {
      "url": "https://www.myschoolhub.co.uk/api/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": {
    "myschoolhub-mcp": {
      "serverUrl": "https://www.myschoolhub.co.uk/api/mcp"
    }
  }
}

Let your agent find its tools

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