Ireland MCP
Ireland MCP is a read-only, no-auth connector for looking up official Irish public data and returning cited sources.
Browse sources and operations by domain with
ireland_catalogue.Inspect an operation’s schema, description and example with
ireland_describe.Run any catalogued source operation with
ireland_call, covering statistics, transport, environment, energy, economy, law/politics and places/property.Search across Irish public datasets and fetch full documents by id using
searchandfetch.Get a point-location profile with
nearby: county, local authority, constituency, electoral division, small area, settlement, nearest Met Éireann forecast, nearby monuments and protected sites.Get server licence, attribution, status URL and typed-toolset guidance with
ireland_about.Query data such as CSO census figures, Oireachtas business, legislation, Met Éireann forecasts/warnings, Irish Rail/Luas, property prices, planning, heritage, EPA, Pobal, Eurostat, ECB and more.
It cannot write, change or submit anything.
Provides tools for querying the Wikidata Query Service, letting assistants look up Ireland-related places (wikidata_place) and retrieve data about arbitrary Wikidata entities (wikidata_entity) as part of broader Irish public-data answers with citations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ireland MCPWhat was the population of Galway in the 2022 census?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ireland MCP
Ask ChatGPT, Claude or Copilot about Ireland, and get answers that cite official public sources.
Ireland MCP is a free connector for AI assistants. It lets your assistant look up Irish public data, such as census figures, train times, weather warnings, house prices and Dáil business, and tell you where every number came from. Website: irishopendata.ie.
Free, with no account or API key. Paste one web address into your assistant.
Read-only. It only looks things up. It cannot change or submit anything.
Official sources. Answers come back with the publisher, licence and the time the data was fetched, so you can check them.
Open source under the MIT licence. An unofficial community project, not a government service.
What can I ask?
“What is the latest population profile for Galway city or County Cork?”
“Are there Met Éireann weather warnings near Dublin today?”
“What did houses sell for in Ennis last year?”
“When is the next train from Heuston, and are there disruptions?”
“Who are the current TDs for my constituency, and what bills are active?”
“What protected habitats, monuments, planning applications or census areas are near this point?”
The assistant writes the answer; Ireland MCP supplies the data and its source. Check the date and source before you rely on a figure.
Related MCP server: gaff-check
Set it up in 30 seconds
The server address is https://mcp.irishopendata.ie/mcp. It needs no sign-in.
ChatGPT: Plugins → + → Add custom MCP server → paste the address → No authentication. Full steps.
Claude: Settings → Connectors → Add custom connector → paste the address.
GitHub Copilot CLI:
copilot mcp add --transport http ireland https://mcp.irishopendata.ie/mcpVS Code: add
.vscode/mcp.json:{ "servers": { "ireland": { "type": "http", "url": "https://mcp.irishopendata.ie/mcp" } } }
Check it works. Ask: "Using the ireland tools, give me the Census 2022 profile of Ennis, Co Clare, and the Met Éireann forecast for Galway. Cite the sources." The answer should link https://data.cso.ie/table/F1015 and the Met Éireann forecast URL.†
† The forecast URL is http://: Met Éireann's https:// host currently redirects to an origin that fails TLS.
Beta features
Beta features are off on the hosted server. You can turn them on when you run your own copy.
Beta: Irish law & your rights (annual leave and working time)
Not legal advice. For your own situation, contact Citizens Information, the Workplace Relations Commission or a solicitor.
An optional pilot finds Irish employment-law evidence and quotes it with links. It covers only two topics today: annual leave and working time.
What it reads: two Citizens Information guidance pages, the Organisation of Working Time Act 1997 and the Irish Statute Book page listing that Act's later changes.
Act text is as passed in 1997. It may not include later amendments. Check the changes page and the cited source.
Citizens Information blocks automated access today. Its firewall refused the pilot's requests on 26 October 2026, so a sync may fetch only the Irish Statute Book pages. We will not disguise the pilot as a browser. Wider coverage needs permission or an official export from the Citizens Information Board; we are asking.
AI summaries can be wrong. Every answer quotes its sources. Read them.
Without the beta, the default legislation source quotes Irish law as enacted, live from the Irish Statute Book. In this revision that covers Acts, statutory instruments and the Constitution; check ireland_describe for what a given server offers. The beta adds Citizens Information guidance and stored, versioned evidence.
Try it on your own machine:
npm run legal:sync # fetch the seed pages into .irish-legal-cache
npm run legal:serve # chat page and tools at http://127.0.0.1:4173legal:sync exits with an error while any page fails. Today that is expected for the Citizens Information pages; the Irish Statute Book pages are still saved.
Or add it to the main server with LEGAL_ENABLED=true (off by default). Read the beta assessment and pilot guide first.
Hosted endpoint: https://mcp.irishopendata.ie/mcp
Transport: Streamable HTTP. Auth: none. Writes: none.
Registry: io.github.c-mongan/ireland-mcp on the official MCP Registry.
Connect your assistant
Client | Current setup |
Claude custom connector | Settings → Connectors → Add custom connector → URL |
ChatGPT plugin | In ChatGPT on the web, open Plugins → + → Add custom MCP server. Name it Ireland Open Data, enter |
VS Code | Install link (paste into a browser or run |
VS Code Insiders | Install link: |
Cursor | Deeplink: |
GitHub Copilot CLI |
|
Claude Code |
|
Local (stdio, no hosted endpoint) |
|
Portable Copilot / MCP JSON:
{
"mcpServers": {
"ireland": {
"type": "http",
"url": "https://mcp.irishopendata.ie/mcp",
"tools": ["*"]
}
}
}What's inside
Count | Value | Definition |
Data sources | 39 | Upstream public-data sources, one module each. The |
Available without an operator key | 37 of 39 | NTA realtime needs an operator key. Logainm needs a Gaois operator account and API key. |
Catalogue operations | 93 | 89 source operations plus 4 cross-source ones ( |
Default tools | 8 | What |
Tools with | 99 | Every operation as a typed tool, plus the 4 meta tools, |
Prompts | 3 |
|
Dataset cards | 39 of 39 | Sources with a card (topics, geography levels, time coverage, join keys) that |
Last full run of every operation then in the catalogue against the hosted endpoint: docs/live-all-ops.md (2026-10-26): 78 of 82 pass, 1 fail; 3 need an operator key (NTA, Logainm).
The default profile covers statistics (CSO, Eurostat, ECB, World Bank), the Oireachtas and Irish Statute Book, Met Éireann, transport (Irish Rail, Luas, NTA, TFI stops, bikes), property, planning, heritage, environment, energy, tourism, lobbying, pay-gap reports, council budgets and more. An optional Irish legal and Citizens Information pilot is off by default; see Beta features.
The default profile registers 39 source modules in src/registry.ts. The default nearby, ireland_resolve_place, search and fetch shortcuts sit above these sources. ireland_resolve_place maps any place to its county, council, LEA, constituency, NUTS3 and ED codes; see the place crosswalk. The optional pilot rows require LEGAL_ENABLED=true and an ingested corpus; check ireland_catalogue for the modules available on an endpoint. See new provider access and limits.
Every source has a dataset card: topics, geography levels, time coverage, update cadence, join keys and licence. Ask ireland_catalogue for, say, {"geo_level": "lea", "topic": "housing"} to list only the operations with that data, and ireland_describe with a source for its full card.
Domain | Source id | Publisher / source | Operations | Licence |
places/property |
| 1 | CC BY 4.0 | |
transport |
| 1 | CC BY 4.0 | |
environment |
| 1 | CC BY 4.0 | |
places/property |
| Logainm / Gaois placenames — operator key required | 1 | CC BY 4.0 |
stats |
| 3 | Creative Commons Attribution; check dataset terms | |
stats |
| 4 | CC BY 4.0 | |
economy |
| 2 | CC BY 4.0 | |
stats |
| 3 | Eurostat reuse policy (CC BY 4.0 equivalent) | |
stats |
| 3 | ECB terms, free reuse with attribution | |
stats |
| 1 | CC BY 4.0 | |
stats |
| 3 | Per dataset, mostly CC BY 4.0 | |
economy |
| 3 | CC BY 4.0 | |
economy |
| European Commission Kohesio — packaged, dated Irish CSV exports; not live data (refresh guide) | 2 | EU reuse policy / CC BY 4.0 compatible |
stats |
| 3 | Per dataset, mostly CC BY 4.0 | |
stats |
| 1 | CC BY 4.0 | |
law/politics |
| SIPO Register of Lobbying — published returns (notes) | 1 | SIPO PSI reuse policy |
economy |
| 1 | CC0 1.0 | |
economy |
| 2 | CC BY-SA 4.0 | |
law/politics |
| Houses of the Oireachtas Open Data API — includes bill stages linked to the enacted Act | 6 | Oireachtas Open Data PSI Licence |
law/politics |
| Irish Statute Book — Acts and SIs as enacted/made, the Constitution, amendment and commencement directory | 7 | Oireachtas (Open Data) PSI Licence (incorporates CC BY 4.0) |
law/politics |
| Publications Office of the EU — Cellar SPARQL — EU act metadata by CELEX or ELI | 1 | |
law/politics |
| Irish legal evidence corpus — indexed source versions and Act sections; annual-leave/working-time seeds; current law unverified | 6 | Per-document publisher licence; Revised Acts storage and redistribution permission gated |
stats |
| Citizens Information Board Data Hub — pinned, checksummed annual CIS and CIPS statistics 2021–2025; not live data (notes) | 3 | CC BY 4.0 |
law/politics |
| Éire Civic Tech Directory behind CitizenData.ie — pinned catalogue; status and links as listed, unverified (notes) | 1 | MIT (catalogue) |
law/politics |
| Citizens Information Board — indexed explanatory guidance from the limited pilot corpus | 2 | CC BY 4.0; third-party material excluded |
places/property |
| 4 | CC BY 4.0 | |
places/property |
| 2 | CC0 1.0 | |
places/property |
| 2 | PSI General Licence / CC BY 4.0 | |
places/property |
| 2 | CC BY 4.0 | |
places/property |
| 1 | CC BY 4.0 | |
environment |
| 3 | CC BY 4.0 | |
environment |
| 1 | CC BY 4.0 | |
environment |
| 2 | CC BY 4.0 | |
environment |
| 2 | CC BY 4.0 | |
environment |
| 5 | CC BY 4.0 | |
transport |
| 2 | CC BY 4.0 | |
transport |
| 2 | Public open data; attribution required | |
transport |
| 2 | CC BY 4.0 | |
transport |
| 2 | CityBikes attribution/link; underlying operator terms | |
energy |
| 1 | Public information; attribution required | |
economy |
| 2 | EU reuse policy / CC BY 4.0 |
The civic-source additions and GeoHive layer selection are described in civic source notes. Counts describe the code in this revision, not a deployment receipt. Check the connected server with ireland_catalogue; verify a release with node scripts/live-civic.mjs --url https://mcp.irishopendata.ie/mcp.
Why it's lean
Most data MCPs expose every typed tool up front. Ireland MCP keeps the default tools/list to 8 tools, 11,924 characters, about 2,981 tokens (toolsets=all is 99 tools, about 29k tokens) (npm run measure:tools). CI fails if that list grows past 16,000 characters.
Need typed tools anyway?
Surface | Use |
Default HTTP |
|
Source toolsets |
|
One source path |
|
Everything |
|
Local stdio |
|
max_tokens defaults to about 2,000 output tokens and can be set from 100 to 8,000. Large results return truncated, counts and narrowing hints instead of flooding the context.
Hosted or self-hosted
Use the hosted endpoint (
https://mcp.irishopendata.ie/mcp) unless you have a reason not to. It's free, needs no keys, and the maintainer keeps it running.Run it yourself with
npx -y ireland-mcp(stdio),npm run dev:http(local HTTP), or your own Azure deployment. See docs/self-hosting.md.Contribute a source if something Irish and public is missing. See Contributing.
Privacy and usage counts
Read-only, no accounts, and no argument values or IP addresses in logs or telemetry.
The hosted service keeps aggregate usage counts in PostHog: which sources and client apps are used, with no identities. The website counts anonymous page views without cookies. PRIVACY.md lists every field.
Self-hosted copies never send usage counts unless you configure PostHog. An Azure deployment from the templates exports traces and metrics to your own Application Insights; set
IRELAND_MCP_OTEL=offto stop that. Local stdio and HTTP send nothing.GET /healthz(add?deep=1for per-source checks) and a public status feed report service health.
Limits
Read-only public data only. No login-gated, paid or key-required user data.
NTA realtime and Logainm placenames need server-side operator keys; every other source works without one.
Upstream data can be delayed, provisional, incomplete or temporarily down. Stale cache is labelled
stale: trueand is used only for retryable failures. Permanent request, access and missing-resource errors remain visible.Property Price Register values are declared sale prices, not valuations.
Legislation text is for retrieval and analysis, not legal advice. The optional legal pilot covers only ingested pages. Enacted text, Citizens Information guidance and any permitted consolidation require verification of amendments, commencement and source currency; they do not certify current law.
Large tables are paginated or truncated. Use
fields,limit,cursorand source filters.
Contributing
New sources are the most useful contribution. Request one, or add it yourself:
Create
src/sources/<id>/index.tsexporting aSourceModulewithinfo,summary,domain,coverage, tools, optionalsearch()andfetchById(). A source withsearch()must also implementfetchById()for the ids it returns.Keep every tool name source-prefixed, validate args with zod and return the evidence envelope with source URL, licence and attribution.
Use
ctx.cachedJson/ctx.cachedTextso upstream budgets, caching, circuit breakers and stale fallback apply.Add fixtures and tests at the module seam, then add a server-level
ireland_calltest when useful.Register the module in
src/registry.ts, updatescripts/live-sanity.mjs, eval cases and docs.Run lint, typecheck, tests, build, inspector and live sanity before opening a PR.
See CONTRIBUTING.md for the full checklist.
Development commands, evals and the quality loop are in docs/development.md.
Licence and attribution
Layer | Licence / attribution |
Code | MIT, copyright Conor Mongan. |
Source metadata and returned data | Stays under each publisher licence. Every normal tool response includes |
CSO / Eurostat / ECB / Wikidata / World Bank | Cite CSO, Eurostat, ECB Data Portal, Wikidata contributors and World Bank Open Data respectively; Wikidata is CC0. |
Oireachtas / legislation / PSI sources | Cite Oireachtas Open Data, eISB / Office of the Attorney General, PSRA, OPW and other named PSI publishers as shown in responses. |
CIB Data Hub / civic directory | CIB statistics: "Contains Irish Public Sector Data licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) licence", credit the Citizens Information Board. Directory: credit the Éire Civic Tech Directory (MIT, William Kennedy) and the listed project owners. |
Optional legal pilot | Preserve per-document citations and Citizens Information Board attribution. Law Reform Commission Revised Acts reuse requires explicit permission; see source policies. |
Weather, transport, environment, business and maps | Cite Met Éireann, NTA, Iarnród Éireann, TII/Luas, EirGrid, Marine Institute, Tailte Éireann, NMS, NPWS, EPA, Pobal, CRO, Kohesio/TED and JCDecaux/CityBikes/GBFS as applicable. |
Full notice | See NOTICE. Not affiliated with any government body, data publisher or transport operator. |
Thank you to the maintainers of Irish-data and public-data MCP projects that helped shape the direction:
Project | What to look at |
Irish open-data CLI for LLM use. | |
Irish MCP platform and public-data UX. | |
CSO/PxStat MCP focused on Irish statistics. | |
National open-data catalogue MCP pattern. | |
Census-data MCP interface and interpretation pattern. | |
CKAN search/query server design. | |
Eurostat MCP implementation. | |
OECD statistical-data MCP. |
Data comes from the publishers listed above, including CSO, data.gov.ie, Met Éireann, OPW, Irish Rail, Oireachtas, GeoHive/Tailte Éireann, National Monuments Service, NPWS, EPA, Pobal, CRO, World Bank, Eurostat, ECB, Wikidata, Kohesio, TED, JCDecaux/CityBikes and others. Please cite the publisher shown in each response.
More
Security
Security reports: SECURITY.md. This project is read-only, but MCP servers can still retrieve untrusted web content; clients should follow their normal MCP trust and approval model.
Available Tools
7 toolsfetchFetch a document by idARead-onlyIdempotentInspect
Fetch the full text of a search result by its id, e.g. 'cso:F1001', 'oireachtas:bill/2024/12', 'legislation:2018/7/s2' or 'data-gov-ie:moby-bikes'.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id from search, '<source>:<key>'. | |
| max_tokens | No | Result budget in tokens (default 2000). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the behavioral fact that this returns 'full text' from heterogeneous source namespaces, but says nothing about truncation when max_tokens is hit, rate limits, or other runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource stated first, followed by a compact enumeration of id examples. Every element earns its place; there is no boilerplate or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is unnecessary, and annotations plus 100% schema coverage handle safety and parameters. The description supplies purpose and id format, leaving only minor gaps (truncation behavior for max_tokens, explicit routing versus 'search').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 goes beyond the schema's generic '<source>:<key>' by giving four concrete id examples spanning different namespaces ('cso:', 'oireachtas:', 'legislation:', 'data-gov-ie:'), which materially helps the agent construct a valid id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('fetch') and resource ('the full text of a search result') and specifies the selector ('by its id'), so the agent knows this retrieves document content rather than finding documents. It implicitly distinguishes itself from the 'search' sibling by referencing 'a search result', but never names or contrasts that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the phrase 'by its id' plus 'of a search result' signals the id must come from a prior search call. There is no explicit when-to-use, when-not-to-use, or named alternative among the siblings (search, ireland_describe, nearby).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ireland_aboutAbout this serverBRead-onlyIdempotentInspect
Licence, attribution, status URL and how to enable typed toolsets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered without the description. The description adds only a content inventory, disclosing nothing about the response shape or any side effects beyond what the annotations and output schema carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short fragment with no filler, and the most decision-relevant item (licence, attribution) leads. It loses a point only for being an unanchored phrase rather than a complete sentence, which slightly weakens front-loading of intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, there is little the agent needs beyond knowing this is a static informational endpoint. The description is sufficient for that, though it never explicitly states that no arguments are needed or that the output is documentation-style prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter syntax for the description to clarify, and it correctly says nothing about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase listing the payload's contents (licence, attribution, status URL, how to enable typed toolsets) rather than a verb+resource statement of what the tool does. It is distinguishable from siblings like ireland_describe or ireland_catalogue, but an agent must infer that this is a server-metadata/introspection tool from the title alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given, and no sibling alternative is named. The enumerated content does imply the triggering conditions (need licence/attribution/status info or help enabling typed toolsets), which is enough for implied but not stated usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ireland_callCall an operationARead-onlyIdempotentInspect
Run a source operation with args. Bad args return the expected schema and an example. Operations by source: cso: cso_search_tables, cso_get_table_metadata, cso_get_data, cso_area_profile; ncse: ncse_search_datasets, ncse_get_dataset, ncse_query_datastore; world-bank: worldbank_get_indicator, worldbank_ireland_profile; eurostat: eurostat_search_datasets, eurostat_get_data, eurostat_compare_ie_eu; ecb: ecb_get_series, ecb_interest_rates, ecb_exchange_rate; pobal: pobal_deprivation_search; oireachtas: oireachtas_search_members, oireachtas_search_bills, oireachtas_get_debates, oireachtas_search_questions, oireachtas_get_votes; geohive: geohive_boundaries_at_point, geohive_locate, geohive_list_layers, geohive_query_layer; wikidata: wikidata_place, wikidata_entity; data-gov-ie: datagov_search_datasets, datagov_get_dataset, datagov_query_datastore; cro: cro_search_datasets, cro_get_dataset, cro_query_datastore; kohesio: kohesio_search_projects, kohesio_get_project; smart-dublin: smartdublin_search_datasets, smartdublin_get_dataset, smartdublin_query_datastore; met-eireann: met_get_forecast, met_get_observations, met_get_warnings; nta: nta_get_realtime_summary, nta_get_trip_updates; legislation: legislation_list_acts, legislation_get_act, legislation_get_section; ppr: ppr_search_sales, ppr_price_stats; irish-rail: rail_find_station, rail_get_departures; luas: luas_get_forecast, luas_list_stops; eirgrid: grid_get_status; marine: marine_get_buoys; opw-water: water_find_stations, water_get_level; planning: planning_search, planning_get; census-areas: census_small_area_at; epa: epa_wfd_search, epa_wfd_waterbody, epa_bathing_locations, epa_bathing_alerts, epa_bathing_measurements; heritage: heritage_monuments_near; environment-sites: protected_sites_at, protected_sites_near; ted: ted_search_tenders, ted_get_notice; bikes: bikes_networks, bikes_stations_near; cross: list_sources, ireland_snapshot, nearby.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Operation arguments. | |
| source | Yes | Source id. | |
| arguments | No | Alias of args. | |
| operation | Yes | Operation name. | |
| max_tokens | No | Result budget in tokens (default 2000). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), lowering the bar. The description adds one genuine behavioral trait beyond the annotations: bad arguments return the expected schema plus an example, which tells the agent errors are self-documenting. It still says nothing about rate limits, external-service latency, or how operations map to side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded (action + error behavior) before the reference material. The long operation catalogue is heavy but arguably earns its place, since the schema declares zero enums and provides no other enumeration of valid operation values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the operation catalogue supplies the missing enum-like values for operation/source. The bad-args contract is stated. It is largely complete for a dispatcher, with only cross-tool routing left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents source, operation, args, arguments, and max_tokens. The description reinforces the source+operation+args pattern but adds no syntax or format detail beyond what is already structured. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Run a source operation with args") and enumerates the valid source/operation pairs, so an agent knows exactly what this dispatcher does. It does not, however, differentiate itself from siblings like fetch, search, or ireland_describe, which are also generic entry points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation catalogue (each operation name signals its purpose), and "Bad args return the expected schema and an example" hints at the calling workflow. But there is no explicit guidance on when to use ireland_call versus fetch, search, or the catalogue/describe tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ireland_catalogueCatalogue of Irish data sourcesARead-onlyIdempotentInspect
List sources and their operations, grouped by domain: stats, transport, environment, energy, economy, law/politics, places/property. Start here.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Only this domain. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that results are grouped by domain and include operations, but says nothing about result size, pagination, or freshness — useful but modest added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the resource and grouping stated first and the call-to-action last. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description covers purpose plus entry-point role. The only gap is guidance on what to do with the catalogue once retrieved (i.e., which siblings to call next), which would make it fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single domain parameter has a fully enumerated schema description. The description's domain list mirrors the enum rather than adding new semantics such as interaction with grouping or whether omitting it returns everything, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource (lists sources and their operations) plus the grouping dimension (domain), so the agent knows exactly what comes back. It does not explicitly distinguish itself from siblings like ireland_about or ireland_describe, but the catalogue framing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Start here" is an explicit entry-point directive, which is the most important usage signal for a discovery tool. It gives no explicit when-not or named alternative, so it falls 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.
ireland_describeDescribe an operationCRead-onlyIdempotentInspect
Argument JSON schema, description and an example for one source operation.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source id, e.g. 'cso'. | |
| operation | Yes | Operation, e.g. 'cso_get_data'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description's only added content is the return payload (schema, description, example), which overlaps with the existing output schema, and it says nothing about auth, rate limits, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste, but it is an incomplete fragment whose key information (the action) must be inferred, so brevity here shades into under-specification rather than concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations cover safety, leaving purpose and routing as the description's job — both are underdeveloped for a tool that must be chosen over three other ireland_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in-schema with concrete examples ('cso', 'cso_get_data'). The phrase 'one source operation' is consistent with source+operation but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (one source operation) and what it yields (argument JSON schema, description, example), so the intent is inferable, but it is a noun-phrase fragment with no verb for the action. It does not distinguish itself from near siblings like ireland_catalogue or ireland_call, which also deal with source operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus ireland_call, ireland_catalogue, or ireland_about. The agent must infer that this is the introspection step preceding a call, with no explicit guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nearbyWhat is at this locationARead-onlyIdempotentInspect
For a WGS84 point in Ireland: county, local authority, constituency, electoral division, small area and settlement (GeoHive), the nearest Met Éireann station and forecast, recorded monuments within 500 m (SMR) and NPWS protected sites at the point. Not live observations, river levels, buoys, bikes or populations: use ireland_call for those.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, e.g. 53.3498. | |
| lon | Yes | Longitude, e.g. -6.2603. | |
| hours | No | Forecast hours to include. | |
| max_tokens | No | Result budget in tokens (default 2000). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely non-derivable context: the geographic constraint (Ireland-only, WGS84), the data provenance (GeoHive, SMR, NPWS), the 500 m search radius for monuments, and the warning that results are not live observations. It does not mention caching, freshness windows, or behavior for points outside Ireland, which keeps this at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the result scope, then the exclusion/routing clause. The long enumeration is dense but each item is decision-relevant, so little is wasted; the only minor cost is that it reads as a catalogue rather than a terse directive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting need not be described, and the description covers the dataset union, coordinate frame and scope well. The residual gap is what happens for coordinates outside Ireland and whether output is truncated by the token budget — relevant given the max_tokens parameter, though hinted at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lifts it by specifying the coordinate reference frame (WGS84) and the Irish coverage area, which the schema's bare lat/lon numbers and bounds do not convey. Forecast hours and token budget are already fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what is returned for a WGS84 point in Ireland: administrative units (county, local authority, constituency, electoral division, small area, settlement via GeoHive), the nearest Met Éireann station and forecast, SMR monuments within 500 m, and NPWS protected sites. An agent can tell precisely what this tool produces without opening the schema, and the sibling ireland_call is explicitly named for other data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives both sides of the routing decision: what is in scope, and an explicit exclusion list ("Not live observations, river levels, buoys, bikes or populations") paired with the alternative to use instead (ireland_call). This is exactly the when/when-not/alternative structure that lets an agent pick the right sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch Irish public dataARead-onlyIdempotentInspect
Search across Central Statistics Office (CSO) PxStat, National Council for Special Education open data, World Bank Indicators for Ireland, Eurostat Statistics API, Pobal HP Deprivation Index, Houses of the Oireachtas Open Data API, Wikidata Query Service, data.gov.ie (Ireland's open data portal), Companies Registration Office open data, Kohesio EU-funded projects, Smart Dublin open data (Dublin local authorities), Irish Statute Book (eISB) via ELI, EPA Ireland open data, EU Tenders Electronic Daily (TED). Returns ids like 'cso:F1001' to pass to fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to look for, e.g. 'population by county' or 'housing bill 2024'. | |
| max_tokens | No | Result budget in tokens (default 2000). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the set of upstream data sources queried (open-world scope made concrete) and the return shape ('ids like cso:F1001'). It does not mention pagination, result limits beyond max_tokens, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The handoff sentence ('Returns ids ... to pass to fetch') is well placed at the end and earns its keep. The bulk of the text is a 14-item comma-separated source list that is informative for scope but reads as a run-on enumeration rather than front-loaded, prioritized description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter federated search tool with an output schema present, the description covers scope, sources, and the id format needed to chain into fetch, which is the key integration detail. Missing pieces are minor: no result-count expectations or behavior when a provider is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (query, max_tokens) are documented in the schema with examples and ranges. The description adds no parameter-level meaning beyond the schema – it does not explain query syntax, provider scoping, or how max_tokens interacts with multi-source results. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Search') and resource (Irish public data) and enumerates the 14 federated sources, which pins down scope precisely. It also distinguishes itself from the sibling 'fetch' by stating it returns ids 'like cso:F1001' that are then passed to fetch. However, the enumeration substitutes for a description of what the search actually does (keyword matching? full text?), so it is clear but slightly thin on capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the correct workflow by saying ids are 'to pass to fetch', which is a useful chaining hint. It gives no explicit when-to-use guidance relative to siblings such as ireland_call, ireland_catalogue, or nearby, nor any when-not-to-use or scoping conditions. Usage is therefore implied rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.1.1- First observed
fetch - First observed
ireland_about - First observed
ireland_call - First observed
ireland_catalogue - First observed
ireland_describe - First observed
nearby - First observed
search
TDQS
Scored across 7 tools
The discovery/dispatch trio (ireland_catalogue, ireland_describe, ireland_call) has clearly distinct roles—list, schema-lookup, execute—and search vs fetch is a clean list-vs-fulltext split. The only mild overlap is nearby, which duplicates some GeoHive/Met Éireann functionality reachable via ireland_call, though its description explicitly draws the boundary.
Four tools use an 'ireland_' namespaced snake_case prefix (catalogue, describe, call, about), while search, fetch, and nearby are bare single-word names with no prefix, mixing two conventions. Both groups are internally readable, but the set as a whole does not follow one predictable pattern.
Seven tools is well within the ideal range, and the gateway pattern (catalogue/describe/call) keeps an enormous multi-source domain compressed into a small, purposeful surface. Each tool—discovery, schema, execution, about, cross-search, fetch, geo-lookup—earns its place.
The surface covers the full lifecycle for a read-only data aggregator: discovery (ireland_catalogue, list_sources), schema inspection (ireland_describe), execution (ireland_call), cross-source search and full-text fetch, plus a convenience geo aggregator. Domain coverage spans stats, transport, environment, energy, economy, law, and place data with no obvious dead ends.
Maintenance
Related MCP Connectors
Irish Tax Hub helps users estimate Irish taxes, inspect current tax rates and deadlines, search Revenue guidance, and research Ireland's double-taxation treaties through read-only tools. Check out https://www.irishtaxhub.ie
Real-world data for agents: air quality, geocoding, quakes, holidays, web search
- mcpOAuthcom.skipshit
People and property search for Claude and ChatGPT. Phones, emails, addresses, relatives, properties.
Query UK Parliament, elections, crime stats, ONS census data, and national archives
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI assistants to search, explore, and query any CKAN open data portal through natural language, making public datasets accessible without requiring knowledge of the portal's API.20175 npm59MIT
- AlicenseAqualityCmaintenanceEnables AI agents to perform due diligence on Irish properties by querying public datasets for planning applications, sold prices, flood risk, radon risk, and zoning.131 npm8MIT
- AlicenseAqualityAmaintenanceIrish and UK official statistics by county and local authority: CSO, Central Bank, government and council data joined on one geography, with caveats on every figure and a comparability check. Built for AI agents.5195 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, inspect, and retrieve Irish Central Statistics Office PxStat datasets through MCP tools. Supports catalog search, metadata discovery, full-table reads, and filtered JSON-stat queries.21 npmMIT