Die c:node Contract-API liefert Antworten, Rechtsnormen und Verwaltungsleistungen mit Quelle, Lizenz und Prüfstatus. Ihr ruft sie per REST auf oder bindet sie per MCP direkt in Claude, Copilot und eure eigenen Agenten ein.
Die Contract-API ist die öffentliche Schnittstelle zum c:node Graph. Jede Antwort ist so gebaut, dass ihr sie nachprüfen könnt: Sie nennt die Quelle (ref), den Prüfstatus (grounding), die Lizenz und, wo nötig, die Namensnennung der Datenquelle.
| Feld | Bedeutung |
|---|---|
ref | Standard-Referenz der Quelle, z. B. ELI:BSIGesetz§10, CELEX:32024R1689 oder XZUFI:S1000030000000045. |
grounding | Prüfstatus gegen die zitierte Stelle, z. B. verified. |
license | Lizenzklasse der Quelle: open, attribution oder internal. |
attributions | Pflicht-Namensnennungen (Quelle, Lizenz, URL) für die gelieferten Daten. |
citations · factscore | Bei /v1/ask: nur geprüfte Quellen, dazu je Aussage ein Urteil (belegt oder offen) und der Anteil belegter Aussagen. |
content_hash | Bei Nachweis-Datensätzen: SHA-256 über den Inhalt, für Protokollierung nach EU AI Act Art. 12. |
Die vollständige maschinenlesbare Spezifikation liegt unter /openapi.json.
Die ersten beiden Aufrufe funktionieren ohne Key gegen die Sandbox. Für Wissens-Endpunkte braucht ihr einen Contract-Key.
Schickt euren Contract-Key im Header X-API-Key. Der Query-Parameter ?key= wird ebenfalls akzeptiert, landet aber leichter in Logs und Browser-Verläufen – nutzt ihn nur, wo kein Header möglich ist.
public-observatory): Graph-Übersicht, Nachweise, Audit und Namensnennungen./v1/ask, /v1/legal, /v1/leistung und /v1/betroffenheit frei.Jeder Key ist an ein Profil gebunden. Das Profil legt fest, welche Lizenzklassen und Wissensdomänen eine Antwort nutzen darf – die Modelle sehen nur, was euer Profil zulässt. GET /v1/profiles listet sie live.
| Profil | Zweck | Key |
|---|---|---|
public-observatory | Öffentliche Sandbox: Graph-Übersicht und Nachweise. | nein |
trial | Testzugang für die Evaluierung. | ja |
free-market | Markt-Wissen (Markt, Handel, Investitionen, öffentliche Finanzen). | ja |
research-open | Forschungspartner: Forschung und Innovation. | ja |
de-federal | Föderaler Datenraum Deutschland, Vollzugriff. | ja |
commercial-full | Kommerzieller Vollzugriff (ohne nicht-kommerzielle Quellen). | ja |
Der c:node MCP-Server stellt die Contract-API als Werkzeuge bereit. Das Modell formuliert, c:node liefert die belegte Grundlage: Fragt ihr Claude nach einer Rechtsgrundlage, ruft es cnode_ask auf und antwortet mit Quelle.
In .vscode/mcp.json eintragen. Copilot fragt den Key beim ersten Start ab und speichert ihn nicht im Projekt:
Jeder MCP-Client mit Streamable HTTP funktioniert: URL https://mcp.c-node.ai/mcp, Key im Header X-API-Key oder als Authorization: Bearer <key>. Verbrauch und Profil laufen dann über euren eigenen Key. Im On-Prem-Betrieb läuft der MCP-Server in eurer Umgebung und spricht eure eigene Contract-API an.
| Werkzeug | Was es tut | Endpunkt |
|---|---|---|
cnode_ask | Belegte Antwort auf eine Frage, jede Aussage mit Quelle. | GET /v1/ask |
cnode_legal | Paragraf per Referenz, alle Paragrafen eines Gesetzes oder Volltextsuche. | GET /v1/legal |
cnode_leistung | Verwaltungsleistung mit ihrer Rechtsgrundlage. | GET /v1/leistung |
cnode_dossier | Hash-verkettetes Antrags-Dossier. Bereitet vor, löst nichts aus. | POST /v1/dossier |
cnode_brain_preview | Company Brain aus einer Domain, ohne zu speichern. | GET /v1/demo/brain/stream |
cnode_brain_bootstrap | Company Brain für euren Mandanten aufbauen und speichern. | POST /v1/brain/bootstrap |
cnode_findings | Aktuelle Befunde eures Mandanten, je mit Belegen. | GET /v1/findings |
cnode_health · cnode_profiles | Verbindungs-Check und die Profile eures Keys. | GET /v1/health · /v1/profiles |
Die c:node-Shell ist Open Core: Oberfläche, Chat und Graph-Runtime laufen per Docker auf eurem Rechner oder Server. Für lokale Antworten reicht ein offenes Modell über Ollama – oder ihr bringt euren eigenen API-Key mit.
Danach läuft die Shell unter http://localhost:3010 und die API unter http://localhost:8080. Umfang des Open Core, Mandanten-Konfiguration und die kommerzielle Lizenz beschreibt das README auf GitHub.
Belegte Antworten und Rechtsquellen. Alle Endpunkte hier brauchen einen Contract-Key.
Beantwortet eine Frage ausschließlich aus den Konzepten, die euer Profil zulässt. Zitate stammen nur aus geprüften Referenzen. Findet c:node keinen Beleg, sagt die Antwort das, statt zu raten.
| Parameter | Beschreibung |
|---|---|
q | Die Frage in natürlicher Sprache (mind. 3 Zeichen). Pflicht. |
k | Anzahl der Konzepte, auf die sich die Antwort stützt (1–20, Standard 6). |
Ohne Beleg: "grounded": false und die Antwort „Das steht (noch) nicht im Wissensgraph.“ Aussagen ohne Stütze erhalten das Urteil offen.
Gleiche Parameter und Prüfung wie /v1/ask. Die Antwort kommt als Server-Sent Events: token-Events mit Textstücken, danach ein done-Event mit Zitaten, Urteil und Factscore, zum Schluss [DONE].
Ein Paragraf per Referenz, alle Paragrafen eines Gesetzes oder eine Volltextsuche. Einer der drei Parameter ist Pflicht.
| Parameter | Beschreibung |
|---|---|
ref | Exakte Referenz, z. B. ELI:BSIGesetz§1. |
law | Gesetzesname, z. B. BSIGesetz – liefert dessen Paragrafen. |
q | Volltextsuche (alle Begriffe müssen vorkommen). |
limit · offset | Paginierung (1–500, Standard 50). Gibt es weitere Treffer, steht next_offset in der Antwort. |
Verwaltungsleistungen aus XZuFi/LeiKa. rechtsgrundlagen enthält nur Verknüpfungen zu Gesetzen, die im c:node Graph liegen – nichts wird geraten. Parameter: ref oder q, dazu limit/offset.
Datensätze zur Nachvollziehbarkeit: woher eine Aussage stammt, wen ein Rechtsakt betrifft, und welche Quellen genannt werden müssen. Mit Ausprobieren ruft ihr die Sandbox live auf.
Liefert für eine Referenz den Prüfstatus, die Lizenz, eine Aussage zur Unsicherheit und einen Inhalts-Hash – gebaut für Protokollierung nach EU AI Act Art. 12. Parameter: ref.
Verbindet einen EU-Rechtsakt mit den betroffenen Branchen und Firmen aus dem Handelsregister. Parameter: act, z. B. ArtificialIntelligenceAct.
Erweitert /v1/audit um die Region: Gesetz → Branche → betroffene Firmen → Bundesland → regionale Kennzahlen (BIP, Arbeitslosenquote, Einkommen). Jede abgeleitete Zahl trägt ihre Beleg-Kette. Parameter: act (optional), limit (1–100).
Stellt aus Antragsfeldern ein prüfbares Dossier zusammen: jedes Feld mit Quelle, das eIDAS-Vertrauensurteil zum Siegel und eine manipulationssichere Hash-Kette. Nennt der Antrag eine Leistung ohne Rechtsgrundlagen, ergänzt c:node sie aus dem Graph. Antworten enthalten personenbezogene Daten und werden nicht zwischengespeichert.
Alle Datenquellen eures Profils mit Lizenz und URL – für Impressum, Quellenverzeichnis oder Export.
Aus einer Domain wird ein belegtes Firmenprofil: c:node liest die öffentlichen Seiten, prüft Impressum und Handelsregister, verankert die Firma in ihrer Branche und liefert Befunde zu Regulierung und offenen Ausschreibungen – je mit Quelle.
Die öffentliche Vorschau: streamt den Lauf für eine Domain, speichert nichts. Pro IP und Tag begrenzt; das Ergebnis einer Domain wird 24 Stunden zwischengespeichert und erneut abgespielt. Parameter: domain, z. B. firma.de.
Event-Typen in dieser Reihenfolge: step, page, feed, impressum, register, profile, anchor, finding, done (bei Fehlern error), abgeschlossen mit [DONE].
Führt den Lauf komplett aus und speichert Profil, Seiten und Befunde in eurem Mandanten-Graph. Danach kennen /v1/ask und /v1/findings eure Firma. Body: {"domain": "firma.de"}. Zeitlimit 90 Sekunden (504 bei Überschreitung).
Als Stream: GET /v1/brain/stream?domain=… liefert dieselben Events wie die Vorschau und speichert am Ende.
Die proaktiven Befunde aus dem letzten Lauf: Regulierung, Ausschreibungen, Register und Branchenkontext, je mit Belegen. Gab es noch keinen Lauf, ist findings leer und hint nennt den nächsten Schritt.
Schreibt ein Dokument oder eine Notiz in euren privaten Mandanten-Graph. Der Eintrag ist sofort über /v1/ask beantwortbar. Der c:node Graph selbst bleibt unverändert.
Felder: title oder label, text oder content, optional source und ref.
Zeigt euer aktuelles Minutenkontingent und den Verbrauch: gelieferte Antworten, davon abrechenbar, Ingests und den durchschnittlichen Factscore.
Begriffe, Relationen, Domänen und Prüfquote des Graphen, den euer Profil sieht.
Fehler kommen als JSON mit einem Feld detail.
| Status | Bedeutung |
|---|---|
400 | Parameter fehlt, z. B. /v1/legal ohne ref, law oder q. |
401 | Kein oder ungültiger Key für einen Endpunkt, der einen Contract-Key braucht. |
403 | Key gültig, aber ohne Mandant (Company Brain, Befunde, Ingest). |
404 | Referenz oder Rechtsakt nicht im Graph. |
429 | Rate-Limit erreicht. Wartet die Sekunden aus dem Header Retry-After. |
503 | Antwort-Generierung gerade ausgelastet. Nach Retry-After erneut versuchen. |
504 | Brain-Lauf hat das Zeitlimit überschritten. |
Jeder /v1-Aufruf außer /v1/health ist pro Client begrenzt; euer aktuelles Kontingent zeigt /v1/usage. Protokolliert werden nur eine pseudonyme Client-ID, der Pfad und der Status – keine Inhalte.