KI-Agenten - MCP, REST und OpenAPI
Verbinden Sie Claude Desktop, Claude Code, claude.ai, ChatGPT oder Ihren eigenen Agenten mit Arachnide - drei Zugänge, 25 Tools, der empfohlene System-Prompt und das Sicherheitsmodell.
Drei Zugänge, ein Satz von Tools
Seit 3.13 ist Arachnide dafür gebaut, von einem KI-Agenten gesteuert zu werden: von Ihrem eigenen oder von jedem Assistenten, der MCP (Claude) oder OpenAPI (ChatGPT Actions, LangChain, n8n, Make…) spricht. Der Agent liest das geöffnete Audit, startet Crawls, die live in der App erscheinen, erkundet Seiten, ruft den priorisierten Maßnahmenplan und den Bericht zur GEO-Readiness ab und korrigiert die Website mit Ihrer Zustimmung über die CMS-Connectors. Alles läuft auf Ihrem Rechner oder Ihrem Server; an Dritte wird nichts gesendet, außer dem, was das Modell Ihres eigenen Agenten erhält.
Diese Tabelle wird aus dem Repository erzeugt und ist nur auf Englisch verfügbar.
| Door | For | URL | Auth |
|---|---|---|---|
| MCP over stdio | Claude Code, Claude Desktop, any local MCP client | node src/mcp.mjs | none (local process) |
| MCP over HTTP (Streamable HTTP, stateless JSON) | claude.ai custom connectors, Claude Desktop remote servers, hosted agents, Claude Agent SDK | https://<your-host>/mcp | Authorization: Bearer <token> |
| REST + OpenAPI 3.1 | ChatGPT GPT Actions, OpenAI Agents/Responses API tools, LangChain, n8n, Make, curl | POST https://<your-host>/api/agent/<tool> · spec at /openapi.json | Authorization: Bearer <token> or X-API-Key: <token> |
Das Token wird beim ersten Start von Arachnide erstellt und liegt in ~/.arachnide/agent.json (Modus 0600). Lesen, kopieren oder erneuern Sie es unter Einstellungen → KI-Agenten; auf einem Server setzen Sie stattdessen ARACHNIDE_AGENT_TOKEN. Derselbe Bildschirm zeigt die letzten von Agenten empfangenen Aufrufe, die MCP- und OpenAPI-URLs, ein Feld für die öffentliche URL bei Tunneln und fertige Snippets zum Einfügen. Die Tools sind auf den drei Zugängen identisch: Sie stammen aus einem einzigen Register, src/agent/tools.mjs. crawl_id: "current" bezeichnet immer den in der Arachnide-App geöffneten Crawl.
Claude Desktop und Claude Code (lokal, stdio)
claude mcp add arachnide -- node /path/to/arachnide-seo-spider/src/mcp.mjs
# mit einem Secret für eine Website:
claude mcp add arachnide -e ARACHNIDE_WP_APP_PASSWORD="xxxx xxxx xxxx xxxx" -- node /path/to/arachnide-seo-spider/src/mcp.mjs
Claude Desktop: Settings → Developer → Edit Config, dann den Server hinzufügen und Claude Desktop neu starten:
{
"mcpServers": {
"arachnide": {
"command": "node",
"args": ["C:\\Users\\you\\arachnide-seo-spider\\src\\mcp.mjs"],
"env": { "ARACHNIDE_WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx", "ARACHNIDE_LANG": "de" }
}
}
}
Dann fragen Sie einfach: „Prüfe www.meine-seite.de und korrigiere die Titles, Descriptions und fehlenden Alt-Texte der wichtigsten Seiten.“, oder verwenden Sie den Prompt optimize_site. Bei laufender App können Sie von Claude Desktop aus auch den HTTP-Zugang nutzen: Einstellungen → KI-Agenten → Claude-Desktop-Konfiguration kopieren liefert { "mcpServers": { "arachnide": { "url": "http://127.0.0.1:4000/mcp", "headers": { "Authorization": "Bearer ara_…" } } } }.
Umgebungsvariablen des MCP-Servers: ARACHNIDE_LANG (Beschriftungen: en, fr, de, es, it, pt), ARACHNIDE_HOME (Konfiguration und Journal, Standard ~/.arachnide), ARACHNIDE_CONFIG (Datei der Websites), ARACHNIDE_CRAWLS (Crawl-Ordner, standardmäßig mit der Web-App geteilt).
Benutzerdefinierter Connector in claude.ai und gehostete Agenten (HTTP)
claude.ai erreicht nur Server im öffentlichen Internet über HTTPS. Machen Sie die App erreichbar:
npm start # Arachnide auf http://localhost:4000
cloudflared tunnel --url http://localhost:4000 # oder: ngrok http 4000 · tailscale funnel 4000
Fügen Sie in Arachnide → Einstellungen → KI-Agenten die öffentliche URL ein (zum Beispiel https://xyz.trycloudflare.com). In claude.ai → Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen: URL https://xyz.trycloudflare.com/mcp, und das Token als Bearer-Token. Das Token ist Ihr Schlüssel: Geben Sie es nie weiter. Für einen gehosteten Agenten, der mit dem Claude Agent SDK oder der Messages API gebaut ist, fügen Sie den Server als MCP-Server mit derselben URL und demselben Authorization-Header hinzu, oder rufen Sie den REST-Zugang direkt auf.
ChatGPT (GPT Actions) und OpenAI-Agenten
Im GPT-Builder → Actions → Import from URL: https://<your-host>/openapi.json. Authentifizierung: API Key, Auth-Typ Bearer, Token einfügen. Jedes Tool wird zu einer Action (arachnide_get_summary, arachnide_action_plan…); Nur-Lese-Tools sind als nicht folgenreich markiert, Schreib-Tools (anwenden, zurückrollen, konfigurieren) fragen um Bestätigung. Mit der OpenAI Agents / Responses API richten Sie ein gehostetes MCP-Tool auf https://<your-host>/mcp mit dem Bearer-Header, oder kapseln Sie die REST-Endpunkte als Funktionen aus der OpenAPI-Spezifikation.
Die 25 Tools
Diese Tabelle wird aus dem Repository erzeugt und ist nur auf Englisch verfügbar.
| Tool | What it does | Writes? |
|---|---|---|
arachnide_detect_site | CMS, framework, CDN and the connector that fits | no |
arachnide_crawl | Crawl + ~95 SEO/GEO checks, waits for the result; mode: "list" with urls or sitemap_url crawls exactly those URLs | no |
arachnide_start_crawl / arachnide_crawl_status | Same crawl in the background, live in the app, polled by job id | no |
arachnide_list_crawls | Saved crawls; current first when the app has one open | no |
arachnide_get_summary | Score, grade, pillars, top issues | no |
arachnide_list_issues / arachnide_get_issue | Issues by priority, affected URLs (paginated) | no |
arachnide_action_plan | The ordered action plan (quick wins flagged), as in the app | no |
arachnide_search_pages | Find pages by text, status, indexability, depth, folder, issue; sort by Link Score | no |
arachnide_get_page | Everything about one URL | no |
arachnide_geo_readiness | AI crawlers access, llms.txt, structured data coverage, content depth, hygiene → 0-100 GEO score + recommendations | no |
arachnide_segments | Site sections (product pages, categories, blog…): get the score, errors and averages per segment, suggest one per directory, or set them (no recrawl). Then pass segment to the reading tools | no (saves the segments on the crawl) |
arachnide_fetch_page | Read a live page (tags, headings, images, text excerpt) | no |
arachnide_suggest_fixes | Fixable fields per page with current values and constraints | no |
arachnide_compare_crawls | Before/after between two crawls | no |
arachnide_list_connectors / arachnide_list_sites / arachnide_configure_site / arachnide_test_site | CMS connectors and site configuration (secrets as env:VAR, never in chat) | config |
arachnide_preview_changes | Dry run of a batch of changes | no |
arachnide_apply_changes | Apply approved changes through the connector, journaled | yes |
arachnide_verify_changes / arachnide_rollback_changes / arachnide_list_changes | Verify on the live site, undo a batch, read the journal | rollback writes |
Jedes Lese-Tool (arachnide_get_summary, arachnide_list_issues, arachnide_get_issue, arachnide_action_plan, arachnide_search_pages, arachnide_geo_readiness) akzeptiert segment. Google Analytics 4: Übergeben Sie ga4_key_file (und ga4_property) oder ga4_csv an die Crawl-Tools. Listenmodus (3.21): mode: "list" mit urls oder sitemap_url, max_pages bis zu 200 000. GET /api/agent/tools liefert dieselbe Liste mit dem JSON Schema jeder Eingabe.
GEO-Readiness
arachnide_geo_readiness bewertet einen Crawl mit einem Score von 100 für die Sichtbarkeit in KI-Antworten: in der robots.txt erlaubte oder blockierte KI-Crawler (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended…), llms.txt, Abdeckung strukturierter Daten und antwortorientierte Typen, Inhaltstiefe und dünne Seiten, Duplikate, Hygiene von Titles / Descriptions / H1 / Open Graph, mit einem Score je Teil und geordneten Empfehlungen. Dieselben Signale erscheinen im Tab Robots, KI & Sitemaps der App.
Empfohlener System-Prompt
Fügen Sie dies in den System-Prompt Ihres Agenten ein (Claude-Projektanweisungen, GPT-Anweisungen, system des Agent SDK):
You are an SEO and GEO (generative engine optimisation) consultant. You work with Arachnide SEO Spider through its tools.
- When the user mentions "the audit", "the site" or "the crawl", use crawl_id "current": it is what they see in the Arachnide app. Call arachnide_list_crawls if unsure.
- Start every analysis with arachnide_get_summary, then arachnide_action_plan (what to do first) and arachnide_geo_readiness (visibility in AI answers). Explain in plain language, cite numbers, never invent data that is not in the tool results.
- To explore, use arachnide_search_pages (sorted by Link Score) and arachnide_get_page; to write content, read the real page with arachnide_fetch_page first.
- A new crawl: arachnide_start_crawl, then poll arachnide_crawl_status every 15-30 s; the user can watch it in the app.
- Changes to the live site: arachnide_suggest_fixes → write the values yourself (same language as the site, natural, unique, within pixel limits) → arachnide_preview_changes → show a before/after table → wait for an explicit "yes" → arachnide_apply_changes → arachnide_verify_changes. Small batches (10-30), most important pages first. Every batch can be undone with arachnide_rollback_changes.
- Never ask the user to paste passwords or API keys in the chat: configure sites with "env:VARIABLE" references.
Eine Website verbinden (MCP-Server)
Websites liegen in ~/.arachnide/sites.json. Der Agent legt den Eintrag mit arachnide_configure_site an; Secrets laufen nie durch den Chat: Die Datei speichert env:VARIABLE, und der Wert kommt aus der Umgebung des MCP-Servers. Felder, die der Agent ändern kann: SEO-Title, Meta Description, H1, Canonical, noindex, Alt-Text von Bildern, 301-Weiterleitungen.
{
"sites": {
"my-blog": {
"url": "https://www.my-blog.com",
"connector": "wordpress",
"user": "admin",
"appPassword": "env:ARACHNIDE_WP_APP_PASSWORD",
"policy": { "allowedFields": ["seo_title", "meta_description", "image_alt"], "maxChangesPerBatch": 30 }
}
}
}
Die Einstellungen und Voraussetzungen der Connectors sind unter Mit 1 Klick korrigieren aufgeführt.
Sicherheitsmodell
- Das Token ist auf
/mcpund/api/agent/*erforderlich;/openapi.jsonist öffentlich (es enthält kein Secret), damit GPT-Builder es importieren können./api/agent/settings(Token, Protokoll) antwortet nur der lokalen Oberfläche. - Anfragen sind ratenbegrenzt (240 pro Minute und IP), und die letzten 50 Aufrufe werden in der App angezeigt.
- Deaktivieren Sie Agenten jederzeit mit dem Schalter unter Einstellungen → KI-Agenten; erneuern Sie das Token, wenn es durchsickert.
- Machen Sie Arachnide nur über HTTPS erreichbar (Tunnel oder Reverse-Proxy). Hinter einem Proxy leiten Sie
X-Forwarded-Proto/X-Forwarded-Hostweiter oder setzen die öffentliche URL in der App (ARACHNIDE_PUBLIC_URL). - Schreib-Tools durchlaufen dieselben Regeln wie der MCP-Server: erlaubte Felder pro Website, Stapelgröße, Nur-Lesen-Modus, Journal und Rollback. Die Tools zum Anwenden und Zurückrollen sind als destruktiv markiert, sodass Claude Code und Claude Desktop um Erlaubnis fragen. Nur der eigene Host der Website wird akzeptiert.
Beispiele
# Zusammenfassung des in der App geöffneten Audits
curl -X POST https://<host>/api/agent/arachnide_get_summary -H "Authorization: Bearer ara_…" -H "Content-Type: application/json" -d '{}'
# die 10 Seiten mit dem höchsten Link Score unter /blog/
curl -X POST https://<host>/api/agent/arachnide_search_pages -H "Authorization: Bearer ara_…" -H "Content-Type: application/json" -d '{"folder":"/blog/","limit":10}'
# GEO-Readiness eines gespeicherten Crawls
curl -X POST https://<host>/api/agent/arachnide_geo_readiness -H "Authorization: Bearer ara_…" -H "Content-Type: application/json" -d '{"crawl_id":"www.example.com_2026-10-19T09-00-00"}'
Fehler kommen als JSON: 400 ungültige Argumente (mit dem Feldpfad), 401 fehlendes oder ungültiges Token, 404 unbekanntes Tool, unbekannter Crawl, unbekanntes Problem oder unbekannte Seite, 409 ein Crawl läuft bereits.