MCP server for amtsblattportal.ch (SHAB + cantonal gazettes) — procurement and official notices, person-data rubrics excluded by design
Six tools with consistent naming (verb_noun pattern: gazette_list, gazette_search, gazette_get), clear descriptions (120-180 chars), and complete input schemas with type definitions and parameter descriptions. All tools are READ_ONLY with proper risk classification. Output schemas are documented in descriptions but not formally specified in JSON Schema. Parameter descriptions are adequate but lack format constraints (e.g., date format validation, limit ranges). No critical security issues detected, all tools are read-only data access with no credential exposure.
Retrieve the full official text of a publication by ID. Returns the complete publication content in the requested format (Markdown or JSON). Includes attribution and provenance metadata.
List all queryable rubrics (publication categories) across SHAB and cantonal gazettes. Returns metadata including rubric code, name, language, and availability.
Advanced search across all queryable rubrics with detailed filtering options. Supports complex queries, date ranges, and rubric-specific parameters. Returns comprehensive publication metadata.
Search for public procurement notices (Submissionen/Beschaffung) across SHAB and cantonal gazettes. Supports filtering by rubric, language, date range, and procurement-specific parameters. Returns procurement metadata with IDs for detailed retrieval.
Search for official publications across SHAB and cantonal gazettes. Supports filtering by rubric, language, date range, and full-text search. Returns publication metadata with IDs for detailed retrieval.
Output schemas not formally documented in JSON Schema format. Descriptions mention 'metadata' and 'comprehensive publication metadata' but do not specify field names, types, or structure. LLMs cannot reliably extract or chain results without formal output schema.
Parameter constraints missing for numeric and date fields. 'limit' parameter has no min/max bounds (baseline: 1 - 100). Date parameters (from_date, to_date) lack format validation hints beyond 'YYYY-MM-DD'. LLMs may pass invalid values.
No pagination guidance in search tools. gazette_search_publications, gazette_search_procurement, and gazette_search_detailed accept 'limit' but do not document offset/cursor mechanism or total count in response. Large result sets may exceed context window.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Check the operational status and metadata of the amtsblattportal.ch data source. Returns information about data freshness, available rubrics, and service health.
Error handling not documented. No guidance on what errors are retryable, what user-fixable errors look like, or how to recover from 'publication not found' or 'invalid rubric' scenarios. Agents lack recovery paths.
Rubric parameter in search tools requires opaque codes (e.g., 'shab', 'be-1') with no discovery mechanism. Users must call gazette_list_rubrics first to find valid codes. Consider accepting human-readable rubric names as aliases.