uk-schools-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
The tools are clearly divided into school lookup (search, details, compare, near, Ofsted) and education statistics (topics, discovery, metadata, query). Each tool has a distinct purpose, and even the overlapping statistical tools (list_ees_topics, search_education_statistics, discover_dataset) are clearly differentiated by their descriptions.
Naming Consistency5/5All tool names follow a consistent lowercase snake_case convention with a verb prefix: compare_, get_, search_, find_, query_, list_, discover_. There are no stylistic deviations or mixed conventions.
Tool Count5/511 tools is well within the ideal 3-15 range and appropriately scoped for a UK schools data server covering both school information and education statistics. Each tool contributes to the overall functionality without unnecessary bloat.
Completeness5/5The tool set provides comprehensive coverage for its domain: school search, details, comparison, geolocation, Ofsted ratings, and a full pipeline for exploring and querying education statistics. No critical operations are missing for a read-only data retrieval server.
Average 4.2/5 across 11 of 11 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds that data is live from GIAS and that results are a list with specific fields, but it does not disclose whether at least one search criterion is required, how matching works (exact vs partial), pagination behavior, or potential rate limits. These are significant gaps for a live-data search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the action and scope. Every phrase earns its place, and it avoids boilerplate repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description states purpose, data source, and the fields returned, which is adequate for a simple search tool. However, it omits important constraints like the need to supply at least one search criterion despite all parameters being optional, and it does not describe ordering or output limits beyond the 'limit' parameter's existence. Given no output schema and no annotations, this leaves the agent with meaningful unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does restate the meaning of 'query' as name or postcode and 'local_authority' as local authority name, but it adds little beyond the schema. It does not clarify partial matching, the relationship between query and phase, or the behavior when no parameters are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Search' and the resource 'UK schools', then defines the exact scope: by name, postcode, or local authority. This clearly distinguishes it from sibling tools like find_schools_near_postcode, which focuses narrowly on proximity searches, and get_school_details, which targets individual institutions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool by listing the three supported search criteria and noting the live GIAS data source. However, it does not explicitly direct the agent to alternative tools when appropriate (e.g., 'for proximity-based searches use find_schools_near_postcode'), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the info fields shown (type, phase, pupil numbers, etc.) but does not mention potential missing data, response format, or any operational caveats. It adds some value but lacks deeper behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action ('Compare multiple schools side-by-side by their URNs') followed by the key facts shown. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple input (one array param), no output schema, and no annotations. The description adequately explains what it does and what it returns. Some details like geographic scope are missing, but the sibling-tool context and straightforward nature make the description sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description of the 'urns' parameter in the schema already explains it fully. The description's phrase 'by their URNs' adds no new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Compare') and resource ('multiple schools'), and it distinguishes from siblings by emphasizing side-by-side comparison via URNs. The list of shown facts further clarifies what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context — you need URNs to compare schools — and the schema's minItems=2 reinforces that. It doesn't explicitly name alternatives like search_schools for finding URNs, but the context is clear enough for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals internal steps (geocoding via Postcodes.io, searching GIAS data, sorting by distance), which is useful context. However, it does not disclose potential limitations like invalid postcode handling, rate limits, or maximum radius constraints beyond what's in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, then details the method and use case. Every sentence adds value with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward search tool with fully described parameters and no output schema, the description covers the main workflow (geocoding and searching) and expected sort order. It could mention result format or edge cases, but the current information is sufficient for a typical invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with descriptions for all parameters, including defaults and max. The tool description adds a little nuance by mentioning distance and catchment, but it does not substantially enhance understanding beyond the schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds schools within a distance of a UK postcode, using a specific verb ('Find') and resource ('schools near a postcode'). It distinguishes itself from sibling tools like search_schools by emphasizing location-based search and catchment area use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context ('Useful for finding schools in a catchment area'), but does not explicitly mention when to avoid this tool or point to alternatives. This meets 'clear context, no exclusions' but lacks the explicit alternative naming seen in the highest benchmarks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return contents in detail ('type, phase, address, capacity, pupil numbers...') and mentions links. It doesn't cover error handling for invalid URNs, but the behavior is clear for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with a long first sentence listing return fields, followed by a short sentence about links. It's front-loaded and each sentence adds value, though the list could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by naming many data fields. It doesn't mention pagination, error responses, or how to obtain a URN, but for a single-parameter read tool it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'urn' clearly described as 'The school's URN'. The description adds minimal extra meaning beyond restating the parameter's purpose. Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: 'Get comprehensive details for a specific school by its URN.' It distinguishes itself from siblings like search_schools by specifying the input (URN) and the breadth of data returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the appropriate usage context by requiring a URN, making it clear this tool is for when you already know the school's identifier. It doesn't explicitly name alternatives, but the prerequisite is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for transparency. It thoroughly discloses what is returned: overall effectiveness grade, grades for each inspection area, inspection dates, type, and previous grades. It also reveals the data source (Ofsted Management Information files published monthly). While it does not discuss error handling or permissions, the detailed output description gives a solid behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded, and every sentence earns its place. It starts with the core purpose, then details return values, and ends with the data source. There is no redundant wording or filler, making it highly efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description is largely complete. It explains what data is returned in detail and the source/frequency of the data. It omits edge-case behavior (e.g., invalid URN, missing data) but covers the essential functionality well. The absence of an output schema makes the description's detailed list of returned fields especially valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter (`urn`) with 100% coverage, so the baseline is 3. The tool description reinforces that the URN is the lookup key and explains how it is used, but does not add new semantic details about the parameter format or constraints beyond the schema. Therefore, it neither undercuts nor significantly elevates the schema's explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get Ofsted inspection ratings and grades for a school by URN.' This clearly states the tool's function and differentiates it from siblings like search_schools and get_school_details, which focus on discovery or broader details. No ambiguity remains about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the prerequisite ('by URN') and the purpose, implying the tool should be used when a URN is known and Ofsted ratings are needed. It does not explicitly mention when to prefer this over siblings like get_school_details, but the dedicated focus on Ofsted data provides sufficient context. Lacking explicit exclusions or alternative references, it earns a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the output contents (topic keys, titles, descriptions, count of 23 datasets) and coverage areas, which adds useful context. However, it does not disclose whether authentication is required, if the operation is read-only, or any potential limitations (e.g., no pagination details). For a simple list tool this is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first front-loads the purpose, the second provides actionable guidance for using the output. Every word earns its place, with no redundancy or filler. Perfectly sized for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough context for a tool with no parameters and no output schema: it lists what the response contains (topic keys, titles, descriptions, 23 datasets) and how to proceed next (use with discover_dataset). While it doesn't detail the exact response format, that is less critical for a simple list operation and the integration hint fills the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. There is no parameter information to add, and the baseline for 0 params is 4. The description focuses on output rather than inputs, which is appropriate. No additional parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all available education data topics from the DfE Explore Education Statistics API.' The verb 'List' and specific resource 'education data topics' make the purpose unambiguous. It also differentiates from siblings by explicitly referencing the companion tool 'discover_dataset' and the topic key relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by stating 'Use the topic key with discover_dataset to find the actual dataset IDs needed for querying.' This tells the agent when and how to use this tool in sequence. It does not explicitly mention when not to use it or list alternatives, but the integration advice is strong enough for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears the full burden. It clearly states that the tool returns publication IDs only, not the actual data, and directs users to other tools for data access. This sets expectations about the tool's output and its role in the pipeline. However, it does not discuss result limits, pagination, or search behavior details, which would further enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long. The first sentence states the purpose and gives examples; the second sentence explains the return value and the subsequent steps. Every word earns its place—no fluff, no repetition. It is front-loaded and easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter, the description delivers complete context. It doesn't just say 'search for publications'; it explains what the results are (IDs), how they integrate into the broader tool ecosystem, and hints at the types of topics covered. No output schema exists, but the description clarifies what the return value will be used for, which is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'topic' is fully described in the input schema with examples. The description repeats these examples but does not add new meaning beyond what the schema provides. The schema coverage is 100%, so the baseline of 3 is appropriate; the description adds marginal value by reinforcing the types of topics, but it doesn't clarify syntax or search nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and identifies the exact resource ('DfE Explore Education Statistics catalogue'). It also lists example topics, making the scope clear. By contrasting with 'get_publication_datasets', 'get_dataset_metadata', and 'query_dataset', it effectively distinguishes this search tool from its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear workflow: search for topics, get publication IDs, then use those IDs with 'get_publication_datasets' and 'get_dataset_metadata/query_dataset'. This implies this tool is the entry point for data discovery. It does not explicitly mention when to avoid using this tool or list alternative search tools, but the workflow guidance is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It explains critical format requirements: time periods use 'YYYY|CODE' with code meanings, geographic levels include NAT/REG/LA/SCH, and locations use a specific 'LEVEL|id_type|id_value' format with an example. It also describes the data scope. This goes beyond the schema and gives the agent the context needed to call this read-only query tool correctly, though it doesn't mention pagination or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a purpose statement, a prerequisite instruction, a scope statement, and format clarifications. Each sentence earns its place with no redundant filler. For a tool with 8 parameters and multiple format requirements, this length is appropriate and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus fully-described schema provides sufficient context for correct invocation: it identifies prerequisite metadata, data domains, and all key parameter formats. It lacks explicit details about pagination behavior and response shape, but the schema includes page/page_size fields and there is no output schema to detail. Given the tool's complexity, this is reasonably complete, though a note on filter semantics would elevate it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing a baseline of 3. The description adds semantic enrichment beyond the schema: it expands the meaning of time codes ('AY' = academic year, 'CY' = calendar year), and provides a concrete location example ('LA|code|823'). This depth helps the agent understand the format in a way the schema's terse field descriptions do not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Query a DfE Explore Education Statistics dataset with specific indicators and filters', using a specific verb (Query) and resource (DfE dataset). This clearly distinguishes it from sibling tools like compare_schools or search_schools, which serve different purposes. It also lists the data domains (absence, exclusions, performance, etc.), reinforcing its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit prerequisite: 'Use get_dataset_metadata first to discover available indicator and filter IDs.' This guides the agent on when to use this tool relative to its metadata companion. However, it does not explicitly mention when not to use this tool or name alternative query tools (e.g., search_education_statistics), so it lacks that exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It uses the non-mutating verb 'Get' and clearly describes the output (filters, indicators, locations, time periods), which implies a read-only discovery operation. However, it does not explicitly state that it has no side effects or mention any rate limits/auth needs, which would be additional useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, both of which provide essential value: the first states the tool's output; the second explains its role in the workflow and gives concrete examples (e.g., 'absence rate, number of exclusions'). There is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, no output schema, and no annotations, the description covers all necessary aspects: what it returns (filters, indicators, etc.), why it is needed (to obtain IDs for query_dataset), and when to use it (before querying). It is fully sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for dataset_id already provides the semantic context ('Dataset ID from get_publication_datasets'), achieving 100% coverage. The tool description does not add further detail about the parameter beyond that, so it relies on the schema as baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does with a specific verb ('Get') and the resource ('available filters, indicators, geographic levels, locations, and time periods for a DfE dataset'). It also distinguishes itself from the sibling query_dataset by explaining that it provides the IDs needed for that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to discover what data is available and what filter/indicator IDs to use with query_dataset' and 'This is essential before querying'. This provides clear when-to-use guidance and names the downstream tool, effectively differentiating it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds useful behavioral context by explaining that the tool automatically finds the right publication and lists datasets with IDs, and that it replaces a multi-step workflow. It doesn't disclose side effects or limitations, but for a discovery/read tool, this is sufficient context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that flow logically: first states the purpose and the workflow it replaces, second gives the recommended next steps. No wasted words, though the second sentence is slightly dense. Still appropriately concise for an orchestration tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description is complete: it explains what it does, the prerequisite (list_ees_topics), and the follow-up tools (get_dataset_metadata, query_dataset). It also notes that it lists dataset IDs, which is the key information the agent needs to proceed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'topic' parameter 100%, including examples. The description reinforces this by directing users to list_ees_topics first, adding semantic linkage beyond the schema. This adds value while not repeating verbatim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Discover the publications and datasets available for a specific education data topic.' It also distinguishes itself by referencing the manual 4-step workflow and naming sibling tools like get_dataset_metadata and query_dataset as follow-up steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Use list_ees_topics first to see available topic keys, then use the dataset ID from the results with get_dataset_metadata and query_dataset.' This tells the agent exactly when to use this tool and what to do before/after, effectively replacing the manual workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of indicating safety. 'List' clearly implies a read‑only operation with no side effects. It adds workflow context but does not mention potential rate limits or auth requirements, though these are not critical for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and the second sentence provides efficient workflow guidance. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single‑parameter tool with no output schema, the description tells the agent what the tool does, how to get the input, and what to do next. It fully equips the agent for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description reinforces the source of the parameter by stating to use it after search_education_statistics. The schema itself describes publication_id as 'from search_education_statistics', so the description adds complementary context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List the available datasets') on a specific resource ('a DfE Explore Education Statistics publication'). It clearly distinguishes itself from sibling tools like get_dataset_metadata (which explores filters/indicators) and query_dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a workflow: use after search_education_statistics and before get_dataset_metadata. This tells the agent exactly when to use this tool relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mkb-123/uk-schools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server