使用说明
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-mcp
Build com metadados (opcional):
go build -ldflags "-X main.version=1.0.0 -X main.commit=$(git rev-parse --short HEAD)" -o ingresso-mcp
Por 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.
- Override da base web para gerar links de compra (
INGRESSO_MCP_USER_AGENT- Override do User-Agent.
INGRESSO_MCP_TIMEOUT- Timeout HTTP. Aceita duração (
12s) ou segundos (10). - Padrão:
12s.
- Timeout HTTP. Aceita duração (
INGRESSO_MCP_DISABLE_CACHE- Se
true, desativa o cache local.
- Se
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 respostasapplication/jsonem vez detext/event-stream(Streamable HTTP).
- Se
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://<dominio>/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 servers
Codex (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 ./...