mcpField
D
didi-ride

didi-ride

github.com/acedatacloudその他1786 回インストール今日更新
リポジトリ

didi-ride について

didi-ride は、DiDi MCP サーバー経由でユーザーの DiDi アカウントを操作するスキルです。料金見積もり、配車、注文追跡・キャンセル、ルートや場所の検索に対応し、配車とキャンセルには事前確認が必要です。

主な機能

  1. 01運賃の見積もりと配車注文
  2. 02注文の追跡とキャンセル
  3. 03場所の検索と住所の解決
  4. 04車、公共交通、徒歩、自転車のルート計画
  5. 05確認前の対象操作プレビュー

活用シーン

  1. 01配車注文前の運賃見積もり
  2. 02行程の確認後に配車を依頼
  3. 03ドライバーと注文状況の確認
  4. 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 を付ける前に具体的な詳細(予約時は出発地・目的地・車種、キャンセル時は対象の注文)を確認してください。
  • キャンセルの意図は、キャンセルの確認ではありません。必ず最初に「キャンセルしてよろしいですか?」と尋ねてください。

予約の流れ(最小限の実行手順)

  1. 住所を特定する — maps_textsearch を使用します(座標を捏造しないでください。以前のターンの座標を再利用しないでください。ユーザーは移動している可能性があります)。
    • ユーザーが住所の別名(自宅/会社など)を指定し、その住所がわからない場合は、ユーザーに尋ねてください。このスキルには保存済みの設定はありません。
  2. 出発地と目的地を確認する — maps_textsearch の候補が 2 件以上の場合、少なくとも上位 3 件を示してユーザーに選んでもらってください。完全に一致する候補が 1 件だけの場合は、確認は不要です。
  3. 見積もりを取得する — taxi_estimate を実行し、返された traceId/estimate_trace_id を記録します。有効期限があります(-32021)。期限切れの場合は再見積もりしてください。
  4. 車種を選ぶ — ユーザーの現在のメッセージを優先します(「快車を呼んで」→product_category 1、「専車」→8)。それ以外の場合はユーザーに尋ねてください。taxi_estimate の応答に含まれるカテゴリーのみを使用し、別のサービスレベルに黙って置き換えてはいけません(快車 1 ≠ 特恵快車 201)。
  5. 注文を作成する — 最新の estimate_trace_id を使って taxi_create_order を実行します(ドライラン → 確認 → --confirm)。
  6. 結果を報告する — 注文 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 を使用します。

コメント