UK public services
by fourzerotwo.si · remote · no sign-in to list tools · v1.0.1 · published by si.fourzerotwo
NHS organisations, schools, care quality ratings, food hygiene and policing for any UK area.
33 tools: 30 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things30Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http uk-public-services https://fourzerotwo.si/mcp/v/uk-public-servicesFindings
Matches of fixed checks, with the text they matched.
The server marks "nhs-organisations__organisation" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warnschools__near
The server marks "schools__near" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
The server marks "uk-food-hygiene__business-types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-food-hygiene__business-types" says "type": a word for a change.
The server marks "uk-police__stop-search-force" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-police__stop-search-force" says "stop": a word for a change.
The server marks "uk-police__stop-search-near" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-police__stop-search-near" says "stop": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
33 tools
Changes things 30Claude Code: ask
nhs-organisations__organisationName, status, address, phone/website, roles and relationships (commissioner, operator, geography) for one ODS code.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "nhs-organisations__organisation" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Name, status, address, phone/website, roles and relationships (commissioner, operator, geography) for one ODS code. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: NHS Organisations (ODS): Organisation by ODS code
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
nhs-organisations__rolesEvery ODS role code with its name, and the friendly aliases search accepts.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Every ODS role code with its name, and the friendly aliases search accepts. Free within the daily allowance, then $0.0005 USDC per call via x402.
Annotations the server declares
- title: NHS Organisations (ODS): Role codes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
schools__nearOpen schools within a radius of a postcode (default 3 km, max 15), nearest first, optionally by phase.1 finding
Why it is in this group
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "schools__near" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
Description, as the server wrote it Open schools within a radius of a postcode (default 3 km, max 15), nearest first, optionally by phase. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: Schools in England: Schools near a postcode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
schools__schoolFull register record for one establishment: type, status, phase, ages, capacity, pupils, FSM, trust, SEN provision, address, LA, ward, constituency.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Full register record for one establishment: type, status, phase, ages, capacity, pupils, FSM, trust, SEN provision, address, LA, ward, constituency. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: Schools in England: School by URN
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__authoritiesEvery local authority that runs a food hygiene scheme.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Every local authority that runs a food hygiene scheme. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Local authorities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__businessRating, scores, inspection date and authority for one business.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rating, scores, inspection date and authority for one business. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Business rating
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__business-typesBusiness type codes used in ratings.1 finding
Why it is in this group
- The name "uk-food-hygiene__business-types" says "type": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "uk-food-hygiene__business-types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-food-hygiene__business-types" says "type": a word for a change.
Description, as the server wrote it Business type codes used in ratings. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Business types
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__nearRated food businesses within a distance of a point.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rated food businesses within a distance of a point. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Businesses near a point
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__ratingsValid rating values and their meaning.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Valid rating values and their meaning. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Rating values
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__regionsRegions used by the ratings scheme.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Regions used by the ratings scheme. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Regions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__score-descriptorsWhat each hygiene, structural and management score means for a business.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it What each hygiene, structural and management score means for a business. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Score descriptors
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__categoriesValid crime categories for a month.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Valid crime categories for a month. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Crime categories
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__crime-outcomesFull outcome history for one crime by its persistent id.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Full outcome history for one crime by its persistent id. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Outcomes for a crime
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__crimes-at-locationCrimes snapped to the nearest anonymised location to a point.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Crimes snapped to the nearest anonymised location to a point. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Crimes at a location
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__crimes-no-locationCrimes a force could not map to a location, by category.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Crimes a force could not map to a location, by category. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Crimes with no location
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__forceContact details, website and engagement methods for a force.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Contact details, website and engagement methods for a force. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Force details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__force-officersSenior officers of a force with biographies.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Senior officers of a force with biographies. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Senior officers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__forcesEvery police force with its id.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Every police force with its id. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Police forces
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__last-updatedThe latest month with crime data available.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The latest month with crime data available. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Last updated
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__locate-neighbourhoodWhich force and neighbourhood covers a lat,lng point.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Which force and neighbourhood covers a lat,lng point. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Locate neighbourhood
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhoodContact details, description and centre of a neighbourhood.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Contact details, description and centre of a neighbourhood. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhood details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhood-boundaryBoundary polygon of a neighbourhood as lat/lng points.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Boundary polygon of a neighbourhood as lat/lng points. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhood boundary
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhood-eventsUpcoming community events run by a neighbourhood team.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Upcoming community events run by a neighbourhood team. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhood events
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhood-prioritiesIssues a neighbourhood team has committed to tackle, and what it did.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Issues a neighbourhood team has committed to tackle, and what it did. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhood priorities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhood-teamOfficers in a neighbourhood policing team.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Officers in a neighbourhood policing team. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhood team
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__neighbourhoodsNeighbourhood policing areas in a force.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Neighbourhood policing areas in a force. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Neighbourhoods
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__outcomes-at-locationCase outcomes for crimes near a point.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Case outcomes for crimes near a point. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Outcomes near a point
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__stop-search-forceStop and search records for a force and month.1 finding
Why it is in this group
- The name "uk-police__stop-search-force" says "stop": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "uk-police__stop-search-force" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-police__stop-search-force" says "stop": a word for a change.
Description, as the server wrote it Stop and search records for a force and month. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Stop and search by force
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__stop-search-nearStop and search records within a mile of a point.1 finding
Why it is in this group
- The name "uk-police__stop-search-near" says "stop": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "uk-police__stop-search-near" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "uk-police__stop-search-near" says "stop": a word for a change.
Description, as the server wrote it Stop and search records within a mile of a point. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Stop and search near a point
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-police__street-crimeAll street-level crimes within a mile of a point for a month.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it All street-level crimes within a mile of a point for a month. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Police Data: Street crime near a point
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 3Claude Code: allow
nhs-organisations__searchFind NHS organisations by name, postcode (or district) and role: gp, pharmacy, trust, trust-site, icb, dental, optical, care-home, hospice, or a role code.No findings
Why it is in this group
- The name "nhs-organisations__search" says "search": a word for reading.
Description, as the server wrote it Find NHS organisations by name, postcode (or district) and role: gp, pharmacy, trust, trust-site, icb, dental, optical, care-home, hospice, or a role code. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: NHS Organisations (ODS): Search organisations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
schools__searchFind schools by name, postcode or district, and/or local authority (name or code), optionally by phase; open schools by default.No findings
Why it is in this group
- The name "schools__search" says "search": a word for reading.
Description, as the server wrote it Find schools by name, postcode or district, and/or local authority (name or code), optionally by phase; open schools by default. Free within the daily allowance, then $0.001 USDC per call via x402.
Annotations the server declares
- title: Schools in England: Search schools
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-food-hygiene__searchFind rated food businesses by name and/or address or postcode.No findings
Why it is in this group
- The name "uk-food-hygiene__search" says "search": a word for reading.
Description, as the server wrote it Find rated food businesses by name and/or address or postcode. Free within the daily allowance, then $0.002 USDC per call via x402.
Annotations the server declares
- title: UK Food Hygiene Ratings: Search businesses
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http uk-public-services https://fourzerotwo.si/mcp/v/uk-public-servicesRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__uk-public-services__nhs-organisations__search",
"mcp__uk-public-services__schools__search",
"mcp__uk-public-services__uk-food-hygiene__search"
],
"ask": [
"mcp__uk-public-services__nhs-organisations__organisation",
"mcp__uk-public-services__nhs-organisations__roles",
"mcp__uk-public-services__schools__school",
"mcp__uk-public-services__schools__near",
"mcp__uk-public-services__uk-food-hygiene__near",
"mcp__uk-public-services__uk-food-hygiene__business",
"mcp__uk-public-services__uk-food-hygiene__authorities",
"mcp__uk-public-services__uk-food-hygiene__business-types",
"mcp__uk-public-services__uk-food-hygiene__ratings",
"mcp__uk-public-services__uk-food-hygiene__regions",
"mcp__uk-public-services__uk-food-hygiene__score-descriptors",
"mcp__uk-public-services__uk-police__street-crime",
"mcp__uk-public-services__uk-police__crimes-at-location",
"mcp__uk-public-services__uk-police__crimes-no-location",
"mcp__uk-public-services__uk-police__categories",
"mcp__uk-public-services__uk-police__last-updated",
"mcp__uk-public-services__uk-police__outcomes-at-location",
"mcp__uk-public-services__uk-police__crime-outcomes",
"mcp__uk-public-services__uk-police__stop-search-force",
"mcp__uk-public-services__uk-police__forces",
"mcp__uk-public-services__uk-police__force",
"mcp__uk-public-services__uk-police__force-officers",
"mcp__uk-public-services__uk-police__neighbourhoods",
"mcp__uk-public-services__uk-police__neighbourhood-team",
"mcp__uk-public-services__uk-police__neighbourhood-events",
"mcp__uk-public-services__uk-police__neighbourhood-priorities",
"mcp__uk-public-services__uk-police__neighbourhood-boundary",
"mcp__uk-public-services__uk-police__locate-neighbourhood",
"mcp__uk-public-services__uk-police__stop-search-near",
"mcp__uk-public-services__uk-police__neighbourhood"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as uk-public-services. Review it before you use it.