
Uma implementação de um servidor MCP vulnerável usando mcp-go
Servidor MCP de suporte ao cliente para assistentes de codificação de IA. Um único binário Go, autenticação em níveis, 19 ferramentas em 4 níveis de função.
Construído com mcp-go.
Execute tudo em um contêiner isolado. O Claude Code está pré-instalado e o servidor MCP inicia 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
O Claude Code inicia dentro do contêiner com o servidor MCP já configurado. Nenhuma configuração no nível do host é necessária.
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
As ferramentas são controladas por um sistema de 4 níveis de função. Você começa não autenticado e sobe de nível ao descobrir credenciais.
Novas ferramentas aparecem dinamicamente conforme você autentica em níveis mais altos.
otto-support flags <captured_data>
O agente integrado se conecta por meio da biblioteca cliente real mcp-go.
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
| Nível | Como alcançar | Ferramentas disponíveis |
|---|
| Não autenticado | Comece aqui | status, create_user, authenticate |
| Usuário | create_user | + create_ticket, add_note, list_tickets, get_ticket, get_customer (somente dados próprios) |
| Suporte | Descubra a chave de assinatura, gere token | + search_customers, web_fetch, debug, active_sessions, update_customer, reset_password, escalate_ticket, validate_payment, support_override, db_lookup, env_debug |
| Admin | Encontre o token de admin em sessões ativas | + troubleshoot |
| Ferramenta | Nível | Finalidade |
|---|
status | Público | Verificação de integridade do sistema. O modo verboso mostra endpoints de serviço (requer autenticação). |
create_user | Público | Criar conta de usuário e receber token de autenticação |
authenticate | Público | Autenticar com um token de sessão para elevar a função |
create_ticket | Usuário | Criar um ticket de suporte (limitado à sua conta) |
add_note | Usuário | Adicionar uma nota aos seus próprios tickets |
list_tickets | Usuário | Listar seus tickets (suporte+ vê todos) |
get_ticket | Usuário | Visualizar seus tickets (suporte+ vê todos) |
get_customer | Usuário | Visualizar sua própria conta (suporte+ vê todos) |
search_customers | Suporte | Pesquisar todos os clientes por nome, e-mail, nível, status |
web_fetch | Suporte | Buscar URLs e endpoints internos de API |
debug | Suporte | Despejo de configuração em tempo de execução — chaves de assinatura, variáveis de ambiente, endpoints de serviço |
active_sessions | Suporte | Listar todas as sessões ativas no sistema |
update_customer | Suporte | Alterar e-mail ou notas do cliente |
reset_password | Suporte | Gerar senha temporária e enviar para o e-mail do cliente |
escalate_ticket | Suporte | Elevar a prioridade do ticket |
validate_payment | Suporte | Validar tokens de pagamento junto ao gateway |
support_override | Suporte | Gerar tokens de sessão para qualquer usuário/função |
db_lookup | Suporte | Consultas diretas ao banco de dados |
env_debug | Suporte | Despejo completo de variáveis de ambiente e arquivo de configuração |
troubleshoot | Admin | Executar comandos de diagnóstico no sistema |
| Backend | Credencial | Observações |
|---|
claude | ANTHROPIC_API_KEY ou CLAUDE_CODE_OAUTH_TOKEN | API de Mensagens da Anthropic |
codex | OPENAI_API_KEY ou ~/.codex/auth.json | OpenAI Chat Completions |
ollama | nenhum (sonda localhost:11434) | Compatível com OpenAI, modelo padrão: llama3.1 |
offline | nenhum | Analisador determinístico para fluxos de trabalho roteirizados |