{"id":48589374,"url":"https://github.com/didi/didi-ride-skill","last_synced_at":"2026-04-08T18:32:14.433Z","repository":{"id":348277903,"uuid":"1196950166","full_name":"didi/didi-ride-skill","owner":"didi","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-31T13:21:46.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T15:25:14.248Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/didi.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-31T07:32:48.000Z","updated_at":"2026-03-31T13:21:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/didi/didi-ride-skill","commit_stats":null,"previous_names":["didi/didi-ride-skill"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/didi/didi-ride-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdidi-ride-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdidi-ride-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdidi-ride-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdidi-ride-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/didi","download_url":"https://codeload.github.com/didi/didi-ride-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdidi-ride-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31568633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-08T18:32:13.676Z","updated_at":"2026-04-08T18:32:14.415Z","avatar_url":"https://github.com/didi.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# didi-ride-skill\n\nEnglish | [中文](README.md)\n\nUnified DiDi mobility entry point — handles all transportation needs with full ride-hailing and route planning capabilities.\n\n**ClawHub**: [didi-ride-skill-official](https://clawhub.ai/didi/didi-ride-skill-official)\n\n\u003e **Service Area**: Covers all cities in **Mainland China** served by DiDi. Not available in Hong Kong, Macau, Taiwan, or outside China.\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n- [Features](#features)\n- [Setup](#setup)\n- [MCP Tools](#mcp-tools)\n- [Workflow](#workflow)\n- [Examples](#examples)\n- [Technical Reference](#technical-reference)\n\n---\n\n## Quick Start\n\n**Up and running in 3 steps:**\n\n**Step 1 — Install mcporter**\n\n```bash\nnpm install -g mcporter\n```\n\n**Step 2 — Get and configure your MCP KEY**\n\nScan the QR code or visit [DiDi MCP Platform](https://mcp.didichuxing.com/claw) to get your KEY, then tell the AI:\n\n```\nYou: My MCP Key is xxxxxx\n```\n\n**Step 3 — Start using it**\n\n```\nYou: Get me a cab to Beijing West Station\nYou: What's the route from Guomao to Sanlitun?\n```\n\n---\n\n## Features\n\n### Ride-Hailing\n\n| Feature | Description |\n|---------|-------------|\n| Instant Ride | Address lookup → Price estimate → Vehicle selection → Create order |\n| Scheduled Ride | Creates a scheduled task that auto-dispatches a ride at the specified time |\n| Order Status | Query current order status on demand |\n| Driver Location | Reverse geocode driver coordinates and display formatted location |\n| Cancel Order | Show order details → User confirms → Cancel |\n| Price Estimate | Compare prices across available vehicle types |\n| Preferences | Save frequent addresses (home/office), vehicle type preferences, and phone number |\n\n### Route Planning\n\n| Feature | Description |\n|---------|-------------|\n| Driving | Car navigation route |\n| Transit | Combined bus and subway commute options |\n| Walking | Pedestrian route planning |\n| Cycling | Bike route planning |\n| Nearby Search | Search for points of interest around a location |\n\n---\n\n## Setup\n\n### 1. Get Your MCP KEY\n\n**Option A: Scan QR Code (Recommended, fastest)**\n\nOpen the DiDi app and scan the QR code below to instantly get your MCP KEY:\n\n![Scan with DiDi App to get MCP Key](https://s3-yspu-cdn.didistatic.com/mcp-web/qrcode/didi_ride_skill_qrcode.png)\n\n**Option B: Visit the website**\n\nGo to [DiDi MCP Platform](https://mcp.didichuxing.com/claw) to obtain your MCP KEY.\n\n### 2. Install mcporter\n\n```bash\nnpm install -g mcporter\n```\n\n### 3. Configure MCP KEY\n\n**Option A: Tell the AI in chat (Recommended)**\n\nJust tell the AI your MCP KEY in the conversation — it will persist the configuration automatically:\n\n```\nYou: My MCP Key is xxxxxx\n```\n\n**Option B: Environment variable**\n\n```bash\nexport DIDI_MCP_KEY=\"YOUR_MCP_KEY_HERE\"\n```\n\n**Option C: Config file**\n\nEdit `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"didi-ride-skill\": {\n        \"apiKey\": \"YOUR_MCP_KEY_HERE\"\n      }\n    }\n  }\n}\n```\n\n### 4. Verify Configuration\n\n```bash\n# Check that the key is set\necho $DIDI_MCP_KEY\n\n# Test API connectivity\nexport MCP_URL=\"https://mcp.didichuxing.com/mcp-servers?key=$DIDI_MCP_KEY\"\nmcporter call \"$MCP_URL\" maps_textsearch --args '{\"keywords\":\"Xierqi Subway Station\",\"city\":\"北京市\"}'\n```\n\n---\n\n## MCP Tools\n\n### Ride-Hailing\n\n| Tool | Purpose |\n|------|---------|\n| `maps_textsearch` | Text-based address lookup, returns coordinates |\n| `taxi_estimate` | Price estimate across available vehicle types |\n| `taxi_create_order` | Create a ride order |\n| `taxi_query_order` | Query order status and driver info |\n| `taxi_get_driver_location` | Get driver's real-time location |\n| `maps_regeocode` | Reverse geocoding (coordinates → address) |\n| `taxi_cancel_order` | Cancel an order |\n| `taxi_generate_ride_app_link` | Generate deep link to DiDi App (fallback when direct API dispatch is unavailable) |\n\n### Route Planning\n\n| Tool | Purpose |\n|------|---------|\n| `maps_direction_driving` | Driving route planning |\n| `maps_direction_transit` | Bus/subway route planning |\n| `maps_direction_walking` | Walking route planning |\n| `maps_direction_bicycling` | Cycling route planning |\n| `maps_place_around` | Nearby search |\n\n---\n\n## Workflow\n\n### Ride-Hailing Flow\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                      User requests a ride                       │\n│                \"Take me from Guomao to Sanlitun\"                │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 1: Address lookup (maps_textsearch)                       │\n│  - Resolve origin: Guomao → (116.458, 39.908)                   │\n│  - Resolve destination: Sanlitun → (116.455, 39.937)            │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 2: Confirm origin/destination                             │\n│  - Confirm with user when address was inferred or multiple      │\n│    candidates were returned                                     │\n│  - No confirmation needed when user specified a precise match   │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 3: Price estimate (taxi_estimate)                         │\n│  - Fetch available vehicle types and prices                     │\n│  - Present options if user hasn't specified a vehicle type      │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 4: Vehicle selection                                      │\n│  - Use user-specified type or preference default                │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 5: Create order (taxi_create_order)                       │\n│  - Create order with selected vehicle type                      │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 6: Output order info + tracking hint                      │\n│  - Display order ID, origin/destination, vehicle, estimated fare│\n│  - Prompt: send \"check order\" to see current status             │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n                           ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Step 7: Auto status check (creates cron task)                  │\n│  - Schedules a follow-up check 5 minutes later                  │\n│  - Automatically queries order status and pushes notification   │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n### Order Status Codes\n\n| Code | Status | Description |\n|------|--------|-------------|\n| 0 | Matching | Finding a driver for you |\n| 1 | Driver Accepted | Shows driver name, vehicle, plate, ETA |\n| 2 | Driver Arrived | Prompt user to proceed to pickup |\n| 4 | Trip In Progress | Ride has started |\n| 5 | Completed | Display fare information |\n| 6 | Cancelled by System | System auto-cancelled |\n| 7 | Cancelled | User-cancelled |\n| 3/8-12 | Other terminal states | Display corresponding status description |\n\n### Confirmation Policy\n\n| Action | Confirmation |\n|--------|-------------|\n| Instant ride | No confirmation needed — dispatches using user-specified or preferred vehicle type |\n| Scheduled ride | Creates cron task directly; dispatches at scheduled time |\n| Cancel order | Show order details → wait for explicit user confirmation |\n\n---\n\n## Examples\n\n### Ride-Hailing\n\n**Basic ride request**\n```\nYou: Get me a car from Beijing West Station to Xierqi Subway Station\n\nAI: Resolving addresses...\nOrigin found: Beijing West Station (116.321, 39.894)\nDestination found: Xierqi Subway Station (116.297, 40.053)\n\nFetching prices...\n\n1. Economy Express: ~¥32\n2. Express: ~¥34\n3. Premier: ~¥54\n\nPlease select a vehicle type, or say \"confirm\" to use the recommended option.\n```\n\n**Specify vehicle type**\n```\nYou: Get me an Express from home to the office\n\nAI: Dispatching Express ride...\nOrder created! Order ID: qo01uCXI6ojeiD\n```\n\n**Scheduled ride**\n```\nYou: Tomorrow morning at 8am from home to the office\n\nAI: Scheduled task set for tomorrow 08:00.\nA ride will be dispatched automatically at that time.\n```\n\n**Check order**\n```\nYou: Check order qo01uCXI6ojeiD\n\nAI: Order ID: qo01uCXI6ojeiD\nStatus: Driver Accepted\nPlate: 京A·XXXXX\nDistance: ~1.2 km\nETA: 3 minutes\n```\n\n\u003e Note: Only active (in-progress) orders can be queried via API. For historical orders, please check the DiDi app.\n\n**Driver location**\n```\nYou: Where is my driver?\n\nAI: 🚗 Driver Location\n📍 Location: Near CITIC Plaza, Jianguomenwai Ave, Chaoyang, Beijing\n📏 Distance: ~1.2 km\n⏱️ ETA: ~3 minutes\n```\n\n### Route Planning\n\n**Driving**\n```\nYou: Plan a driving route from Wangjing SOHO to Guomao\n\nAI: 🚗 Driving Route\n📍 Route: Wangjing SOHO → Guomao\n📏 Distance: ~8.5 km\n⏱️ Estimated time: ~25 min\n```\n\n**Transit**\n```\nYou: What's the subway/bus route from Beijing West Station to Xierqi?\n\nAI: 🚌 Transit Route\n📍 Route: Beijing West Station → Xierqi Subway Station\n⏱️ Estimated time: ~55 min\n🔄 Transfer: Line 9 → Line 13\n```\n\n**Walking**\n```\nYou: How long does it take to walk from home to the subway?\n\nAI: 🚶 Walking Route\n📍 Route: Home → Subway Station\n📏 Distance: ~800 m\n⏱️ Estimated time: ~10 min\n```\n\n**Cycling**\n```\nYou: How do I bike from Wangjing to Sanlitun?\n\nAI: 🚴 Cycling Route\n📍 Route: Wangjing → Sanlitun\n📏 Distance: ~6.2 km\n⏱️ Estimated time: ~28 min\n```\n\n**Nearby Search**\n```\nYou: Any coffee shops nearby?\n\nAI: ☕ Nearby Search Results\n📍 Coffee shops near your location:\n1. Luckin Coffee - ~150 m away\n2. Starbucks - ~320 m away\n3. Manner Coffee - ~580 m away\n```\n\n---\n\n## Technical Reference\n\n- Full workflow: [SKILL.md](SKILL.md)\n- API reference: [api_references.md](references/api_references.md)\n- Error handling: [error_handling.md](references/error_handling.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2Fdidi-ride-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdidi%2Fdidi-ride-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2Fdidi-ride-skill/lists"}