RangRang416/destatis-mcp-server
If you are the rightful owner of destatis-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Destatis API Client & MCP-Server provides a Node.js/TypeScript client and an MCP server for accessing the GENESIS-Online REST-Webservice API of the German Federal Statistical Office (Destatis).
Destatis API Client & MCP-Server
Node.js/TypeScript Client und MCP-Server für die GENESIS-Online REST-Webservice API des Statistischen Bundesamts Deutschland (Destatis).
🎯 Was ist das?
Dieses Projekt bietet zwei Komponenten:
- 📚 TypeScript API-Client - Bibliothek für Node.js-Projekte
- 🤖 MCP-Server - Ermöglicht Claude Desktop direkten Zugriff auf Destatis-Daten
🚀 Quick Start
Option A: MCP-Server für Claude Desktop
Perfekt für: Interaktive statistische Analysen mit Claude Desktop
# 1. Installation
cd /mnt/c/Users/Ruben/.claude/destatis-api
npm install
npm run build
# 2. Claude Desktop konfigurieren
# Siehe: MCP-SETUP.md
# 3. Beispiel-Anfrage in Claude Desktop
"Erstelle mir eine Übersicht der Reallohn-Entwicklung der letzten 10 Jahre"
📖 Vollständige Anleitung:
Option B: TypeScript-Client nutzen
Perfekt für: Integration in eigene Node.js-Projekte
import { DestatisClient } from './src';
const client = new DestatisClient({
apiToken: process.env.DESTATIS_API_TOKEN!,
language: 'de'
});
// Suche nach Tabellen
const tables = await client.searchTables('Reallohn');
// Daten abrufen
const data = await client.getTableData('62111-0001', {
startyear: 2014,
endyear: 2024
});
📖 Vollständige Anleitung:
🎓 Beispiel-Szenarien
Mit Claude Desktop (MCP-Server)
Szenario: Reallohn-Analyse
Du: "Erstelle mir eine Übersicht der Reallohn-Entwicklung der letzten 10 Jahre. Ziehe dazu auch Daten hinzu, die den Warenkorb lohngruppen-spezifisch berücksichtigen. Versuche die Reallöhne anhand des Medians zu korrigieren."
Claude:
- Sucht automatisch nach Reallohn-Tabellen
- Findet Verbraucherpreisindex-Daten
- Kombiniert die Datenquellen
- Berechnet inflationsbereinigte Werte
- Erstellt übersichtliche Tabelle mit Ergebnissen
Weitere Beispiele:
- "Vergleiche die Arbeitslosenzahlen zwischen Bayern und NRW"
- "Zeige die BIP-Entwicklung seit 2010"
- "Wie hat sich die Bevölkerung in den letzten 5 Jahren entwickelt?"
Mit TypeScript-Client
# Basis-Beispiel
npm run example
# Datenabfrage
npx ts-node examples/fetch-data.ts
📦 Projekt-Struktur
destatis-api/
├── src/
│ ├── client.ts # TypeScript API-Client
│ ├── types.ts # Type Definitions
│ ├── mcp-server.ts # MCP-Server für Claude Desktop
│ └── index.ts # Export-Index
├── examples/
│ ├── basic-usage.ts # Basis-Beispiel
│ └── fetch-data.ts # Datenabfrage-Beispiel
├── dist/ # Kompilierter Code (nach npm run build)
├── README.md # Diese Datei
├── MCP-SETUP.md # MCP-Server Setup-Anleitung
├── USAGE.md # Detaillierte Nutzungsanleitung
├── ARCHITECTURE.md # Technische Architektur
└── package.json
🔧 Installation
npm install
📝 Konfiguration
- Kopiere
.env.examplezu.env:
cp .env.example .env
- Trage deinen API-Token ein:
DESTATIS_API_TOKEN=2e31b247eba14933a6a6cff5dab051c5
DESTATIS_LANGUAGE=de
🛠️ Verfügbare Skripte
# TypeScript kompilieren
npm run build
# Beispiel ausführen (Basis)
npm run example
# Beispiel ausführen (Datenabfrage)
npx ts-node examples/fetch-data.ts
# MCP-Server starten (für Claude Desktop)
npm start
# Entwicklungsmodus
npm run dev
🌐 MCP-Server Features
Der MCP-Server bietet 10 Tools für Claude Desktop:
| Tool | Beschreibung |
|---|---|
destatis_search | Suche nach Statistiken/Tabellen |
destatis_get_catalogues | Alle Kataloge abrufen |
destatis_get_tables | Tabellen eines Katalogs |
destatis_get_table_metadata | Metadaten einer Tabelle |
destatis_get_table_data | Tabellendaten abrufen |
destatis_get_timeseries | Zeitreihen-Daten |
destatis_get_statistic_metadata | Statistik-Metadaten |
destatis_get_variable_metadata | Variablen-Metadaten |
destatis_get_variable_values | Variablen-Werte |
destatis_test_connection | Verbindungstest |
📚 TypeScript-Client API
// Client initialisieren
const client = new DestatisClient({
apiToken: 'your-token',
language: 'de'
});
// Kataloge abrufen
const catalogues = await client.getCatalogues();
// Tabellen suchen
const tables = await client.searchTables('Bevölkerung');
// Metadaten abrufen
const metadata = await client.getTableMetadata('12411-0001');
// Daten abrufen
const data = await client.getTableData('12411-0001', {
startyear: 2020,
endyear: 2024
});
// Zeitreihen
const timeSeries = await client.getTimeSeries('12411-0001', {
startyear: 2010,
endyear: 2024,
timeslices: 'annual'
});
🔐 Authentifizierung
- Mit Token: Dein persönlicher Destatis-API-Token
- Ohne Token: Gast-Zugang (
GAST/GAST) - eingeschränkte Funktionen
Der Token wird über .env oder Umgebungsvariablen übergeben.
⚠️ Bekannte Einschränkungen
Die Destatis REST-API hat einige Inkonsistenzen:
- ❌ Manche Endpunkte geben HTML statt JSON zurück
- ❌ Nicht alle Tabellen über REST-API verfügbar
- ✅ Suche und Metadaten funktionieren meist
- ✅ Manche Tabellen liefern CSV-Daten
Workaround: Der MCP-Server fängt Fehler ab und gibt hilfreiche Fehlermeldungen zurück.
📖 Dokumentation
- - Claude Desktop Setup
- - Detaillierte Nutzungsanleitung
- - Technische Architektur
🌍 Externe Ressourcen
💡 Verwendungszweck
Dieses Projekt wurde erstellt, um:
- ✅ Claude Desktop Zugriff auf deutsche Statistikdaten zu geben
- ✅ Komplexe Analysen zu ermöglichen (Reallohn, BIP, Arbeitslosigkeit, etc.)
- ✅ Automatische Datensuche und -kombination zu unterstützen
- ✅ TypeScript-Bibliothek für eigene Projekte bereitzustellen
🤝 Beitragen
Dieses Projekt ist für persönliche Nutzung erstellt. Verbesserungen sind willkommen!
📄 Lizenz
MIT
Erstellt mit Claude Code 🤖
Dein API-Token: 2e31b247eba14933a6a6cff5dab051c5 (bereits konfiguriert)