didi-ride について
didi-ride は、DiDi MCP サーバー経由でユーザーの DiDi アカウントを操作するスキルです。料金見積もり、配車、注文追跡・キャンセル、ルートや場所の検索に対応し、配車とキャンセルには事前確認が必要です。
主な機能
- 01運賃の見積もりと配車注文
- 02注文の追跡とキャンセル
- 03場所の検索と住所の解決
- 04車、公共交通、徒歩、自転車のルート計画
- 05確認前の対象操作プレビュー
活用シーン
- 01配車注文前の運賃見積もり
- 02行程の確認後に配車を依頼
- 03ドライバーと注文状況の確認
- 04近くの場所の検索やルート比較
MCP 対応
`didi` BYOC コネクターが注入する `DIDI_MCP_KEY` を使って DiDi MCP サーバーに接続します。ヘルパーは MCP Streamable-HTTP で利用可能なツールを一覧表示し、呼び出します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ acedatacloud/ skills --skill didi-rideインストール後、Claude Code で/didi-rideを入力して読み込まれたか確認します。
同梱ファイルreferences/api_references.mdscripts/didi.py
詳細
DiDi Ride (滴滴出行)
DiDi MCP サーバーを通じてユーザーの**DiDi (滴滴出行)**アカウントを操作します。 配車の予約、運賃の見積もり、注文の追跡、キャンセル、ルートの計画を行います。
didi BYOC コネクターは、サンドボックスに環境変数を 1 つ注入します。
DIDI_MCP_KEY— ユーザーの DiDi MCP キーです。シークレットです。決してエコー、表示、ログ出力しないでください。
DIDI_MCP_KEY がない場合は、ユーザーに DiDi コネクターへの接続を案内してください。
studio.acedata.cloud/console/connectors
(滴滴出行アプリで QR コードをスキャンするか、
https://mcp.didichuxing.com/claw を利用するとキーを取得できます)。
CLI
このスキルには、標準ライブラリのみを使用して DiDi と MCP Streamable-HTTP
プロトコルで通信するヘルパーが付属しています。以下のすべての Bash ブロックの先頭で、このリゾルバーを実行してください。
Bash の呼び出しごとに新しいシェルが起動し、$SKILL_DIR はこのターンで最後に読み込まれたスキルを指すため、独自のスクリプトを基準にしてください。
DIDI="$SKILL_DIR/scripts/didi.py"; [ -f "$DIDI" ] || DIDI=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/didi.py' 2>/dev/null | head -1)
[ -f "$DIDI" ] || { echo "didi-ride script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
コマンドは 2 つです。
python3 $DIDI list # list tools + their JSON input schemas
python3 $DIDI call <tool> '<json-args>' # call any tool
呼び出す前に、正確なツール名とパラメーター名を必ず references/api_references.md で確認してください。
不明な場合は、python3 $DIDI list を実行してください。DiDi から直接、すべてのツールの正式な入力スキーマが返されます。パラメーター名を推測してはいけません(よくある誤り:keyword → keywords、region → city、4 つの座標フィールド → 6 つの from_name/from_lat/from_lng/to_name/to_lat/to_lng)。
すべての引数の値は文字列でなければなりません(座標や
product_category も含む)。例:{"product_category":"1"}。{"product_category":1} ではありません。
書き込み操作の確認(実際の支払い/実際のドライバー)
taxi_create_order と taxi_cancel_order は確認が必要な操作です。末尾に
--confirm を付けない場合、ヘルパーはドライランのみを実行し、何も変更しません。まず --confirm なしで実行して内容を確認し、ユーザーの承認後、最後の引数として --confirm を付けて再実行してください。
python3 $DIDI call taxi_create_order '{"estimate_trace_id":"...","product_category":"1"}' --confirm
- ユーザーが「打ち車」/「注文をキャンセル」と言った場合でも、
--confirmを付ける前に具体的な詳細(予約時は出発地・目的地・車種、キャンセル時は対象の注文)を確認してください。 - キャンセルの意図は、キャンセルの確認ではありません。必ず最初に「キャンセルしてよろしいですか?」と尋ねてください。
予約の流れ(最小限の実行手順)
- 住所を特定する —
maps_textsearchを使用します(座標を捏造しないでください。以前のターンの座標を再利用しないでください。ユーザーは移動している可能性があります)。- ユーザーが住所の別名(自宅/会社など)を指定し、その住所がわからない場合は、ユーザーに尋ねてください。このスキルには保存済みの設定はありません。
- 出発地と目的地を確認する —
maps_textsearchの候補が 2 件以上の場合、少なくとも上位 3 件を示してユーザーに選んでもらってください。完全に一致する候補が 1 件だけの場合は、確認は不要です。 - 見積もりを取得する —
taxi_estimateを実行し、返されたtraceId/estimate_trace_idを記録します。有効期限があります(-32021)。期限切れの場合は再見積もりしてください。 - 車種を選ぶ — ユーザーの現在のメッセージを優先します(「快車を呼んで」→
product_category1、「専車」→8)。それ以外の場合はユーザーに尋ねてください。taxi_estimateの応答に含まれるカテゴリーのみを使用し、別のサービスレベルに黙って置き換えてはいけません(快車1≠ 特恵快車201)。 - 注文を作成する — 最新の
estimate_trace_idを使ってtaxi_create_orderを実行します(ドライラン → 確認 →--confirm)。 - 結果を報告する — 注文 ID、出発地・目的地、車種、見積もり運賃を伝えます。状況を確認するには「注文を確認」と送信できることも伝えてください。
注文を確認する
注文 ID は、次の優先順位で取得します:ユーザーのメッセージ → この会話で直近に作成された注文 → それ以外の場合はユーザーに尋ねます。
python3 $DIDI call taxi_query_order '{"order_id":"ORDER_ID"}'
ステータスコード(code):
| code | 意味 | 出力 |
|---|---|---|
| 0 | マッチング中 | ⏳ ドライバーを検索しています |
| 1 | ドライバーが注文を受諾 | ドライバーの名前、車種、ナンバープレート、電話番号、距離、到着予定時刻を表示 |
| 2 | ドライバーが到着 | 🔔 ドライバーが乗車地点に到着しました |
| 4 | 乗車中 | 🚗 乗車が始まりました |
| 5 | 注文完了 | ✅ 乗車が終了しました(該当する場合は料金を表示) |
| 6 | システムによるキャンセル | ❌ 注文はシステムによってキャンセルされました |
| 7 | キャンセル済み | ❌ 注文はキャンセルされました |
| 3 / 8-12 | その他の最終状態 | 該当するステータスの説明を表示 |
ルートと場所(注文不要)
python3 $DIDI call maps_direction_driving '{"from_name":"...","from_lat":"...","from_lng":"...","to_name":"...","to_lat":"...","to_lng":"..."}'
python3 $DIDI call maps_direction_transit '{...}' # 公交
python3 $DIDI call maps_direction_walking '{...}' # 步行
python3 $DIDI call maps_direction_bicycling '{...}' # 骑行
python3 $DIDI call maps_place_around '{"keywords":"咖啡","lat":"...","lng":"..."}'
python3 $DIDI call maps_regeocode '{"lat":"...","lng":"..."}'
注意事項
- キーやエンドポイントの生 URL は決して表示しないでください。ヘルパーがトランスポートを処理し、キーを内部に保持します。
taxi_create_orderが受け取るのはestimate_trace_id、product_category、および任意のcaller_car_phoneのみです。見積もりの座標や名前のフィールドは渡さないでください。- 設定は保存されません。このスキルは自宅/職場/車種を記憶しないため、ユーザーに尋ねるか、上位レイヤーでより高度なメモリ機能を組み込んでください。
- 認証エラーは
-32002(または HTTP 401/403)として表面化します。キーが未設定または期限切れのため、ユーザーにコネクターを再接続してもらってください。
設定: 認証を参照してください。このスキルでは、
ACEDATACLOUD_API_TOKENではなく、didiコネクターから注入されるDIDI_MCP_KEYを使用します。