
Un'implementazione di un server MCP vulnerabile che utilizza mcp-go
Server MCP per l'assistenza clienti per assistenti di codifica AI. Un singolo binario Go, autenticazione a livelli, 19 strumenti su 4 livelli di ruolo.
Realizzato con mcp-go.
Esegui tutto in un container isolato. Claude Code è preinstallato e il server MCP si avvia automaticamente.
# 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 si avvia all'interno del container con il server MCP già configurato. Nessuna configurazione a livello di host necessaria.
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
Gli strumenti sono controllati da un sistema di ruoli a 4 livelli. Si inizia senza autenticazione e si sale di livello scoprendo le credenziali.
I nuovi strumenti compaiono dinamicamente man mano che ti autentichi a livelli superiori.
otto-support flags <captured_data>
L'agente integrato si connette tramite la libreria client mcp-go reale.
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
| Tier | Come raggiungerlo | Strumenti disponibili |
|---|
| Unauthenticated | Inizia qui | status, create_user, authenticate |
| User | create_user | + create_ticket, add_note, list_tickets, get_ticket, get_customer (solo i propri dati) |
| Support | Scopri la chiave di firma, genera un token | + search_customers, web_fetch, debug, active_sessions, update_customer, reset_password, escalate_ticket, validate_payment, support_override, db_lookup, env_debug |
| Admin | Trova il token admin nelle sessioni attive | + troubleshoot |
| Tool | Livello | Scopo |
|---|
status | Public | Controllo dello stato del sistema. La modalità verbose mostra gli endpoint di servizio (richiede autenticazione). |
create_user | Public | Crea un account utente e ricevi un token di autenticazione |
authenticate | Public | Autenticati con un token di sessione per aumentare il ruolo |
create_ticket | User | Crea un ticket di supporto (limitato al tuo account) |
add_note | User | Aggiungi una nota ai tuoi ticket |
list_tickets | User | Elenca i tuoi ticket (support+ vede tutti) |
get_ticket | User | Visualizza i tuoi ticket (support+ vede tutti) |
get_customer | User | Visualizza il tuo account (support+ vede tutti) |
search_customers | Support | Cerca tutti i clienti per nome, email, livello, stato |
web_fetch | Support | Recupera URL ed endpoint API interni |
debug | Support | Dump della configurazione runtime — chiavi di firma, variabili d'ambiente, endpoint di servizio |
active_sessions | Support | Elenca tutte le sessioni attive nel sistema |
update_customer | Support | Modifica l'email o le note del cliente |
reset_password | Support | Genera una password temporanea e inviala all'email del cliente |
escalate_ticket | Support | Aumenta la priorità del ticket |
validate_payment | Support | Valida i token di pagamento presso il gateway |
support_override | Support | Genera token di sessione per qualsiasi utente/ruolo |
db_lookup | Support | Query dirette al database |
env_debug | Support | Dump completo delle variabili d'ambiente e del file di configurazione |
troubleshoot | Admin | Esegui comandi diagnostici sul sistema |
| Backend | Credenziale | Note |
|---|
claude | ANTHROPIC_API_KEY o CLAUDE_CODE_OAUTH_TOKEN | Anthropic Messages API |
codex | OPENAI_API_KEY o ~/.codex/auth.json | OpenAI Chat Completions |
ollama | nessuna (sonda localhost:11434) | Compatibile con OpenAI, modello predefinito: llama3.1 |
offline | nessuna | Parser deterministico per flussi di lavoro scriptati |