Skip to main content
Glama
Ownership verified

Server Details

MCP server for GOV.UK — search, content retrieval, organisation lookup, and postcode resolution.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation: page metadata, sections, content search, organisation profiles, organisation listing, postcode lookup, and full-text search. No two tools overlap in purpose, so an agent can clearly differentiate them.

Naming Consistency5/5

All tools follow the 'govuk_verb_noun' pattern (e.g., govuk_get_content, govuk_list_organisations) using imperative verbs. The naming is uniform and predictable, with only minor variation in verb choice (get, grep, lookup) but no mixing of conventions.

Tool Count5/5

Seven tools is ideal for the scope of reading GOV.UK data: page content (3 tools), organisations (2), postcode lookup (1), and search (1). Each tool serves a necessary function without being excessive or insufficient.

Completeness5/5

The tool set covers the primary read operations for the domain: retrieving page structure and content, searching across content, browsing and fetching organisations, and looking up postcodes. While there is no single tool to fetch all sections at once, the combination of get_content and get_section covers it adequately. No obvious gaps for a read-only API.

Available Tools

7 tools
govuk_get_contentGet GOV.UK PageA
Read-onlyIdempotent
Inspect

Get metadata and navigable section index for a GOV.UK page.

Returns the page title, document type, publication dates, and a list of sections with their anchor IDs and headings. Use govuk_get_section to read the body of a specific section, or govuk_grep_content to search within the page body.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_pathYesGOV.UK base_path, e.g. '/universal-credit' or 'universal-credit'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds valuable context beyond annotations by specifying exactly what is returned (title, document type, dates, section list) and what is not returned (body content), which helps manage expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: the first sentence states the purpose, the second lists return values, and the third gives usage guidance. Every sentence earns its place with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter and an output schema present, the description provides sufficient context: it explains what the tool returns, what it does not return (body content), and directs users to alternative tools for other needs. This fully equips an agent to decide when and how to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameter information, providing the name, type, and example format for base_path. The description does not add further parameter semantics, so a baseline score of 3 is appropriate since the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves metadata and a navigable section index for a GOV.UK page, specifying the resource and the exact data returned. It also differentiates from sibling tools by explicitly naming govuk_get_section and govuk_grep_content for body content, making its unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: it says to use govuk_get_section to read a section's body and govuk_grep_content to search within the page body. This gives the agent clear decision criteria and directly addresses alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govuk_get_organisationGet GOV.UK OrganisationA
Read-onlyIdempotent
Inspect

Get the profile of a UK government organisation by its slug.

Returns name, acronym, type, status, web URL, and parent/child organisations. Use govuk_list_organisations to browse all organisations and discover slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesOrganisation slug, e.g. 'hm-revenue-customs'. Find slugs via govuk_list_organisations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNoOrganisation slug, e.g. 'hm-revenue-customs'. Usable with govuk_search filters.
typeNoOrganisation type, e.g. 'ministerial_department', 'executive_agency', 'non_ministerial_department', 'public_corporation'.
stateNoGOV.UK status, e.g. 'live', 'closed', 'transitioning'.
titleNoFull organisation title.
acronymNoOrganisation acronym, if set.
web_urlNoAbsolute https://www.gov.uk URL for the organisation page.
contact_detailsNoContact details block from GOV.UK (phone, email, address) when available.
child_organisationsNoTitles of child organisations / agencies under this body.
parent_organisationsNoTitles of parent organisations this body reports into.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the return fields (name, acronym, type, status, web URL, parent/child organisations), which is useful context, but does not disclose error behavior, authentication needs, or rate limits. This is a modest addition beyond the annotations, consistent with a simple read-only 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences, with the first stating purpose and the second summarizing return data and pointing to a sibling tool. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with rich annotations and an output schema, this description is complete. It explains what the tool does, what information is returned, and how to find the required parameter value. No critical information is missing for this low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of the single parameter 'slug', including a description with an example and guidance on finding slugs via govuk_list_organisations. The description's phrase 'by its slug' adds no new semantics beyond what the schema already documents, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Get') and resource ('profile of a UK government organisation'), and identifies the input method ('by its slug'). It distinguishes itself from sibling tools like govuk_list_organisations by focusing on fetching a single organisation's profile rather than browsing all organisations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context by indicating this tool is used when you have a slug and need details, and explicitly points to govuk_list_organisations as the alternative for discovering slugs. It does not explicitly state when not to use this tool, but the guidance provided is sufficient for the tool's simple use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govuk_get_sectionGet GOV.UK Page SectionA
Read-onlyIdempotent
Inspect

Get the HTML content of one named section of a GOV.UK page.

Use govuk_get_content first to get the list of available section anchors, then call this with the anchor of the section you want to read.

ParametersJSON Schema
NameRequiredDescriptionDefault
anchorYesSection anchor ID from govuk_get_content sections list
base_pathYesGOV.UK base_path, e.g. '/universal-credit'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, reducing the burden on the description. The description adds context beyond annotations by noting the dependency on govuk_get_content and clarifying that the tool returns HTML content. It does not cover error behavior or rate limits, but with strong annotations and an output schema, this level of additional context is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, immediately stating the core function and then providing the workflow. It is front-loaded, contains no redundant phrases, and every clause contributes to understanding how to use the tool. This is a model of concise, structured documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 required parameters), strong annotation coverage, and the presence of an output schema, the description is complete. It covers the purpose, the prerequisite call, and the source of the anchor parameter. There are no significant gaps that would leave an agent uncertain about how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions for both parameters: 'anchor' and 'base_path'. The description does not add further meaning beyond what the schema already states; it merely echoes the workflow. Therefore, the schema does the heavy lifting, and the description offers no additional parameter-level insight, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get the HTML content of one named section of a GOV.UK page,' which uses a specific verb ('Get'), a precise resource ('HTML content of one named section'), and clear scope ('one named section'). It distinguishes from sibling tools by tying the anchor to govuk_get_content, making the tool's niche unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to 'Use govuk_get_content first to get the list of available section anchors, then call this with the anchor of the section you want to read.' This provides a clear workflow and prerequisite. It does not explicitly state when not to use this tool, but the phrase 'one named section' implies alternatives for whole-page content, so it is useful but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govuk_grep_contentSearch within a GOV.UK content bodyA
Read-onlyIdempotent
Inspect

Find body sections in a GOV.UK content item matching a pattern.

Returns a list of {anchor, heading, snippet, match} hits — small per-section snippets centred on the match — so the LLM can decide which full sections to read via govuk_get_section.

Use this when answering content-based questions ("what does this guide say about X?", "find the bit about eligibility") rather than navigating by section number.

Pattern is regex; if it doesn't compile, falls back to literal substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesRegex or literal substring to search for within the page body, e.g. 'payment' or 'eligible.*income'
max_hitsNoMaximum number of matching sections to return (1–100)
base_pathYesGOV.UK base_path, e.g. '/guidance/register-for-vat' or '/universal-credit'
case_insensitiveNoIf true (default), match case-insensitively

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYesMatching sections in document order
patternYesThe pattern that was searched for
base_pathYesThe content item that was searched
truncatedYesTrue if hit count reached max_hits and more matches may exist
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint, so the description adds value by detailing the return structure (`{anchor, heading, snippet, match}`) and the fallback behavior: 'Pattern is regex; if it doesn't compile, falls back to literal substring.' This discloses edge-case behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short paragraphs, each with a distinct purpose: purpose, return format, usage guidance, and pattern behavior. No redundant sentences; front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool returns, when to use it, how it relates to sibling tools, and the regex fallback. Given the output schema exists, it doesn't need to enumerate return fields, but it does anyway for clarity. The tool's complexity is well handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds the fallback semantics for `pattern` and explains that hits are per-section snippets, giving extra meaning to `max_hits` and `pattern` beyond the schema. This additional nuance raises it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource+scope: 'Find body sections in a GOV.UK content item matching a pattern.' It distinguishes itself from siblings by referencing govuk_get_section and contrasting with 'navigating by section number,' making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance is provided: 'Use this when answering content-based questions ... rather than navigating by section number.' It also prescribes a workflow: 'so the LLM can decide which full sections to read via govuk_get_section,' naming an alternative tool and the condition for its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govuk_list_organisationsList GOV.UK OrganisationsA
Read-onlyIdempotent
Inspect

List all UK government organisations registered on GOV.UK.

Returns a paginated list of organisations including their slug, acronym, type, and status. Use this to browse the full government structure or discover slugs for use with govuk_get_organisation or govuk_search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
per_pageNoResults per page (1–50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes1-based page number requested.
totalNoTotal number of organisations across all pages, if reported by GOV.UK.
has_moreYesTrue if more organisations exist beyond this page. Re-call with page=page+1 to fetch the next page.
per_pageYesMax organisations requested per page.
returnedYesNumber of organisations returned in this response.
total_pagesNoTotal number of pages available, if reported by GOV.UK.
organisationsNoOrganisations on this page, in the order returned by GOV.UK.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, establishing a safe read-only operation. The description adds behavioral context by noting the paginated nature of the response and listing included fields (slug, acronym, type, status). This goes beyond the annotations, though it doesn't cover every potential behavior like rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences that front-load the main purpose, then efficiently explain return contents and usage. Every sentence provides useful information with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional parameters, read-only, no side effects), the description covers what users need to know: what the tool lists, what fields are included, and how the result integrates with other tools. The output schema exists, so the description doesn't need to detail all return fields. Annotations cover the safety profile, making this complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for both parameters (page and per_page), including descriptions, defaults, and constraints. The description only refers to pagination generically and adds no syntax or format details beyond what the schema already documents. Therefore, it meets the baseline for schema-covered parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does 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 UK government organisations registered on GOV.UK.' It names the specific resource (organisations) and distinguishes it from siblings by noting that it can be used to 'discover slugs for use with govuk_get_organisation or govuk_search filters.' This makes the purpose unambiguous and differentiates it from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use the tool: 'Use this to browse the full government structure or discover slugs.' It also implies alternative tools (govuk_get_organisation, govuk_search) for other purposes. However, it doesn't explicitly state when not to use it, so it falls short of a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

govuk_lookup_postcodeLook Up UK PostcodeA
Read-onlyIdempotent
Inspect

Look up a UK postcode to retrieve its local authority, region, constituency, and other administrative geography.

Useful for determining which council area, parliamentary constituency, or NHS region a postcode falls within. Commonly used to direct users to the correct local service on GOV.UK (e.g. council tax, planning, waste).

Uses the postcodes.io public API (no key required).

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode, e.g. 'SW1A 2AA' or 'NG1 1AA'. Spaces optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codesNoGSS codes for all administrative geographies covering this postcode.
regionNoONS region, e.g. 'East Midlands'.
countryNoCountry, e.g. 'England', 'Scotland', 'Wales', 'Northern Ireland'.
latitudeNoLatitude in decimal degrees (WGS84).
postcodeNoCanonicalised postcode as returned by postcodes.io.
longitudeNoLongitude in decimal degrees (WGS84).
admin_countyNoAdministrative county, where applicable (null in unitary areas).
local_authorityNoLocal authority / council covering the postcode.
nhs_integrated_care_boardNoNHS Integrated Care Board, where available.
parliamentary_constituencyNoParliamentary constituency (pre-2025 boundary).
parliamentary_constituency_2025NoParliamentary constituency under the 2025 boundaries.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive. The description adds valuable context that it uses the postcodes.io public API with no key required, but does not mention rate limits or invalid input handling. This is sufficient for a simple read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, focused paragraphs with no redundancy. The first sentence gives the core operation, the second adds usage context, and the third provides a technical detail. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, full schema coverage, output schema present), the description adequately covers what, when, and external API details. It could mention edge cases like invalid postcodes, but for a direct lookup this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of the single parameter, including format, length, and examples. The description adds little beyond what the schema already states, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action 'Look up' and the resource 'UK postcode' with specific outputs like local authority, region, and constituency. This clearly distinguishes it from sibling tools focused on content, organisations, or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool ('Useful for determining which council area...') and gives practical examples like directing users to local services. However, it does not mention alternative tools or when-not-to-use, though no sibling tool offers postcode lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources