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.

NomeTipoObrigatórioDescrição
(sem parâmetros)

login

Autentique-se no Uber usando e-mail/telefone e senha por meio de automação de navegador.

NomeTipoObrigatórioDescrição
identifierstringSimEndereço de e-mail ou número de telefone da conta Uber
passwordstringSimSenha da conta Uber
headlessbooleanNãoExecutar 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: false para concluir a verificação na janela visível do navegador e, em seguida, chame login novamente.


logout

Limpe a sessão do Uber e todos os cookies armazenados.

NomeTipoObrigatórioDescrição
(sem parâmetros)

set_pickup

Defina o local de embarque para uma solicitação de corrida. Persiste entre chamadas de ferramenta.

NomeTipoObrigatórioDescrição
addressstringSimEndereç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.

NomeTipoObrigatórioDescrição
addressstringSimEndereç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.

NomeTipoObrigatórioDescrição
pickupstringNãoSubstituir endereço de embarque (usa o embarque armazenado se não for fornecido)
destinationstringNãoSubstituir endereço de destino (usa o destino armazenado se não for fornecido)
headlessbooleanNãoExecutar 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.

NomeTipoObrigatórioDescrição
pickupstringNãoSubstituir endereço de embarque
destinationstringNãoSubstituir endereço de destino
headlessbooleanNãoExecutar 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.

NomeTipoObrigatórioDescrição
ride_typestringNãoTipo de corrida (ex.: "UberX", "Comfort", "XL", "Black"). Padrão: "UberX".
confirmbooleanNãoDefina true para realmente fazer a solicitação de corrida. Padrão: false (somente prévia).
headlessbooleanNãoExecutar o navegador em modo headless (padrão: true)

Aviso: Definir confirm: true tentará 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.

NomeTipoObrigatórioDescrição
headlessbooleanNãoExecutar o navegador em modo headless (padrão: true)

cancel_ride

Cancele uma solicitação de corrida pendente ou ativa no Uber.

NomeTipoObrigatórioDescrição
confirmbooleanNãoDefina true para confirmar o cancelamento. Padrão: false (mostra apenas informações de cancelamento).
headlessbooleanNãoExecutar 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.

NomeTipoObrigatórioDescrição
limitnumberNãoNúmero de viagens recentes a retornar (padrão: 10)
headlessbooleanNãoExecutar 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á:

  1. Chamar set_pickup com a localização atual do usuário
  2. Chamar set_destination com "Aeroporto JFK"
  3. Chamar get_fare_estimate para comparar preços de UberX, Comfort, XL
  4. Retornar um resumo das opções e tempos de espera estimados

Agente: "Solicite a corrida UberX."

O agente irá:

  1. Chamar request_ride com ride_type: "UberX" e confirm: true
  2. Receber uma confirmação com o ETA do motorista
  3. Armazenar o ID da corrida para rastreamento
  4. Chamar get_ride_status autonomamente 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: false para 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