Ingresso.com MCP
Servidor MCP (Model Context Protocol) para consultar cidades, cinemas, sessões e mapas de assentos do Ingresso.com. Por padrão, expõe ferramentas via stdio para uso por clientes MCP. Também pode rodar como servidor HTTP/SSE quando INGRESSO_MCP_HTTP_ADDR estiver definido.
Recursos
- Listagem de cidades e cinemas.
- Sessões por cidade/cinema com filtro por data.
- Detalhes de sessão e mapa de assentos.
- Cache local com TTL configurado por tipo.
Requisitos
- Go 1.25.7+
Executar
go run .Executar como servidor web (HTTP/SSE):
INGRESSO_MCP_HTTP_ADDR=:8080 INGRESSO_MCP_HTTP_PATH=/mcp go run .Build local:
go build -o ingresso-mcp
./ingresso-mcpBuild com metadados (opcional):
go build -ldflags "-X main.version=1.0.0 -X main.commit=$(git rev-parse --short HEAD)" -o ingresso-mcpPor padrão, o servidor usa stdio (stdin/stdout) e deve ser iniciado pelo cliente MCP. Para conectores remotos (ChatGPT/Claude), execute no modo HTTP/SSE e exponha o endpoint via HTTPS.Configuração
Variáveis de ambiente:
INGRESSO_MCP_API_BASE_URL
- Override do endpoint de conteúdo. - Padrão: https://api-content.ingresso.com/v0.
INGRESSO_MCP_CHECKOUT_URL
- Override do endpoint de checkout. - Padrão: https://api.ingresso.com/v1.
INGRESSO_MCP_CHECKOUT_WEB_URL
- Override da base web para gerar links de compra (ingresso.sessions.checkout_url). - Padrão: https://checkout.ingresso.com.
INGRESSO_MCP_USER_AGENT
- Override do User-Agent.
INGRESSO_MCP_TIMEOUT
- Timeout HTTP. Aceita duração (12s) ou segundos (10). - Padrão: 12s.
INGRESSO_MCP_DISABLE_CACHE
- Se true, desativa o cache local.
INGRESSO_MCP_HTTP_ADDR
- Se definido, inicia servidor HTTP (MCP via Streaming HTTP/SSE). - Exemplo: :8080.
INGRESSO_MCP_HTTP_PATH
- Path do endpoint MCP HTTP. - Padrão: /mcp.
INGRESSO_MCP_HTTP_JSON
- Se true, usa respostas application/json em vez de text/event-stream (Streamable HTTP).
Ferramentas MCP
| Tool | Descrição | Entradas |
|---|---|---|
ingresso.cities.list | Lista todas as cidades disponíveis. | - |
ingresso.cities.get_by_name | Busca dados de uma cidade pelo nome (case-insensitive). | name |
ingresso.theaters.by_city | Lista cinemas de uma cidade. | city_id, refresh (opcional) |
ingresso.sessions.by_city_and_theater | Lista sessões por cidade e cinema. | city_id, theater_id, date (YYYY-MM-DD, opcional), refresh (opcional) |
ingresso.sessions.detail | Detalha uma sessão (inclui seções disponíveis). | session_id |
ingresso.sessions.seat_map | Busca o mapa de assentos de uma sessão e seção. | session_id, section_id |
ingresso.sessions.checkout_url | Retorna a URL de compra (checkout) para uma sessão. | session_id, partnership (opcional) |
Recursos MCP
URIs disponíveis:
ingresso:///citiesingresso:///cities/{city_id}/theatersingresso:///cities/{city_id}/theaters/{theater_id}/sessionsingresso:///cities/{city_id}/theaters/{theater_id}/sessions/{date}(YYYY-MM-DD)ingresso:///sessions/{session_id}ingresso:///sessions/{session_id}/sections/{section_id}/seatmap
Usar em clientes MCP populares
ChatGPT (Developer Mode)
O ChatGPT conecta-se a servidores MCP remotos; servidores stdio locais não são aceitos diretamente. Para desenvolvimento local, exponha o endpoint HTTP com um túnel e use a URL pública (ex.: https:///mcp).
Passos gerais:
- Em workspaces Business/Enterprise/Edu, admins devem habilitar o Developer mode nas configurações do workspace (o caminho pode variar por plano).
- Usuários autorizados podem ativar o Developer mode nas configurações pessoais.
- Crie um conector e informe o endpoint HTTPS do seu servidor MCP.
- Em chats, selecione o conector no menu de ferramentas e use os tools.
Referência: Developer mode, apps and full MCP connectors in ChatGPT
Claude Desktop
Claude Desktop lê a configuração de servidores MCP a partir de claude_desktop_config.json. Exemplo usando go run .:
{
"mcpServers": {
"ingresso-mcp": {
"command": "go",
"args": ["run", "."],
"env": {
"INGRESSO_MCP_TIMEOUT": "12s"
}
}
}
}Você também pode apontar para o binário compilado:
{
"mcpServers": {
"ingresso-mcp": {
"command": "/caminho/para/ingresso-mcp",
"args": [],
"env": {}
}
}
}O formato mcpServers e o arquivo claude_desktop_config.json seguem o padrão documentado pela Anthropic.
Nota: conectores MCP remotos devem ser adicionados via Settings → Connectors. O Claude Desktop não conecta servidores remotos configurados diretamente em claude_desktop_config.json. Referência: Building custom connectors via remote MCP serversCodex (CLI/VS Code)
O Codex permite adicionar servidores MCP via CLI. Exemplo:
codex mcp add ingresso-mcp --env INGRESSO_MCP_TIMEOUT=12s -- go run .Ou configure manualmente em ~/.codex/config.toml:
[mcp_servers.ingresso-mcp]
command = "go"
args = ["run", "."]
env = { INGRESSO_MCP_TIMEOUT = "12s" }Comandos e formato de configuração são descritos na documentação do Codex. Referência: Model Context Protocol (Codex)
Cache local
- Cidades: 7 dias.
- Cinemas: 72 horas.
- Sessões: 10 minutos.
O cache é salvo em os.UserCacheDir() na pasta ingresso-mcp.
Exemplos comuns:
- macOS:
~/Library/Caches/ingresso-mcp - Linux:
~/.cache/ingresso-mcp - Windows:
%LocalAppData%\ingresso-mcp
Testes
go test ./...Teste integrado (chamadas reais):
INGRESSO_MCP_INTEGRATION=1 go test -tags=integration ./...