Skip to main content
Glama
malkreide

i14y-mcp

by malkreide

List data services (APIs)

list_data_services
Read-onlyIdempotent

List registered APIs from Swiss public bodies to check if an interface already exists before building a scraper. Provides endpoint URLs and OpenAPI links.

Instructions

List machine interfaces (APIs) registered by Swiss public bodies.

The strategic payload of this server: the national register of official APIs, with endpoint URLs and OpenAPI specification links where the publisher supplied them. Use this to discover whether an interface already exists before building a scraper.

Args: publisher_identifier: Publisher identifier from list_publishers. language: Language for titles and descriptions. page: 1-based page number. page_size: Records per page (1-100).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
languageNode
page_sizeNo
publisher_identifierNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageYes
sourceNoAttribution string.Data: I14Y Interoperability Platform, Swiss Federal Statistical Office (BFS) — https://www.i14y.admin.ch. Licence terms are declared per distribution; check the `licence` field before reuse.
returnedYes
page_sizeYes
provenanceNoWhere this payload came from.live_api
retrieved_atYesUTC timestamp of retrieval.
data_servicesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.4/5.0
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 description only needs to add context beyond that. It does: results include OpenAPI links only where the publisher supplied them, the data is the national official register, and language affects titles and descriptions. No contradiction with 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?

The description is front-loaded with the core definition, followed by the strategic value and a concrete usage sentence. The Args block is terse, parallel, and informative. Every sentence earns its place with no filler.

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 output schema, annotations, and sibling context, the description is nearly complete: it explains the purpose, the data caveat, the parameter source, and the intended use. The only small gap is not explicitly describing pagination behavior, but the schema already defines page and page_size bounds clearly.

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 description coverage is 0%, so the Args block carries the burden. It meaningfully covers all four parameters: publisher_identifier is tied to list_publishers, language is for titles/descriptions, page is 1-based, and page_size is records per page. This compensates for the empty schema descriptions, though it does not deeply explain filtering behavior.

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?

States a specific verb ('List') and resource ('machine interfaces (APIs) registered by Swiss public bodies'), then adds what the tool returns: endpoint URLs and OpenAPI specification links. The 'discover whether an interface already exists' use case further clarifies its role and distinguishes it from sibling list/get tools at a glance.

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?

Gives an explicit use case ('Use this to discover whether an interface already exists before building a scraper') and useful context such as listing official Swiss APIs. It also cross-references list_publishers for the publisher_identifier. However, it does not explicitly contrast with get_data_service or other sibling tools, so there is minor room for ambiguity.

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