Dokumentation der API

MCP

Stonewake betreibt einen Endpunkt für das Model Context Protocol (MCP), damit Assistenten mit KI und Agenten Ihren Arbeitsbereich direkt lesen können. Fragen Sie nach dem Portfolio, nach dem Risiko einer Gegenpartei oder danach, wie ein Score zustande kommt, und der Assistent ruft die unten genannten Werkzeuge selbst auf.

text
Endpoint: https://mcp.stonewake.ai/

Der Endpunkt spricht MCP über streamable HTTP. Jede Anfrage steht für sich. Es gibt keine Sitzung zu eröffnen und nichts aufrechtzuerhalten, also verbinden sich gehostete Assistenten und lokale Clients auf dieselbe Weise. Er bedient die Revision 2026-07-28 von MCP, die keinen Handshake braucht, und die früheren Revisionen, die mit initialize eröffnen.

Authentifizierung

Dieselben Schlüssel für die API authentifizieren MCP und die API über REST. Senden Sie Ihren Schlüssel swk_live_ bei jeder Anfrage über MCP als Token vom Typ Bearer (siehe Authentifizierung). MCP liest den Header Authorization genau wie die API über REST. Ohne Schlüssel funktionieren zwei Dinge, das Auflisten der Werkzeuge und das Werkzeug zur Dokumentationssuche. Jedes Werkzeug, das Daten des Arbeitsbereichs liest, verlangt einen Schlüssel.

Aufrufe über MCP werden auf dieselbe Anfragebegrenzung je Schlüssel und dasselbe Tageskontingent je Arbeitsbereich angerechnet wie direkte Aufrufe der API; siehe Fehler und Anfragebegrenzungen.

Die Werkzeuge

Sechsunddreißig lesende Werkzeuge. Alle außer search_stonewake_docs lesen Daten des Arbeitsbereichs und verlangen einen Schlüssel.

Portfolio und Bewertung

  • portfolio_overview, Statuszählungen für den überwachten Bestand, die Zahl aktiver Engagements, die jüngsten Statusänderungen und die Zahl überfälliger Kreditüberprüfungen; mit transitions_since werden zusätzlich die einzelnen Übergänge seit einem Zeitpunkt aufgelistet, jeweils mit den Signalen, die ihn bewegt haben, und dem Registereintrag hinter dem führenden, seitenweise über limit und offset, und jedes der beiden allein listet die jüngsten Übergänge jeden Datums.
  • portfolio_book, der überwachte Bestand selbst, eine Zeile je Engagement mit Status, Score, wichtigsten Signalen samt Quellenangaben und geltender Kreditüberprüfung, die schwerwiegendsten zuerst; paginiert, und include_inactive nimmt Engagements auf, die nicht mehr aktiv überwacht werden.
  • portfolio_import_preview, Vorschau auf das Hinzufügen eines Bestands von Unternehmen aus Text als CSV; jede Zeile wird allein über ihre Registerkennung zugeordnet und nennt Ergebnis und Grund, seitenweise über limit und offset. Es wird nichts geschrieben; siehe Bestandsimport.
  • portfolio_reviews_due listet die Kreditüberprüfungen, die heute Aufmerksamkeit verlangen, die überfälligen und jene, die in den nächsten zwei Wochen fällig werden, die frühesten zuerst, mit der Zahl der Engagements, die nie überprüft wurden. Siehe Kreditüberprüfungen.
  • exposure_review_history liest die Historie der Kreditüberprüfungen eines Engagements anhand seiner exposure_id, neueste zuerst, der erste Eintrag ist also die geltende Überprüfung. Seitenweise über limit und offset. Verantwortliche und Prüfende werden nicht ausgeliefert.
  • entity_risk_profile, die aktuelle Risikosicht Ihres Teams auf ein Unternehmen anhand seiner node_id, mit jedem bewerteten oder ausgesetzten Signal und dessen Quellenangaben, dazu die Klasse, nach der seine Prüfungen ausgewählt werden, und ob Ihr Team sie gesetzt oder eine Registerregel sie abgeleitet hat.
  • scoring_rubric, die Bewertungskonfiguration hinter den Statusbändern und Scores Ihres Teams sowie die gespeicherten Fassungen des Bewertungsschemas des Teams.
  • sanctions_person_candidates liest die Prüfkandidaten für die natürlichen Personen, die öffentliche Register mit den Unternehmen im Bestand Ihres Teams verbinden, dem Namen nach und über die Aliasnamen der Liste selbst abgeglichen mit den natürlichen Personen auf den sechs amtlichen Sanktionslisten. Ein Kandidat ist Prüfmaterial und nie ein Treffer. Jeder nennt die Liste, die Listungsnummer, die gelisteten Namen, was übereinstimmt und was eingegrenzt hat, und die amtliche Datei, und sein Status ist open oder confirmed (eine Analystin oder ein Analyst hat ihn im Dashboard bestätigt, wo die Entscheidungen fallen). Das Ergebnis nennt außerdem in lists jede Liste mit ihrer Lesart, Checked oder Not checked, und zählt in lists_not_checked die nicht geprüften und in persons_compared die abgeglichenen Registerpersonen, daher sagt eine leere Seite nur, dass es unter den abgeglichenen Registerpersonen keinen offenen oder bestätigten Kandidaten gibt, und sie sagt nichts, solange lists_not_checked größer als 0 ist. Verworfene Kandidaten werden nicht ausgeliefert, und eine Person, die kein angebundenes Register mit Ihrem Bestand verbindet, wird nicht abgeglichen. Seitenweise über limit und offset. Es antwortet nur in Arbeitsbereichen, in denen Personendaten eingeschaltet sind, und gilt anderswo als nicht gefunden.

Unternehmen

  • search_companies findet ein Unternehmen über Namen oder Kennung (einen LEI, eine Registernummer oder scheme:value); Treffer tragen die node_id, die die übrigen Unternehmenswerkzeuge entgegennehmen. In Arbeitsbereichen, in denen Personendaten eingeschaltet sind, werden auch die natürlichen Personen gefunden, die die Register nennen, nach allen Unternehmen und nie bewertet.
  • company_profile, der Stammdatensatz eines Verzeichniseintrags aus dem Verzeichnis von Stonewake benannter Marktteilnehmer (Exportkreditagenturen, multilaterale Institutionen, Entwicklungsfinanzierer, Entwicklungsbanken, staatliche Agenturen und Banken, dazu die Fachpublikationen, die Transaktionen zitieren), anhand der entity_id.
  • company_overview liest ein Unternehmen so, wie es die Netzwerkansicht des Dashboards zeigt, anhand seiner node_id. identity nennt, was die vorliegenden Registereinträge zur Identität des Unternehmens angeben (GLEIF, Companies House, ein Handelsregisterauszug, wo einer abgerufen wurde, SEC EDGAR, das Schweizerische Handelsamtsblatt und der Betreibereintrag im Marktstammdatenregister), in Klartext, jede Angabe mit dem Eintrag, auf den sie sich stützt, und dessen verified_at, wann sein Register ihn zuletzt bestätigt hat, und risk liefert seinen Risikostatus. risk_state ist portfolio, wenn Ihr Team das Unternehmen im Bestand hält, assessed, wenn für Ihr Team eine Einschätzung bei Aufruf erstellt wurde, in_progress, solange eine erstellt wird, not_assessed mit einem risk_reason oder sole_trader, wenn das Register das Geschäft einer natürlichen Person nennt, das nie bewertet wird. Ein Werkzeugaufruf stößt nie eine Einschätzung an. Mit locale gleich de kommen die Feldbezeichnungen auf Deutsch.
  • company_financials, jede Finanzkennzahl eines Unternehmens, neueste Berichtsperiode zuerst, jede Zahl mit Angabe ihres Quelleintrags (ein öffentliches Register, ein öffentliches Archiv eingereichter Abschlüsse oder der Jahresfinanzbericht, den der Emittent auf seiner eigenen Website veröffentlicht hat). Eine Zahl mit derived gleich true steht so nicht im Abschluss. Sie wurde aus zwei Zahlen desselben Abschlusses berechnet, und ihr Feld derivation sagt in einfachen Worten, wie. Eine fehlende Periode bedeutet, dass nichts eingereicht wurde, nicht null.
  • company_events, der Feed der Registerereignisse eines Unternehmens, nach Bedeutung zu Anzeigezeilen gruppiert; zusammenhängende Ereignisse klappen zu einer Sammelzeile zusammen, deren group_key sie wieder aufklappt.
  • company_financing, die Verschuldungsseite eines Unternehmens, also eingetragene Sicherheiten mit zugeordneten Kreditgebern, notierte Schuldtitel, eingereichte Schuldpositionen, abgeleitete Summen und ein Fälligkeitsprofil, deren Abschnitte sich über bucket aufklappen lassen.
  • ownership_chain, die Eigentümerketten eines Unternehmens nach oben, über Register hinweg zusammengesetzt und Schritt für Schritt belegt; threshold (Vorgabe 25 Prozent) und max_depth (höchstens 8) begrenzen den Lauf. Natürliche Personen als Eigentümer werden in Arbeitsbereichen genannt, in denen Personendaten eingeschaltet sind.
  • company_network liefert das Registerumfeld eines Knotens, seine Organe, Gesellschafter und wirtschaftlich Berechtigten, Beteiligungen, Zweigniederlassungen und anderen Registerbeziehungen, jede Kante mit dem Registereintrag, der sie belegt. Die node_id eines Nachbarn lässt sich genauso aufklappen. Natürliche Personen werden in Arbeitsbereichen ausgeliefert, in denen Personendaten eingeschaltet sind, und anderswo weggelassen. edge_types behält die genannten Arten, und limit begrenzt die Nachbarn auf 200.
  • company_public_funding, öffentliche Zuschüsse und staatliche Beihilfen, die ein Unternehmen erhalten hat (das EU State aid Transparency Award Module, Kohesio und das Financial Transparency System), jede Zuwendung mit Quellenangabe und über eine Kennung zugeordnet, nie über einen Namen allein, mit Summen je Jahr und je Programm, die nie Beträge unterschiedlicher Grundlage oder Währung addieren. Das Werkzeug liest nur Zuwendungen an Organisationen.
  • company_sector_context, amtliche deutsche Statistik neben einem deutschen Unternehmen, die Zahlen zu Unternehmensinsolvenzen und Unternehmen, die Destatis für seinen WZ 2008 Abschnitt und sein Bundesland veröffentlicht, jede mit Tabellencode, Zeitraum, Abrufzeit, Quelllink und dem Quellenvermerk der Lizenz, der mit ihr zu zeigen ist. Übergeben Sie nace, um den Wirtschaftszweig zu nennen, denn kein deutsches Register nennt ihn; missing sagt in einfachen Sätzen, was nicht vorliegt. Nur Kontext, nie Teil einer Bewertung oder eines Status.
  • company_records blättert die Registereinträge hinter einem Unternehmen als Belege, neueste zuerst, mit höchstens 25 je Seite. Jede Seite nennt die Zahl der Einträge des Unternehmens und die Anzahl je Register, und connector_id blättert ein einzelnes Register. Ein Unternehmen, das in einem Wertpapierregister geführt wird, kann über 100.000 Einträge halten, und das Werkzeug gibt nie mehr als eine Seite zurück.
  • company_regional_context liefert amtliche Regionalstatistik neben einem deutschen Unternehmen, die Tabellen der VGR der Länder für den Kreis (Bruttoinlandsprodukt, Bruttowertschöpfung nach Wirtschaftsbereichen, Erwerbstätige, Einwohner) und die Wohnungszahlen des Zensus 2022 für die Gemeinde und den Kreis (Mieten, Leerstand, Baualter), in denen sein Sitz liegt, sowie die Indikatoren des Regionalatlas für den Kreis (Bevölkerungsbewegung, Gewerbeanmeldungen und Unternehmensinsolvenzen, Arbeitslosigkeit, verfügbares Einkommen), die monatlichen Arbeitsmarktzahlen der Bundesagentur für Arbeit für den Kreis (Arbeitslose und Unterbeschäftigung, die neuesten 13 Monate) und die Tabellen der Regionaldatenbank Deutschland für die Gemeinde und den Kreis (Unternehmensinsolvenzen nach Abschnitten der WZ 2008, die Hebesätze der Grundsteuer und der Gewerbesteuer). Der Sitz ist der Registersitz; nur wenn kein Registerauszug einen nennt, ist es der Sitz aus einer deutschen Insolvenzbekanntmachung, und region.seat_label sagt das dann mit dem Datum der Bekanntmachung. Jede Zahl trägt ihre Tabelle, ihren Zeitraum, ihre Abrufzeit, ihren Quelllink und den Quellenvermerk, der mit ihr zu zeigen ist. region sagt, wie der Sitz seinem amtlichen Schlüssel zugeordnet wurde, nur über einen exakt gleichen Namen, oder warum keine Region bestimmt ist. Nur Kontext, nie Teil einer Bewertung oder eines Status.

Erkenntnisse

  • screening_lookup liest die Screenings Ihres Teams über Organisationen und Länder, als filterbare Liste oder als vollständigen Lauf anhand der screening_id mit dem Abgleich gegen die offiziellen Listen, Einstufungen, Feststellungen und Quellen. In Arbeitsbereichen, in denen Personendaten eingeschaltet sind, liest es auch die Screenings natürlicher Personen, nur mit dem Abgleich gegen die offiziellen Listen und ihren belegten Feststellungen samt deren Quellen, nie mit einer Einstufung, einer Bewertung, einer entworfenen Zusammenfassung oder einem Score.
  • deal_book liest das Deal Book Ihres Teams, jede Zeile mit ihrem Team, als eine zuerst nach dem Fenster geordnete oder, wenn sort und direction es verlangen, nach einer Spalte in einer der beiden Richtungen geordnete, nach den Facetten von GET /v1/deals filterbare Liste, region eingeschlossen (die Zeilen, die ein Desk standardmäßig zurückhält, Finanzierung steht, abgebrochen, älter als das Veraltungsfenster von standardmäßig 12 Monaten, ohne Bewegung seit 12 Monaten, in einem Markt außerhalb eines Immobilienmandats, eine Immobilienzeile ohne privaten Kreditnehmer für den Desk (ein eigenes Vorhaben einer öffentlichen Stelle, ein Vorhaben einer Wohnungsgesellschaft oder des sozialen Wohnungsbaus, nur ein Bauunternehmen, ein Eigennutzer), eigene Bank, inländisch oder unter der Wertuntergrenze des Teams, erscheinen nur mit include_hidden gleich true, wobei die Seite die beiden Altersregeln in Monaten in stale_months und movement_months nennt), jede Zeile mit Fenster, Bandwort, bestätigtem Stand, genanntem Ereignisdatum, ob die eigene Bank beteiligt ist, Angle und Ask sowie ihrer letzten Aktualisierung, wobei das Feld has_unseen_update für einen Schlüssel null ist, weil ein Schlüssel kein Öffnen aufzeichnet (die Sortierung latest_update ordnet allein nach dieser Aktualisierung); oder eine vollständige Transaktion anhand der deal_id mit Beteiligten, belegter Zeitleiste (timeline_limit Einträge, standardmäßig 50, höchstens 200), der Zusammenfassung (drei Zeilen, nach festen Regeln aus den belegten Feststellungen erzeugt, nicht von einem Modell, jede mit ihren Belegen), dem Briefing, einem Objekt mit text, drafted_at, drafted_by und sources, das ein Sprachmodell als kurze Zusammenfassung der belegten Quellen der Transaktion verfasst, wobei allein seine in Ziffern geschriebenen Zahlen gegen deren Text geprüft werden, oder null (null, bevor ein Briefing entworfen wurde, solange Briefings ausgeschaltet sind, nachdem sich die Quellen der Transaktion geändert haben, wenn kein Satz die Prüfung bestanden hat und wenn nichts übrig blieb, nachdem ein Satzteil entfernt wurde, der den Leser auffordert, etwas zu bestätigen, zu verifizieren, zu prüfen oder durchzusehen), und den wirtschaftlichen Eckdaten.
  • deal_binding_queue liest die Beteiligten an den laufenden Transaktionen Ihres Teams, die noch keinem Unternehmen in einem Register zugeordnet sind, gemerkte Transaktionen zuerst, jede mit ihrer Transaktion, ihrem Team und den Kandidaten mit ihrem LEI und ihren Registernummern. deal_id beschränkt sie auf eine Transaktion. Seitenweise über limit und offset. Die Zuordnung selbst erfolgt im Dashboard.
  • Das Werkzeug für doppelte Transaktionen wurde am 17. Oktober 2026 eingestellt. Stonewake findet und bereinigt doppelte Transaktionen selbst, es gibt also keine Dublettenfrage, die ein Assistent lesen müsste, und ein Aufruf unter dem alten Namen antwortet mit dem Fehler für ein unbekanntes Werkzeug.
  • country_profile, Länderinformationen, also der Index der abgedeckten Länder oder ein Land im Detail anhand der iso3 mit belegter Risikoaufschlüsselung, Mitgliedschaften und den dortigen Transaktionen Ihres Teams.
  • developments, datierte, belegte Entwicklungen aus den Rechercheläufen Ihres Teams, jede Zeile mit ihrem Team, als paginierter Feed oder als vollständiger Lauf anhand der run_id mit seinen belegten Feststellungen, Zitaten und Quellen. Die run_id eines anderen Teams gilt wie eine unbekannte als nicht gefunden. Ein Lauf zu einer natürlichen Person wird nur in Arbeitsbereichen ausgeliefert, in denen Personendaten eingeschaltet sind, und seine Zeilen tragen keinen Relevanzwert.

Ausschreibungen

  • tender_matches listet die öffentlichen Bekanntmachungen, die die Suchprofile Ihres Teams getroffen haben, neueste zuerst, eine je Vergabeverfahren, jede mit einer Erklärung zu jedem Kriterium ihres Profils und mit der zitierten Bekanntmachung samt ihrer Seite bei TED. Eingrenzen lässt sich über status oder profile_id, seitenweise über limit und offset, match_id allein liest einen Treffer und deal_id allein die Treffer, die in diesen Deal des Deal Book übernommen wurden. Kein Treffer liefert die Zuschlagsempfänger aus, und ein Auftraggeber, dessen Rechtsform eine natürliche Person bezeichnen kann, wird zurückgehalten. Ein Treffer kann auch eine Bekanntmachung aus dem eigenen Portalbereich Ihres Teams in portal_notice zitieren, einen Export, den Ihre Bank hochgeladen hat, oder eine Benachrichtigung eines ihrer Portalzugänge, ausgewählt von einem Suchprofil oder vom Suchagenten des Portals selbst (decided_by). Siehe Suchprofile und Treffer für Ausschreibungen.
  • tender_profiles listet die aktiven Suchprofile Ihres Teams mit den CPV Codes, NUTS Regionen, der Wertspanne, den Suchbegriffen und den übrigen Kriterien, die jedes verlangt. Das Werkzeug legt kein Profil an und startet keinen Durchlauf.
  • tender_export_preview zeigt die Vorschau eines Exports aus einem Vergabeportal für den eigenen Ausschreibungsbereich Ihres Teams, eine CSV oder XLSX Datei oder das XML einer eForms Bekanntmachung, base64 kodiert, mit dem Portal, aus dem sie exportiert wurde, in source_portal. Jede Zeile nennt Ergebnis und Grund, seitenweise über limit und offset, und eine Datei, die kein Portalprofil erkennt, fragt nach einer Spaltenzuordnung. Es wird nichts geschrieben; siehe Exporte aus Vergabeportalen.

Lizenzierte Daten

  • licensed_facts listet die Werte zu Unternehmen, die ein von Ihrer Bank lizenzierter Datenanbieter genannt hat, abgerufen mit dem eigenen Schlüssel Ihrer Bank in Ihren eigenen Arbeitsbereich, jeder mit seinem Anbieter, seiner Quellenseite und dem Zeitpunkt des Abrufs. Ausgeliefert werden nur Werte, die unter einem Lizenzumfang abgerufen wurden, der die eigenen Systeme Ihrer Bank abdeckt. Eingrenzen lässt sich über node_id oder eine deutsche Registernummer mit Gericht, seitenweise über limit und offset. Abgerufen wird im Dashboard; siehe Eigene Quellen.

Benachrichtigungen

  • alert_events listet die Meldungen Ihres Arbeitsbereichs, neueste zuerst, jede mit Klasse, Schweregrad, node_id und exposure_id ihres Gegenstands, der Quelle, auf der sie beruht, und ihren Daten, nie mit einem Namen, filterbar nach event_class und severity. Ein Schlüssel liest die Meldungen seines eigenen Teams und jene für den ganzen Arbeitsbereich.
  • alert_deliveries liest das Zustellprotokoll Ihrer Meldungen auf jedem Kanal, neueste zuerst, mit jedem Versuch mit seinem Ergebnis und seiner Fehlerklasse sowie die Bestätigung (die eines signierten Webhooks oder der abschließende Bericht des SMS Anbieters, ob eine Nachricht zugestellt wurde) oder den Punkt, an dem eine Zustellung aufgegeben wurde, filterbar nach event_id, status und channel. Ein Schlüssel liest die Zustellungen der Meldungen seines eigenen Teams und jene für den ganzen Arbeitsbereich. Siehe Benachrichtigungen über Teams und Webhook und Benachrichtigungen per SMS.

Nachrichten

  • company_news listet die Unternehmen aus Bestand und Beobachtungsliste Ihres Arbeitsbereichs mit der neuesten täglichen Tonlage eines vollständig gelesenen Tages für jedes Unternehmen oder, mit node_id, die täglichen Tonlagen eines Unternehmens und die neuesten 100 Artikel hinter der neuesten samt jedem Artikel, den seine Ereignisse nennen, jeder Artikel belegt durch seinen article_key, mit Adresse, Herausgeber, Datum, Sprache und GDELT Tonlage. Eine Tonlage ist reading, too_little_coverage oder feed_gap, und nur reading trägt eine Tonlage. Mit node_id liefert es außerdem die ernsten Nachrichtenereignisse des Unternehmens aus denselben Tagen, jedes mit Art, Schweregrad, der Zahl der Artikel, Quellen und Sprachen, den Schlüsseln seiner neuesten Artikel und seiner Nachrichtenprüfung, deren status confirmed die einzigen Ereignisse kennzeichnet, die sich melden. Jedes andere Unternehmen antwortet mit 404. Siehe Nachrichtenbeobachtung.

Soziale Medien

  • company_social listet die Unternehmen aus Bestand und Beobachtungsliste Ihres Arbeitsbereichs mit der neuesten täglichen Lesung sozialer Medien eines vollständig gelesenen Tages für jedes Unternehmen oder, mit node_id, die täglichen Lesungen eines Unternehmens und seine neuesten 100 Beiträge der letzten 30 Tage, jeder Beitrag belegt durch seinen item_key, mit Plattform, Link, Datum, Sprache und der Einstufung der Quelle. Jede Antwort sagt in source.enabled, ob eine lizenzierte Quelle eingeschaltet ist; bis dahin ist sie ausgeschaltet. Jedes andere Unternehmen antwortet mit 404. Siehe Beobachtung sozialer Medien.

Dokumente

  • report_downloads nennt, wo die Dokumente als PDF eines Gegenstands zum Ablegen in einer Dokumentbibliothek wie SharePoint heruntergeladen werden. subject ist deal (Dealbericht und Ausschusspaket), counterparty (Gegenparteibericht und Gegenparteipaket, über die ID im Register) oder company (Unternehmensprofil, über die ID des Knotens des Graphen), und id die ID des Gegenstands. Das Werkzeug liest zuerst den Gegenstand, eine ID, die Ihr Schlüssel nicht lesen kann, antwortet also mit not_found, und gibt dann den Pfad unter /v1 jedes Dokuments zurück. Es erzeugt kein Dokument. Die Dokumente werden mit demselben Schlüssel abgerufen, der dafür den Berichtsumfang braucht. Siehe SharePoint.

Prüfprotokoll

  • audit_log_export liest das Prüfprotokoll Ihres eigenen Arbeitsbereichs für einen Zeitraum von Tagen, from und to im Format JJJJ-MM-TT, beide eingeschlossen, höchstens 366 Tage, als Spalten und Zeilen in der Reihenfolge des Protokolls, mit Anmeldungen, Bereitstellung und Rollenwechsel über SSO, entfernte Mitglieder und jede andere erfasste Aktion. Es braucht einen Schlüssel für die API, den ein Administrator mit dem Prüfumfang erstellt hat, jeder andere Schlüssel erhält forbidden. Der Export selbst wird im Prüfprotokoll erfasst. Lange Zeiträume werden an der Ausgabegrenze abgeschnitten, fragen Sie deshalb kürzere ab. Siehe Schlüssel.

Dokumentation

  • search_stonewake_docs durchsucht diese Dokumentation und ist das einzige Werkzeug, das keinen Schlüssel für die API braucht. Eine Suchanfrage hat 2 bis 256 Zeichen.

In diesen Werkzeugen gibt es zwei getrennte Kennungssysteme. Treffer aus search_companies tragen die node_id des Graphen, die entity_risk_profile, company_overview, company_financials, company_events, company_financing, company_public_funding, ownership_chain, company_network, company_records, company_sector_context und company_regional_context entgegennehmen, während company_profile eine entity_id aus dem getrennten Kennungssystem des Verzeichnisses entgegennimmt. Auf eine Kennung aus dem falschen Kennungssystem antwortet die API mit not_found.

Claude verbinden

Legen Sie in Claude einen eigenen Connector mit der URL des Endpunkts https://mcp.stonewake.ai/ und Ihrem Schlüssel für die API an. Aus Claude Code heraus genügt ein Befehl.

bash
claude mcp add --transport http stonewake https://mcp.stonewake.ai/ \
  --header "Authorization: Bearer $STONEWAKE_API_KEY"

Cursor verbinden

Tragen Sie den Server in .cursor/mcp.json in Ihrem Projekt ein, oder in ~/.cursor/mcp.json für alle Projekte.

json
{
  "mcpServers": {
    "stonewake": {
      "url": "https://mcp.stonewake.ai/",
      "headers": {
        "Authorization": "Bearer swk_live_EXAMPLExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Der Schlüssel oben ist ein Platzhalter; verwenden Sie Ihren eigenen.

Andere Clients für MCP

Jeder Client für MCP, der streamable HTTP spricht, kann sich verbinden. Richten Sie ihn auf https://mcp.stonewake.ai/ und lassen Sie ihn bei jeder Anfrage Authorization: Bearer <key> senden. Clients der Revision 2026-07-28 senden jede Anfrage mit ihrem Umschlag _meta und den Headern MCP-Protocol-Version, Mcp-Method und Mcp-Name, und server/discover nennt die bedienten Versionen, 2026-07-28 und die Versionen mit Handshake 2025-11-25, 2025-06-18, 2025-03-26 und 2024-11-05. Clients mit älteren Versionen von MCP, die mit initialize eröffnen, werden kompatibel beantwortet, und eine Anfrage, die weder den Umschlag noch einen Header mit einer Version trägt, wie die Tests unten, wird ebenso beantwortet. Mehr ist nicht nötig, keine Sitzungskennung, kein lokaler Prozess, kein zu installierendes Paket.

Ein erster Test von der Kommandozeile (das Auflisten der Werkzeuge braucht keinen Schlüssel).

bash
curl -s https://mcp.stonewake.ai/ \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Ein Werkzeug aufzurufen ist eine weitere Anfrage nach JSON-RPC, tools/call mit params, die das Werkzeug und seine Argumente benennen. Mit Schlüssel liest dies Ihre Portfolioübersicht.

bash
curl -s https://mcp.stonewake.ai/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer swk_live_EXAMPLExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"portfolio_overview","arguments":{}}}'

Der Schlüssel oben ist ein Platzhalter; verwenden Sie Ihren eigenen.

Fehler

  • Ein Werkzeugaufruf, dessen Schlüssel fehlt oder abgelehnt wird, beantwortet einen Fehler nach JSON-RPC mit dem stabilen Code -32001 und einer Meldung, die auf Authentifizierung verweist. Die Meldung weist darauf hin, wenn überhaupt keine Zugangsdaten gesendet wurden; gesendete und abgelehnte Zugangsdaten erhalten eine einheitliche Meldung, die wie die 401 der API keinen Grund nennt. Ein Schlüssel mit einem Zeichen außerhalb des druckbaren ASCII erhält dieselbe Antwort, bevor eine Anfrage die API erreicht.
  • Ein Werkzeugaufruf mit einem Argument, das sein Werkzeug nicht erklärt, oder mit einem Wert außerhalb einer erklärten Grenze oder vom falschen Typ beantwortet einen Fehler nach JSON-RPC mit dem Code -32602, bevor eine Anfrage die API erreicht, und die Meldung nennt das Argument. Werte folgen JSON Schema, 3.0 ist also eine ganze Zahl.
  • Unter der Revision 2026-07-28 beantwortet eine Anfrage ohne ihren Umschlag _meta oder mit einer Version darin, die keine Zeichenkette ist, den Code -32602, eine Anfrage, deren Header MCP-Protocol-Version, Mcp-Method oder Mcp-Name ihrem Body widerspricht, den Code -32020, und eine Protokollversion, die dieser Server nicht bedient, den Code -32022 mit den bedienten Versionen in error.data.supported. Eine Methode, die der Server nicht anbietet, beantwortet -32601, und eine Kennung, die weder Zeichenkette noch ganze Zahl ist, -32600. Ein Body, der kein gültiges JSON ist, NaN und Infinity eingeschlossen, beantwortet -32700, und eine Zeichenkette mit einem einzelnen Surrogat als Escape wie \ud800, das für kein Zeichen steht, beantwortet innerhalb von params den Code -32602 und an jeder anderen Stelle -32600. tools/list liefert jedes Werkzeug auf einer Seite und gibt keinen Cursor aus, daher beantwortet eine Anfrage mit einem cursor den Code -32602.
  • Unter der Revision 2026-07-28 kommen die Codes -32700, -32600, -32602, -32020 und -32022 mit HTTP 400 und -32601 mit HTTP 404 zurück. Unter den früheren Revisionen kommen nur -32700 und -32600 mit HTTP 400 zurück. Jeder andere Fehler nach JSON-RPC kommt mit HTTP 200 zurück, dem Status, bei dem die Clients der früheren Revisionen ihn lesen und ihre Sitzung behalten.
  • Fehler des Werkzeuglaufs selbst (eine 403, 404 oder 429 der API oder eine nicht erreichbare API) kommen als Werkzeugergebnis mit isError true und einem maschinenlesbaren Body als JSON zurück, damit ein Agent reagieren kann. Ein ratenbegrenztes Ergebnis führt retry_after_seconds für den Backoff mit.
  • Zwei Ablehnungen erfolgen, bevor ein Werkzeug läuft, als einfache Statuscodes von HTTP. Eine Anfrage mit einem Header Origin einer anderen Website als https://mcp.stonewake.ai oder https://claude.ai (diesen Origin sendet ein eigener Connector in Claude) erhält 403, eine Anfrage ohne den Header wird wie gewohnt bedient, und ein Body über 2.000.000 Bytes erhält 413.
  • Werkzeugantworten schließen Daten von Stonewake zwischen Markierungen STONEWAKE_DATA ein, und die Antwort weist ausdrücklich darauf hin, dass der Text innerhalb der Markierungen als Daten gilt und nicht als Anweisung an das Modell.
  • Eine Werkzeugantwort umfasst höchstens 50.000 Bytes Text. Eine Seite einer Liste, die länger wäre, eine Seite der Zeilen von portfolio_import_preview oder tender_export_preview eingeschlossen, behält ihre ersten Zeilen vollständig, sodass der Text zwischen den Markierungen ein einziges Dokument in JSON bleibt, und ihr Objekt output_cap nennt in items_served die gelieferten Zeilen und in next_offset den Offset, ab dem weitergelesen wird, während limit, offset und total so bleiben, wie die API sie beantwortet hat, ebenso die counts beider Vorschauen. Eine Antwort von company_network, die länger wäre, behält den Mittelpunkt und seine ersten Nachbarn vollständig mit den Kanten zwischen ihnen und meldet truncated gleich true, und ihr output_cap nennt in nodes_served die gelieferten Nachbarn. Eine Antwort von country_profile zu einem Land, die länger wäre, behält ihre ersten Transaktionen vollständig und deals_total so, wie die API es beantwortet hat, und ihr output_cap nennt in deals_served die gelieferten Transaktionen und verweist auf deal_book mit country_code und include_hidden gleich true, das jede Transaktion des Landes liest. Jede andere so lange Antwort wird an der Grenze abgeschnitten und endet innerhalb der Markierungen mit einer Zeile, die mit [TRUNCATED: beginnt. Fragen Sie dann weniger ab, etwa ein kürzeres Zeitfenster oder ein kleineres timeline_limit.

Grundsätze

Einen Assistenten anzubinden vergrößert die Angriffsfläche nicht. Die Werkzeuge sind lesende Sichten auf dieselben Daten des Arbeitsbereichs wie die API unter /v1, Personendaten folgen derselben Regel wie dort (ausgeliefert, wo Personendaten für Ihren Arbeitsbereich eingeschaltet sind, nie in der Sandbox, nie bewertet), und die Seiten Sicherheit und Nutzungsbedingungen decken den Zugang über MCP genauso ab wie die API.