amtsblatt-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | SSE bind address. Set to 0.0.0.0 to expose on all interfaces. | 127.0.0.1 |
| LOG_LEVEL | No | Log level: DEBUG, INFO, WARNING, ERROR | INFO |
| MCP_API_KEY | No | Bearer token for SSE authentication. Required when MCP_TRANSPORT is sse; fails loud if unset. | |
| RUBRICS_TTL | No | Taxonomy cache TTL in seconds | 86400 |
| MCP_TRANSPORT | No | Transport protocol: stdio or sse | stdio |
| MCP_RATE_LIMIT | No | Sliding-window rate limit (number of requests) | 60 |
| MCP_RATE_WINDOW | No | Sliding-window rate limit window in seconds | 60 |
| MCP_CORS_ORIGINS | No | Comma-separated origins allowed to call the SSE endpoint from a browser. Unset means no cross-origin browser access. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gazette_get_publicationA | Retrieve the full text of one publication once you have its id from a search. Refuses ids whose rubric is not released, after fetching — the rubric is not knowable from the id alone. Einzelne Publikation inkl. amtlichem Volltext (aus dem XML, defensiv geparst). Die Listen-API liefert nur Metadaten — der eigentliche Inhalt steht
ausschliesslich im rubrikspezifischen XML unter Nach dem Abruf wird die Rubrik der Publikation erneut gegen die Freigabe-Liste geprüft: eine ID aus einer gesperrten Rubrik liefert die Scope-Erklärung statt des Inhalts. Args: params (PublicationInput): - id (str): Publikations-ID (UUID) - response_format (str): 'markdown' oder 'json' Returns: str: Volltext, Metadaten, allfällige Eingabefrist und Zusatzfelder. |
| gazette_list_rubricsA | Discover which rubrics exist and which this server serves, before searching. Call this when a search returns nothing to tell "no such publications" apart from "that rubric is deliberately not served". Rubrik-Taxonomie des Amtsblattportals mit Ampel-Klassierung. Voraussetzung für gültige Filter: Rubrik-Codes werden in den Such-Tools gegen diese Taxonomie UND gegen die Freigabe-Liste validiert. Standardmässig werden nur die erschlossenen («grünen») Rubriken gezeigt. Mit Args: params (RubricsInput): - language (str): 'de', 'fr', 'it', 'en' - rubric_class (str): 'green' (Standard) oder 'all' - response_format (str): 'markdown' oder 'json' Returns: str: Rubriken mit Code, Name, Ampel-Klasse und Subrubriken. |
| gazette_search_publicationsA | Search the released gazette rubrics by keyword, rubric, canton and date — the general entry point when the question is "what was officially published about X?". Combine rubric with canton: a bare rubric filter is silently ignored upstream. Sucht amtliche Publikationen im Amtsblattportal (SHAB + kantonale Amtsblätter). Durchsucht ausschliesslich die freigegebenen («grünen») Rubriken: Handels- register, öffentliche Beschaffung, kantonale und kommunale Bekanntmachungen, Beschlüsse und Rechtsetzung, politische Rechte, Raumplanung sowie Umwelt/ Verkehr/Energie. Rubriken mit systematischen Personendaten — Konkurse, Schuldbetreibungen, Erbschaft, Zivilstand, gerichtliche Vorladungen, Baugesuche — sind bewusst nicht erschlossen und liefern eine Erklärung statt Daten. Ein Personennamen-Sucheinstieg existiert nicht. Ohne Args: params (SearchInput): - keyword (Optional[str]): Volltext-Suchbegriff - rubric / sub_rubric (Optional[str]): freigegebene Codes - canton (Optional[str]): Kantonskürzel - date_start / date_end (Optional[str]): Zeitraum YYYY-MM-DD - limit (int): 1–100 (Standard 20), page (int): 0-basiert - language (str): bevorzugte Sprache - only_language (bool): nur diese Sprachfassung - response_format (str): 'markdown' oder 'json' Hinweis zur Trefferzahl: Das Portal publiziert eine Bekanntmachung je Sprache
als eigenen Datensatz mit eigener Publikationsnummer. Sprachfassungen mit
identischem Titel werden zusammengefasst, übersetzte bleiben getrennt — die
Trefferzahl kann daher über der Zahl verschiedener Bekanntmachungen liegen.
Returns: str: Trefferliste mit Datum, Kanton, Rubrik, Titel, Sprache, ID und URL. |
| gazette_search_detailedA | Answer a question needing both the hit list and each hit's full text in one step. Prefer this over a search followed by N gazette_get_publication calls. Sucht Publikationen UND liefert den Volltext der obersten Treffer — ein Aufruf. Aggregierter Einstieg für den häufigen Fall «finde Bekanntmachungen und zeig
mir, was drinsteht». Ohne dieses Tool braucht dieselbe Frage 1 + N Aufrufe:
einmal Filter und Semantik sind identisch mit Für Ausschreibungen mit Volltext in einem Aufruf: Wann stattdessen die Einzeltools:
Args:
params (DetailedSearchInput):
- top_n (int): Anzahl Volltexte (1–5, Standard 3)
- übrige Felder: identisch zu Returns:
str: Trefferliste plus Volltext der obersten |
| gazette_search_procurementA | Find public tenders published in the gazette (Submissionen) — the procurement-specific entry point. Note only AR, BS, TI, ZG, BL and VS mirror tenders here; for full Swiss coverage including Zurich use swiss-procurement-mcp. Sucht öffentliche Ausschreibungen (Beschaffungswesen/Submissionen). Beschaffung ist ausschliesslich eine KANTONALE Rubrik ( WICHTIG — Spiegel vs. Original: Die Was es NUR hier gibt, sind die Beschaffungs-Subrubriken Args: params (ProcurementInput): - keyword (Optional[str]): Freitext (kein CPV-Code) - canton (Optional[str]): Kantonskürzel; ohne Angabe alle aktiven - date_start / date_end (Optional[str]): Zeitraum YYYY-MM-DD - include_inactive (bool): inaktive Rubriken (BL/BS/VS/ZG) einbeziehen - limit (int): 1–100 (Standard 20), page (int): 0-basiert - language (str), only_language (bool), response_format (str) Hinweis zur Trefferzahl: Ticino publiziert überwiegend it/fr, Appenzell A.Rh.
de/fr — je Sprache ein eigener Datensatz mit eigener Publikationsnummer.
Identische Titel werden zusammengefasst, übersetzte bleiben getrennt; die
Trefferzahl kann daher über der Zahl verschiedener Ausschreibungen liegen.
Returns: str: Ausschreibungen (neueste zuerst) mit Datum, Kanton, Titel, Sprache, ID. |
| gazette_source_statusA | Check whether amtsblattportal.ch is reachable and what the released scope is. Call this when a search returns nothing and you need to distinguish an empty result from a source that could not be asked — the two are not the same answer. Status des Amtsblattportals, Cache-Alter und Umfang der Freigabe-Liste. Prüft die Erreichbarkeit des Upstreams, meldet das Alter des Taxonomie-Caches und wie viele Rubriken erschlossen sind. Args: params (StatusInput): - response_format (str): 'markdown' oder 'json' Returns: str: Erreichbarkeit, Latenz, Cache-Alter und Scope-Kennzahlen. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/malkreide/amtsblatt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server