
Eine Implementierung eines verwundbaren MCP-Servers mit mcp-go
Kundensupport-MCP-Server für KI-Codierungsassistenten. Eine Go-Binary, abgestufte Authentifizierung, 19 Tools auf 4 Rollenebenen.
Erstellt mit mcp-go.
Führen Sie alles in einem isolierten Container aus. Claude Code ist vorinstalliert und der MCP-Server startet automatisch.
# Build
docker build -t otto-support .
# Run with your API key
docker run -it -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" otto-support
# Or with OAuth token
docker run -it -e CLAUDE_CODE_OAUTH_TOKEN="$CLAUDE_CODE_OAUTH_TOKEN" otto-support
Claude Code startet im Container, wobei der MCP-Server bereits konfiguriert ist. Keine Konfiguration auf Host-Ebene erforderlich.
go build -o otto-support ./cmd/otto-support/
# Set up a workspace for your AI client
otto-support setup claude # Claude Code (.mcp.json)
otto-support setup codex # Codex CLI (~/.codex/mcp.json)
otto-support setup cursor # Cursor (.cursor/mcp.json)
cd otto-support
# Launch your AI client from this directory
# Clean up when done
otto-support setup remove
Die Tools sind hinter einem 4-stufigen Rollensystem abgesichert. Sie starten ohne Authentifizierung und stufen sich hoch, indem Sie Anmeldedaten entdecken.
Neue Tools erscheinen dynamisch, sobald Sie sich auf höheren Stufen authentifizieren.
otto-support flags <captured_data>
Der integrierte Agent verbindet sich über die echte mcp-go-Clientbibliothek.
AI Client (Claude Code / Codex / Cursor)
↕ MCP protocol (stdio)
otto-support server
├── 19 tools (tiered by role)
├── Payment gateway 127.0.0.1:9004
├── Customer API 127.0.0.1:9002
├── Metadata service 127.0.0.1:9001
├── Session signer 127.0.0.1:9003
└── SQLite support.db
| Stufe | So erreichbar | Verfügbare Tools |
|---|
| Nicht authentifiziert | Hier beginnen | status, create_user, authenticate |
| Benutzer | create_user | + create_ticket, add_note, list_tickets, get_ticket, get_customer (nur eigene Daten) |
| Support | Signaturschlüssel entdecken, Token erstellen | + search_customers, web_fetch, debug, active_sessions, update_customer, reset_password, escalate_ticket, validate_payment, support_override, db_lookup, env_debug |
| Admin | Admin-Token in aktiven Sitzungen finden | + troubleshoot |
| Tool | Stufe | Zweck |
|---|
status | Öffentlich | System-Gesundheitscheck. Der ausführliche Modus zeigt Service-Endpunkte (erfordert Authentifizierung). |
create_user | Öffentlich | Benutzerkonto erstellen und Authentifizierungstoken erhalten |
authenticate | Öffentlich | Mit einem Sitzungstoken authentifizieren, um die Rolle hochzustufen |
create_ticket | Benutzer | Ein Support-Ticket erstellen (auf Ihr Konto beschränkt) |
add_note | Benutzer | Eine Notiz zu Ihren eigenen Tickets hinzufügen |
list_tickets | Benutzer | Ihre Tickets auflisten (Support+ sieht alle) |
get_ticket | Benutzer | Ihre Tickets anzeigen (Support+ sieht alle) |
get_customer | Benutzer | Ihr eigenes Konto anzeigen (Support+ sieht alle) |
search_customers | Support | Alle Kunden nach Name, E-Mail, Stufe, Status durchsuchen |
web_fetch | Support | URLs und interne API-Endpunkte abrufen |
debug | Support | Laufzeitkonfigurations-Dump — Signaturschlüssel, Umgebungsvariablen, Service-Endpunkte |
active_sessions | Support | Alle aktiven Sitzungen im System auflisten |
update_customer | Support | Kunden-E-Mail oder Notizen ändern |
reset_password | Support | Temporäres Passwort generieren und an die Kunden-E-Mail senden |
escalate_ticket | Support | Ticketpriorität eskalieren |
validate_payment | Support | Zahlungstoken gegen das Gateway validieren |
support_override | Support | Sitzungstoken für jeden Benutzer/jede Rolle erstellen |
db_lookup | Support | Direkte Datenbankabfragen |
env_debug | Support | Vollständiger Dump von Umgebungsvariablen und Konfigurationsdateien |
troubleshoot | Admin | Diagnosebefehle auf dem System ausführen |
| Backend | Anmeldedaten | Hinweise |
|---|
claude | ANTHROPIC_API_KEY oder CLAUDE_CODE_OAUTH_TOKEN | Anthropic Messages API |
codex | OPENAI_API_KEY oder ~/.codex/auth.json | OpenAI Chat Completions |
ollama | keine (prüft localhost:11434) | OpenAI-kompatibel, Standardmodell: llama3.1 |
offline | keine | Deterministischer Parser für skriptbasierte Arbeitsabläufe |