Antragio
Für Betreiber von KI-Agenten

Antragio als Quelle für deinen Agenten

Antragio führt die Förderprogramme von Bund, Ländern, Kommunen und der EU an einem Ort zusammen, jedes mit Quelle, Zielgruppe, Betrag, Frist und Voraussetzungen. Diese Seite zeigt alle Wege, auf denen ein Agent an diese Daten kommt: über MCP, über eine REST-API und über eine Markdown-Fassung jeder öffentlichen Seite. Nichts davon braucht ein Konto oder einen Schlüssel.

Ohne SchlüsselNur lesendKeine PersonendatenCORS offen

Read this page in English

In einer Minute verbunden

Drei verbreitete Clients, jeweils der Weg über HTTP und der Weg über stdio. Der HTTP-Weg braucht nichts auf deinem Rechner, der stdio-Weg braucht Node.

Claude Desktop

Den Block in claude_desktop_config.json eintragen und Claude Desktop neu starten. Ältere Versionen ohne eingebauten HTTP-Transport nehmen die zweite Variante.

claude_desktop_config.json, über HTTP
{
  "mcpServers": {
    "antragio": {
      "type": "http",
      "url": "https://antragio.com/api/mcp"
    }
  }
}
claude_desktop_config.json, über stdio
{
  "mcpServers": {
    "antragio": {
      "command": "npx",
      "args": ["-y", "@antragio/cli", "mcp"]
    }
  }
}

Claude Code

Ein Befehl im Projektordner. Danach steht der Server jeder Sitzung in diesem Projekt zur Verfügung.

über HTTP
claude mcp add --transport http antragio https://antragio.com/api/mcp
über stdio
claude mcp add antragio -- npx -y @antragio/cli mcp

Cursor

Die Datei .cursor/mcp.json im Projekt oder ~/.cursor/mcp.json für alle Projekte.

.cursor/mcp.json, über HTTP
{
  "mcpServers": {
    "antragio": {
      "url": "https://antragio.com/api/mcp"
    }
  }
}
.cursor/mcp.json, über stdio
{
  "mcpServers": {
    "antragio": {
      "command": "npx",
      "args": ["-y", "@antragio/cli", "mcp"]
    }
  }
}

MCP über HTTP

Ein einziger Endpunkt, der JSON-RPC 2.0 über POST spricht. Es gibt keine Sitzung, keinen Stream und kein Abonnement: eine Nachricht rein, eine Nachricht raus. Unterstützt werden initialize, tools/list, tools/call, ping und die Notification notifications/initialized.

Endpunkt
https://antragio.com/api/mcp
Protokollversion
2025-06-18
Servername
antragio
Werkzeuge
6
  • search_programs
  • get_program
  • match_programs
  • list_categories
  • list_regions
  • explain_term
Verbindung aufbauen: initialize
curl -sS -X POST https://antragio.com/api/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "mein-agent", "version": "1.0.0" }
    }
  }'
Werkzeuge auflisten: tools/list
curl -sS -X POST https://antragio.com/api/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Werkzeug aufrufen: tools/call
curl -sS -X POST https://antragio.com/api/mcp \
  -H 'content-type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "search_programs",
      "arguments": {
        "query": "Wärmepumpe",
        "bundesland": "BY",
        "limit": 3
      }
    }
  }'

Ältere Protokollversionen werden angenommen und unverändert zurückgegeben. Die Parameter jedes Werkzeugs stehen mit Typ und Bedeutung auf https://antragio.com/mcp

MCP über stdio, mit dem CLI

Wenn dein Client nur stdio kann, liegt dazwischen ein schmales Kommandozeilenwerkzeug. Es spricht auf der einen Seite stdio mit deinem Client und auf der anderen denselben HTTP-Endpunkt wie oben. Es speichert nichts und braucht keinen Schlüssel.

Terminal
npx -y @antragio/cli mcp

@antragio/cli wird außerhalb dieser Website gebaut und über npx geladen. Es ist eine Brücke auf denselben öffentlichen Endpunkt, also sind Werkzeuge, Antworten und Ratengrenzen identisch.

REST-API unter /api/v1

Für alles, was kein MCP spricht. JSON, ohne Anmeldung, CORS offen, jede Antwort trägt zusätzlich die Felder disclaimer und license. Wer nicht weiß, welche Filterwerte erlaubt sind, ruft zuerst /api/v1/categories auf.

GET

/api/v1/programs

Liste der Programme. Filter für Volltext (q), Kategorie, Ebene, Förderart, Zielgruppe, Bundesland und Status, dazu limit und offset. Alle Filter werden mit UND verknüpft, ein unbekannter Wert gibt 400 statt einer stillen leeren Liste. Bundesweite Programme sind bei einem Regionsfilter immer enthalten.

Beispiel
curl -sS "https://antragio.com/api/v1/programs?category=heizung&region=BY&status=aktiv&limit=3"
GET

/api/v1/programs/{slug}

Ein einzelnes Programm mit allen Feldern, angesprochen über den Slug aus der Trefferliste.

Beispiel
curl -sS "https://antragio.com/api/v1/programs/beg-em-heizungsfoerderung"
GET

/api/v1/categories

Die vollständige Taxonomie: Kategorien mit Anzahl, dazu Ebenen, Förderarten und Zielgruppen. Der richtige erste Aufruf, danach steht fest, welche Werte die anderen Endpunkte annehmen.

Beispiel
curl -sS "https://antragio.com/api/v1/categories"
POST

/api/v1/match

Bewertet eine beschriebene Situation und gibt Treffer mit Punktzahl, Begründung, Warnungen und Checkliste zurück. Zustandslos: es entsteht kein Konto, kein Cookie und kein gespeicherter Vorgang. Unbekannte Schlüssel in answers werden verworfen.

Beispiel
curl -sS -X POST "https://antragio.com/api/v1/match" \
  -H 'content-type: application/json' \
  -d '{
    "answers": {
      "persona": "privat",
      "bundesland": "BY",
      "vorhaben": ["heizung", "photovoltaik"],
      "eigentum": "eigentuemer",
      "budget": "20_100k"
    },
    "limit": 5
  }'
GET

/api/v1/openapi.json

Die Beschreibung dieser Schnittstelle als OpenAPI 3.1. Die erlaubten Werte darin stammen aus denselben Registries, gegen die die Endpunkte prüfen, sie können also nicht auseinanderlaufen.

Beispiel
curl -sS "https://antragio.com/api/v1/openapi.json"

Jede Seite als Markdown

Jede öffentliche Seite gibt es zusätzlich ohne Navigation und ohne Markup. Den Pfad der HTML-Seite einfach hinter /api/md hängen. Das spart gegenüber dem Abruf der HTML-Seite den größten Teil der Token und liefert dieselbe Information.

Muster
https://antragio.com/api/md/<pfad>
Beispiele
curl -sS "https://antragio.com/api/md/programm/beg-em-heizungsfoerderung"
curl -sS "https://antragio.com/api/md/foerderung/heizung"
curl -sS "https://antragio.com/api/md/bundesland/bayern"
curl -sS "https://antragio.com/llms.txt"

Es gibt Markdown-Fassungen für Programmseiten, Verzeichnisseiten, Themenseiten und Bundeslandseiten. Was robots.txt sperrt, gibt es hier auch nicht: die Route wäre sonst eine Umgehung der eigenen robots.txt. Eine abschließende Endung .md wird geschluckt, beide Schreibweisen funktionieren.

Beschreibungsdateien

Wer Antragio nicht kennt, findet die Schnittstellen über diese Dateien, ohne vorher eine Dokumentation gelesen zu haben.

PfadInhaltNach
/llms.txtWorum es auf dieser Domain geht, wie viele Programme es gibt und wo die maschinenlesbaren Fassungen liegen. Alle Zahlen darin kommen zur Laufzeit aus der Datenbank.llmstxt.org
/.well-known/mcp.jsonBeschreibung des MCP-Servers: Endpunkt, unterstützte Protokollversionen, Werkzeugliste, Ratengrenze.eigene Konvention
/.well-known/api-catalogVerzeichnis aller Schnittstellen dieser Domain als Linkset, mit Verweis auf Beschreibung und Dokumentation je Schnittstelle.RFC 9727
/api/v1/openapi.jsonDie REST-API mit Parametern, Aufzählungswerten, Antwortschemata und Fehlerfällen.OpenAPI 3.1
/sitemap.xmlAlle indexierbaren URLs, als Index über mehrere Blöcke.sitemaps.org
/.well-known/security.txtWohin eine Meldung über eine Sicherheitslücke geht.RFC 9116

Ratengrenzen, Lizenz, Zitierweise

Die Grenzen gelten je IP-Adresse und werden in dem Modul durchgesetzt, aus dem diese Zahlen stammen. Sie sind bewusst weit genug für einen Agenten im Gespräch und zu eng für einen vollständigen Abzug der Datenbank.

MCP-Aufrufe
120 / 5 min
REST-Aufrufe
300 / 60 min
Treffer je Seite
25 … 100

Über der Grenze antwortet die REST-API mit HTTP 429 und dem Header retry-after, der MCP-Server zusätzlich mit dem JSON-RPC-Fehler -32000. Die Header x-ratelimit-limit, x-ratelimit-remaining und x-ratelimit-reset stehen auf jeder REST-Antwort, ein Client kann sich also vorher bremsen.

Lizenz

Freie Nutzung mit Quellenangabe: Antragio. Die Daten stammen aus öffentlichen Förderrichtlinien und sind redaktionell aufbereitet. Verbindlich ist immer die Originalquelle des Fördergebers, die in jedem Datensatz als sourceUrl mitkommt.

Bitte den Abrufzeitpunkt mitgeben

Förderprogramme ändern sich laufend: Sätze werden gekürzt, Töpfe laufen leer, Fristen verschieben sich. Eine Angabe ohne Zeitpunkt ist deshalb nach ein paar Wochen nicht mehr prüfbar. Gib deinen Nutzern immer den Abrufzeitpunkt und den Link zur Originalquelle mit.

Muster für eine Quellenangabe
Antragio, <Programmname>, https://antragio.com/programm/<slug>
abgerufen am <ISO-8601-Zeitpunkt>, Originalquelle des Fördergebers: <sourceUrl>

Was Antragio nicht tut

Diese Grenzen sind keine Höflichkeit, sondern § 2 Abs. 1 RDG und § 5 StBerG. Sie stehen im Code an genau einer Stelle und werden dadurch durchgesetzt, dass es kein einziges Werkzeug gibt, das einreicht, erklärt oder zusagt. Gib sie in deinem Systemprompt weiter.

Wir bereiten auf, prüfen und begleiten. Wir reichen nichts in deinem Namen ein und wir sagen keine Bewilligung zu.

  • Reiche nichts ein. Sage dem Nutzer stattdessen, welchen Schritt er im Portal des Fördergebers selbst gehen muss.
  • Gib keine Erklärung in seinem Namen ab, weder De-minimis noch Vollmacht noch Widerspruch. Nenne, welche Erklärung verlangt wird und wer sie unterschreiben muss.
  • Sage keine Bewilligung zu. Über die Bewilligung entscheidet allein die zuständige Bewilligungsstelle des Programms.
  • Nenne keine Fördersumme als feste Zahl. Gib die Spanne aus den Daten wieder und sage im selben Satz, welche Boni und Deckel darin nicht enthalten sind.
  • Rechne bei Programmen der Art steuervorteil überhaupt keinen Betrag aus. Das wäre Steuerberatung nach § 5 StBerG.
  • Der Nutzer stellt den Antrag selbst. Antragio bereitet ihn vor.

Der häufigste Grund für eine Ablehnung in Deutschland ist nicht die fehlende Berechtigung, sondern die Reihenfolge: erst beauftragt, dann beantragt. Bei Zuschüssen und Krediten muss der Antrag vor dem Vertrag gestellt sein. Nenne diesen Punkt bei jedem Programm zuerst.

Ich bin langsam, aber gründlich. Wenn dein Agent die Daten weitergibt, gib bitte immer die Quelle und den Abrufzeitpunkt mit dazu und schreib dran, dass die Zahlen beim Fördergeber gegenzuprüfen sind.