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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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