Strider Labs Uber MCP
Servidor MCP para Uber - permite que agentes de IA reservem corridas, obtenham estimativas de tarifas e acompanhem viagens
Documentação
@striderlabs/mcp-uber
Conector de servidor MCP para o Uber de transporte compartilhado — solicite corridas, obtenha estimativas de tarifas e acompanhe viagens por meio de automação de navegador.
Instalação
npx @striderlabs/mcp-uber
Ou instale globalmente:
npm install -g @striderlabs/mcp-uber
Configuração do MCP
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"uber": {
"command": "npx",
"args": ["@striderlabs/mcp-uber"]
}
}
}
Ferramentas
status
Verifique a autenticação e o status da sessão do Uber, incluindo o embarque/destino atual, se definido.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (sem parâmetros) |
login
Autentique-se no Uber usando e-mail/telefone e senha por meio de automação de navegador.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
identifier | string | Sim | Endereço de e-mail ou número de telefone da conta Uber |
password | string | Sim | Senha da conta Uber |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true). Defina false para ver o navegador e concluir OTP/captcha manualmente. |
Nota: O Uber frequentemente exige verificação por OTP via telefone. Se o OTP for acionado, execute com
headless: falsepara concluir a verificação na janela visível do navegador e, em seguida, chameloginnovamente.
logout
Limpe a sessão do Uber e todos os cookies armazenados.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (sem parâmetros) |
set_pickup
Defina o local de embarque para uma solicitação de corrida. Persiste entre chamadas de ferramenta.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
address | string | Sim | Endereço de embarque (ex.: "123 Main St, New York, NY" ou "JFK Airport") |
set_destination
Defina o destino para uma solicitação de corrida. Persiste entre chamadas de ferramenta.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
address | string | Sim | Endereço de destino (ex.: "456 Park Ave, New York, NY" ou "LaGuardia Airport") |
get_fare_estimate
Obtenha estimativas de tarifas para todos os tipos de corrida disponíveis entre embarque e destino.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pickup | string | Não | Substituir endereço de embarque (usa o embarque armazenado se não for fornecido) |
destination | string | Não | Substituir endereço de destino (usa o destino armazenado se não for fornecido) |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
Nota: Defina embarque e destino primeiro com
set_pickup/set_destination, ou forneça-os diretamente como parâmetros.
get_ride_options
Obtenha os tipos de corrida disponíveis (UberX, Comfort, XL, Black, etc.) com preços e ETAs para a rota atual.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pickup | string | Não | Substituir endereço de embarque |
destination | string | Não | Substituir endereço de destino |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
request_ride
Solicite uma corrida no Uber. Retorna uma prévia de confirmação por padrão — não confirma automaticamente.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ride_type | string | Não | Tipo de corrida (ex.: "UberX", "Comfort", "XL", "Black"). Padrão: "UberX". |
confirm | boolean | Não | Defina true para realmente fazer a solicitação de corrida. Padrão: false (somente prévia). |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
Aviso: Definir
confirm: truetentará fazer uma solicitação de corrida real. Certifique-se de que embarque, destino e tipo de corrida estejam corretos antes de confirmar.
get_ride_status
Obtenha o status da sua corrida atual ou mais recente no Uber.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
cancel_ride
Cancele uma solicitação de corrida pendente ou ativa no Uber.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
confirm | boolean | Não | Defina true para confirmar o cancelamento. Padrão: false (mostra apenas informações de cancelamento). |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
Nota: Uma taxa de cancelamento pode ser aplicada se um motorista já tiver sido atribuído. Revise a política de cancelamento antes de confirmar.
get_ride_history
Obtenha o histórico recente de corridas no Uber.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
limit | number | Não | Número de viagens recentes a retornar (padrão: 10) |
headless | boolean | Não | Executar o navegador em modo headless (padrão: true) |
Para Agentes
Agentes podem usar este conector para solicitar, rastrear e gerenciar corridas no Uber de forma autônoma em nome do seu usuário. Exemplo de fluxo de agente:
Agente: "Preciso ir ao Aeroporto JFK. Qual é a corrida mais barata disponível?"
O agente irá:
- Chamar
set_pickupcom a localização atual do usuário - Chamar
set_destinationcom "Aeroporto JFK" - Chamar
get_fare_estimatepara comparar preços de UberX, Comfort, XL - Retornar um resumo das opções e tempos de espera estimados
Agente: "Solicite a corrida UberX."
O agente irá:
- Chamar
request_ridecomride_type: "UberX"econfirm: true - Receber uma confirmação com o ETA do motorista
- Armazenar o ID da corrida para rastreamento
- Chamar
get_ride_statusautonomamente em intervalos para manter o usuário informado
Este conector foi projetado para funcionar em cenários de assistente pessoal autônomo, onde o agente tem acesso persistente à conta Uber do usuário e toma decisões de corrida com base no contexto (localização, custo, tempo, preferências).
Fluxo de Trabalho Típico
1. login → Authenticate with Uber
2. set_pickup → "Times Square, New York, NY"
3. set_destination → "JFK Airport, Queens, NY"
4. get_fare_estimate → Review prices for UberX, Comfort, XL, etc.
5. request_ride → Preview the ride (confirm: false)
6. request_ride → confirm: true to place the request
7. get_ride_status → Track your driver
8. cancel_ride → Cancel if needed (confirm: true)
Armazenamento de Sessão
Sessões e dados de rota são armazenados em:
~/.striderlabs/uber/
├── cookies.json # Browser session cookies
├── auth.json # Account metadata
└── route.json # Current pickup/destination
Detalhes Técnicos
- Transporte: stdio (padrão MCP)
- Navegador: Chromium via Playwright com patches de stealth
- Stealth: Aplica patches em
navigator.webdriver, falsifica plugins/idiomas, remove marcadores de automação - Geolocalização: Padrão: Nova York (40.7128, -74.006)
- User Agent: Chrome 120 no macOS
Notas
- OTP/Captcha: O Uber pode exigir OTP por telefone ou CAPTCHA durante o login. Use
headless: falsepara lidar com isso manualmente. - Estimativas de Tarifas: Disponíveis sem login via uber.com/global/en/price-estimate/
- Solicitações de Corrida: Exigem uma sessão ativa com login.
- Taxas de Cancelamento: O Uber pode cobrar uma taxa se você cancelar após um motorista ser atribuído.
- Aplicativo Móvel: O Uber é principalmente um aplicativo móvel. A interface web (riders.uber.com) é usada para automação, que pode ter recursos diferentes do aplicativo móvel.
Licença
MIT — Strider Labs