Efuka MCP Server

Exposes the Efuka JSON API as Model Context Protocol tools so AI agents can book rides, manage matching, and handle post-ride actions natively.

Setup

cd mcp
npm install
npm run build

Configuration

Set your API token as an environment variable. You can generate a token from your Efuka profile.

export EFUKA_API_TOKEN=mpd_your_token_here
export EFUKA_BASE_URL=https://efuka.com/api/v1  # optional

Generate a token from your profile page.

Running

npm start
# or for development:
npm run dev

Claude Desktop Integration

Add the server to your Claude Desktop configuration:

{
  "mcpServers": {
    "efuka": {
      "command": "node",
      "args": ["/path/to/efuka/mcp/dist/index.js"],
      "env": {
        "EFUKA_API_TOKEN": "mpd_your_token_here"
      }
    }
  }
}

OpenClaw Integration

Add the server to your OpenClaw MCP configuration:

{
  "mcp": {
    "servers": {
      "efuka": {
        "command": "node",
        "args": ["/path/to/efuka/mcp/dist/index.js"],
        "env": {
          "EFUKA_API_TOKEN": "mpd_your_token_here"
        }
      }
    }
  }
}

Available Tools

Once connected, your assistant can use these tools:

Tool Description
list_ridesList all rides for the user
get_rideGet ride details by ID
book_rideBook a new ride with optional multi-stop route
cancel_rideCancel a ride
get_driversGet available drivers + quotes for a ride
confirm_driverConfirm a driver selection
get_ride_statusLive ride status + accepted driver info
submit_tipTip the driver (card rides only, โ‰ค $20 or 30%)
rate_driverRate the driver 1โ€“5 stars
get_preferencesRead auto-tip/auto-rating preferences
update_preferencesUpdate agent preferences

Multi-Stop Booking

Agents can book rides with multiple stops via the book_ride tool:

{
  "pickup_address": "123 Main St, Denver, CO",
  "dropoff_address": "456 Final Ave, Denver, CO",
  "reservation_date_and_time": "2026-05-28T10:00:00-06:00",
  "payment_method": "Card",
  "stops": [
    { "address": "CVS Pharmacy, Denver, CO", "type": "wait", "sequence": 1 },
    { "address": "UPS Store, Denver, CO", "type": "dropoff", "sequence": 2 }
  ]
}

Stop types: pickup (someone gets in), dropoff (someone exits), wait (temporary stop, same passenger). If the last stop is type dropoff, it replaces the final destination for accurate waypoint routing.

Pricing: pickup/dropoff stops add 3 minutes to estimated time; wait stops add 10 minutes. These are factored into driver quotes.

Agent Post-Ride Flow

  1. get_preferences โ†’ check auto_rating_enabled + auto_tip_enabled
  2. If auto_rating_enabled โ†’ rate_driver with auto_rating_score. Otherwise, ask the user for a rating (1โ€“5).
  3. If auto_tip_enabled + Card ride โ†’ submit_tip with configured amount/percentage. Else if Card ride โ†’ ask the user if they want to tip and how much. Else (non-card ride) โ†’ inform the user to tip the driver directly.

Security Notes

  • Tokens are prefixed mpd_ and SHA-256 hashed โ€” treat them like a password.
  • All actions are scoped to the token owner's data.
  • Payment method management is not available via API (user action only).