Uber

Reserve viagens Uber diretamente pelo seu assistente de IA.

Documentação

Servidor MCP Uber

Um servidor MCP (Model Context Protocol) para agendar corridas Uber através de assistentes de IA.

Recursos

  • Autenticação OAuth 2.0 com Uber
  • Obter estimativas de preço para corridas
  • Solicitar corridas Uber
  • Verificar status da corrida
  • Cancelar corridas

Instalação

Usando npm (instalação global)

npm install -g mcp-uber

Usando npx (sem necessidade de instalação)

npx mcp-uber

Configuração

Passo 1: Criar uma Conta de Desenvolvedor Uber

  1. Acesse o Painel do Desenvolvedor Uber
  2. Clique em "Entrar" e escolha uma das opções:
    • Use uma conta existente de passageiro/motorista Uber
    • Crie uma nova conta especificamente para desenvolvimento

💡 Dica: Para organizações, crie um alias de e-mail (ex.: dev@suasempresa.com) em vez de usar uma conta pessoal para facilitar a transferência de propriedade.

Passo 2: Criar um Novo Aplicativo

  1. No Painel do Desenvolvedor, clique em "Criar Aplicativo" (canto superior direito)
  2. Preencha as informações necessárias:
    • Nome do Aplicativo: Nome da sua aplicação
    • Descrição: Breve descrição do que seu aplicativo faz
  3. Clique em "Criar"

Passo 3: Obter Suas Credenciais de API

  1. Navegue até seu aplicativo no painel
  2. Vá para a aba Auth
  3. Você encontrará:
    • Client ID: Identificador público do seu aplicativo
    • Client Secret: Chave privada (mantenha segura!)
    • Server Token: Para requisições do lado do servidor

Passo 4: Configurar Configurações OAuth

  1. Na aba Auth, adicione seu URI de redirecionamento:
    • Para testes locais: http://localhost:3000/callback
    • Para produção: Sua URL de callback real
  2. Selecione os escopos necessários:
    • profile - Informações básicas do perfil do usuário
    • request - Solicitar corridas em nome do usuário
    • ride_request - Visualizar e gerenciar solicitações de corrida ativas

⚠️ Nota: O escopo request é privilegiado e requer aprovação da Uber para uso em produção. Durante o desenvolvimento, sua conta pode usá-lo sem aprovação.

Passo 5: Configurar Variáveis de Ambiente

Crie variáveis de ambiente com suas credenciais (veja a seção de Configuração abaixo)

Uso com Claude Desktop

Usando npm (instalação global)

Adicione à configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uber": {
      "command": "mcp-uber",
      "env": {
        "UBER_CLIENT_ID": "your_client_id",
        "UBER_CLIENT_SECRET": "your_client_secret",
        "UBER_REDIRECT_URI": "http://localhost:3000/callback",
        "UBER_ENVIRONMENT": "sandbox"
      }
    }
  }
}

Usando npx

Adicione à configuração do Claude Desktop:

{
  "mcpServers": {
    "uber": {
      "command": "npx",
      "args": ["mcp-uber"],
      "env": {
        "UBER_CLIENT_ID": "your_client_id",
        "UBER_CLIENT_SECRET": "your_client_secret",
        "UBER_REDIRECT_URI": "http://localhost:3000/callback",
        "UBER_ENVIRONMENT": "sandbox"
      }
    }
  }
}

Ferramentas Disponíveis

  1. uber_get_auth_url - Obter URL de autorização OAuth
  2. uber_set_access_token - Definir token de acesso do usuário
  3. uber_get_price_estimates - Obter estimativas de preço para uma corrida
  4. uber_request_ride - Solicitar uma corrida Uber
  5. uber_get_ride_status - Verificar status da solicitação de corrida
  6. uber_cancel_ride - Cancelar uma solicitação de corrida

Fluxo OAuth

  1. Use uber_get_auth_url para obter a URL de autorização
  2. O usuário visita a URL e autoriza seu aplicativo
  3. Após o callback, troque o código por um token de acesso
  4. Use uber_set_access_token para armazenar o token
  5. Agora você pode fazer chamadas de API

Configuração

Variáveis de Ambiente

O servidor MCP requer as seguintes variáveis de ambiente:

  • UBER_CLIENT_ID: Seu client ID do aplicativo Uber
  • UBER_CLIENT_SECRET: Seu client secret do aplicativo Uber
  • UBER_REDIRECT_URI: URL de callback OAuth (padrão: http://localhost:3000/callback)
  • UBER_ENVIRONMENT: Ou sandbox ou production (padrão: sandbox)

Testando Sua Integração

  1. Use o modo sandbox para testes:

    • Defina UBER_ENVIRONMENT=sandbox no seu ambiente
    • O modo sandbox simula solicitações de corrida sem motoristas reais
    • Perfeito para desenvolvimento e testes
  2. Teste o fluxo OAuth:

    • Use a ferramenta uber_get_auth_url para obter uma URL de autorização
    • Visite a URL e autorize seu aplicativo
    • Após a autorização, a Uber redirecionará para sua URL de callback com um código
    • Troque o código por um token de acesso (você precisará configurar seu próprio manipulador de callback)
    • Use uber_set_access_token para armazenar o token no servidor MCP
  3. Configurando um manipulador de callback:

    • Para testes, você pode usar um servidor Express simples (veja examples/oauth-server.js no repositório GitHub)
    • Para produção, implemente um manipulador de callback seguro no seu aplicativo
    • A URL de callback deve corresponder exatamente ao que está configurado no seu aplicativo Uber

Notas Importantes

Sandbox vs Produção

  • Modo Sandbox (padrão):

    • Corridas e motoristas simulados
    • Sem cobranças reais
    • Perfeito para testes
    • Limitado à sua conta de desenvolvedor
  • Modo Produção:

    • Corridas e cobranças reais
    • Requer aprovação da Uber para escopos privilegiados
    • Deve passar pelo processo de revisão da Uber

Melhores Práticas de Segurança

  1. Nunca envie credenciais: Mantenha seu Client Secret seguro
  2. Use variáveis de ambiente: Não codifique credenciais
  3. Implemente armazenamento adequado de tokens: O armazenamento atual em memória é apenas para demonstração
  4. Valide URIs de redirecionamento: Garanta que suas URLs de callback estejam configuradas corretamente

Limitações da API

  • Limites de taxa se aplicam (consulte a documentação da Uber)
  • Escopos privilegiados requerem aprovação para uso em produção
  • O modo sandbox tem algumas limitações em comparação com a produção

Solução de Problemas

  • Erro "escopo inválido": Seu aplicativo precisa de aprovação para escopos privilegiados em produção
  • "URI de redirecionamento inválida": Certifique-se de que sua URI de redirecionamento corresponda exatamente ao que está configurado no painel da Uber
  • Erros "Não autorizado": Verifique se seu token de acesso é válido e não expirou

Recursos