Einen Assistenten-Client erstellen
MCP-Server
Der MCP-Endpunkt von Setherion zum Bau Ihres eigenen Clients: Transport, Authentifizierung, Tools und Fehler.
https://www.setherion.com/api/mcpTarif: Jeder Tarif
Setherion hat einen MCP-Server, den Standardweg, auf dem KI-Assistenten andere Dienste nutzen. Wenn Sie ihn nur von Claude, ChatGPT, Cursor oder VS Code aus nutzen möchten, folgen Sie MCP: einen KI-Assistenten verbinden. Diese Seite ist für den Bau Ihres eigenen Clients.
Der Server ist die API in anderer Stimme. Jedes Tool ist ein Aufruf des gleichnamigen Endpunkts in dieser Referenz, ausgeführt mit den eigenen Zugangsdaten des Aufrufers, sodass der Server nie mehr kann als die API.
Transport
- Streamable HTTP, zustandslos. Senden Sie jede Nachricht als eine JSON-RPC-2.0-Nachricht im Body eines
POST. Es gibt keine Sitzungen und nichts, was fortgesetzt werden könnte. - Protokollversionen
2025-06-18und2025-03-26.initializeantwortet mit der Version, nach der Sie gefragt haben, wenn sie eine dieser beiden ist, und sonst mit2025-06-18. Senden Sie nachinitializedie Version im HeaderMCP-Protocol-Version. Ein abweichender Wert wird mit400abgelehnt. - Nur Tools. Der Server bietet keine Ressourcen oder Prompts und sendet keine eigenen Nachrichten.
- Eine Nachricht pro Anfrage. Ein Batch wird mit
400abgelehnt. GETundDELETEantworten mit405undAllow: POST.- Origin. Eine Anfrage von einer Browserseite muss von
https://www.setherion.comkommen. Jeder andereOriginantwortet mit403. Anfragen von Programmen tragen keinen und sind erlaubt.
Behalten Sie das www in der Adresse bei. Die Adresse ohne es leitet weiter, und eine Weiterleitung verliert die Zugangsdaten.
Authentifizierung
Senden Sie Zugangsdaten im Header Authorization. Beides funktioniert:
- Ein API-Schlüssel:
Authorization: Bearer sth_.... Siehe Authentifizierung. - Ein OAuth-Zugriffstoken, das mit
sto_beginnt und für diesen Endpunkt und keinen anderen ausgestellt wurde. Siehe die Seite zur Anmeldung mit OAuth in dieser Referenz.
Eine Anfrage mit keinem von beiden oder mit Zugangsdaten, die falsch, abgelaufen oder widerrufen sind, antwortet mit 401 und einem Hinweis, wo man sich anmeldet:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="Setherion", resource_metadata="https://www.setherion.com/.well-known/oauth-protected-resource/api/mcp"{
"jsonrpc": "2.0",
"id": null,
"error": {
"code": -32001,
"message": "Sign in to Setherion to use this server, or send an API key from your account page as \"Authorization: Bearer sth_...\"."
}
}Ein Client ohne Zugangsdaten folgt resource_metadata, um die Anmeldung zu finden. Die Tokens funktionieren nur an diesem Endpunkt: Die REST-Endpunkte dieser Referenz nehmen einen API-Schlüssel.
Methoden
| Methode | Antwort |
|---|---|
initialize | Die Protokollversion, capabilities mit { "tools": { "listChanged": false } }, serverInfo (setherion, Setherion, 1.0.0) und instructions für das KI-Modell. |
ping | {} |
tools/list | Die sechs Tools unten, mit ihren Eingabeschemata. |
tools/call | Führt ein Tool aus. |
| Benachrichtigungen und Antworten | 202 mit dem Body {}. |
| Alles andere | Ein JSON-RPC-Fehler -32601, Method not found: <method>. |
curl -X POST https://www.setherion.com/api/mcp \
-H "Authorization: Bearer $SETHERION_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'Tools
| Tool | Ruft auf | Argumente | Credits |
|---|---|---|---|
list_projects | Ihre Apps auflisten | query, offset (beide optional) | Keine |
edit_project | Eine App ändern | project_id, instruction (beide erforderlich) | Wie im Editor |
edit_status | Eine Änderung verfolgen | project_id, run_id (beide erforderlich) | Keine |
publish_project | Eine App veröffentlichen | project_id | Keine |
store_guide | Vorbereitung für die Stores | project_id, way (optional) | Keine |
store_privacy_answers | Datenschutzantworten für die Stores | project_id, way (erforderlich) | Keine |
write_store_listing | Die Store-Seite schreiben | project_id | Einige, Pro und höher |
instruction wird als prompt der Änderung gesendet, bis zu 4.000 Zeichen. way ist easy oder native. offset ist eine ganze Zahl, 0 oder mehr, und darf als Text gesendet werden. edit_project nimmt kein KI-Modell: Es läuft mit auto.
tools/list liefert für jedes Tool title, description, inputSchema und annotations. Lesende Tools sind mit readOnlyHint: true markiert, und publish_project ist als idempotent markiert.
curl -X POST https://www.setherion.com/api/mcp \
-H "Authorization: Bearer $SETHERION_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call",
"params": { "name": "list_projects", "arguments": { "query": "coffee" } } }'Das Ergebnis eines Tools
Ein Tool antwortet mit dem JSON seines Endpunkts, in zwei Formen für jede Art von Client:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [{ "type": "text", "text": "{ \"ok\": true, \"total\": 1, ... }" }],
"structuredContent": { "ok": true, "total": 1, "truncated": false, "offset": 0, "nextOffset": null, "projects": [] },
"isError": false
}
}(projects ist hier gekürzt. Es enthält die Einträge, die unter Ihre Apps auflisten beschrieben sind.)
Wenn der Endpunkt ablehnt, ist isError true, structuredContent entfällt, und content enthält allein den Satz error des Endpunkts, den das KI-Modell lesen soll. Eine Änderung, die mit ok: false endet, ist in diesem Sinne ebenfalls ein Fehler.
Lange Änderungen
Eine Änderung dauert Minuten. Senden Sie die Anfrage mit Accept: text/event-stream, und die Antwort wird gestreamt:
- Alle 10 Sekunden sendet der Server ein Ereignis
notifications/progress, mitprogressauf die bisherigen Sekunden gesetzt und der MeldungStill editing, 30s so far, wenn Sie einenprogressTokeninparams._metaangeben. Ohne Token sendet er eine Kommentarzeile,: still editing. Beides hält die Verbindung am Leben und lässt einen Client sein Timeout zurücksetzen. - Das letzte Ereignis ist das Tool-Ergebnis, als
event: messagemit der JSON-RPC-Antwort indata.
event: message
data: {"jsonrpc":"2.0","method":"notifications/progress","params":{"progressToken":"t1","progress":10,"message":"Still editing, 10s so far"}}
event: message
data: {"jsonrpc":"2.0","id":3,"result":{"content":[...],"structuredContent":{"ok":true,"runId":"..."},"isError":false}}Ohne diesen Header Accept bleibt die Anfrage offen und antwortet mit einem einzigen JSON-Objekt.
Eine Änderung, die nach vier Minuten noch läuft
edit_project wartet höchstens etwa vier Minuten, weil manche Assistenten ein Tool aufgeben, das fünf Minuten lang still war. Eine Änderung, die dann noch arbeitet, antwortet mit ok: true, status: "running" und ihrer runId:
{
"ok": true,
"status": "running",
"runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
"projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
"message": "Still editing. It carries on in Setherion without you: do not send it again. Call edit_status with this runId in a minute or so, until it says \"done\"."
}Die Änderung läuft in Setherion weiter. Rufen Sie edit_status etwa jede Minute mit project_id und run_id auf. Es antwortet wie unter Eine Änderung verfolgen, bis status den Wert done hat.
Das Schließen der Verbindung stoppt die Änderung nicht
Ein Client, der die Verbindung schließt oder eine Abbruchbenachrichtigung sendet, lässt die Änderung weiterlaufen, und sie ist bezahlt. Sie landet in der App, als hätten Sie gewartet. Um sie zu stoppen, klicken Sie im Setherion-Editor auf Stop, auf der Karte, die die laufende Änderung zeigt.
Fehler
| Wo | Fehler |
|---|---|
HTTP 401 | JSON-RPC-Code -32001. Siehe oben unter Authentifizierung. |
HTTP 403 | { "error": "Origin not allowed" } |
HTTP 405 | Code -32000, Method not allowed. This server answers POST only. |
HTTP 400 | Code -32700 Parse error für einen Body, der kein JSON ist; -32600 für einen Batch, eine Nachricht, die kein JSON-RPC 2.0 ist, oder eine nicht unterstützte MCP-Protocol-Version. |
| JSON-RPC-Fehler | -32601 für eine Methode, die nicht existiert; -32602 für falsche Tool-Argumente. |
Die Meldungen bei falschen Tool-Argumenten
Alle kommen mit dem Code -32602 zurück.
Unknown tool: <name>Arguments must be an object.Missing "project_id".(or any required argument)Unknown argument "<name>"."<name>" must be a string."way" must be one of: easy, native."offset" must be a whole number, 0 or more.
Ablehnungen durch die Tools selbst, etwa eine App, die nicht gefunden wird, oder ein erreichtes Limit, sind Tool-Ergebnisse mit isError: true. Ihre Sätze sind die, die unter Fehler und Limits aufgelistet sind.
War diese Seite hilfreich?
