ops-integrate について
ops-integrateは、外部APIをOPSに追加するためのスキルです。サービス連携を設定するユーザー向けに、API情報の確認、認証情報の検査、ローカル登録を行います。
主な機能
- 01APIドキュメントと認証方式の確認
- 02認証情報の収集とローカル保存
- 03エンドポイントのヘルスチェック
- 04連携の登録と一覧表示
活用シーン
- 01サードパーティAPIの追加
- 02登録済みサービスの確認
- 03認証情報の動作確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill ops-integrateインストール後、Claude Code で/ops-integrateを入力して読み込まれたか確認します。
詳細
ランタイムコンテキスト
PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
PARTNER_REGISTRY=$(jq '.partner_registry // {}' "$PREFS" 2>/dev/null || echo '{}')
$ARGUMENTS を解析します:
--listを含む場合 → 登録済みインテグレーションの一覧表示を実行して終了- それ以外の場合 → サービス名を最初の位置引数としてオンボーディングフローを実行
OPS ► INTEGRATE
登録済みインテグレーションの一覧表示(--list)
jq -r '.partner_registry // {} | to_entries[] | "\(.key): \(.value.base_url) [\(.value.auth_type)]"' "$PREFS" 2>/dev/null
表形式で表示します:
Registered integrations:
hubspot https://api.hubapi.com [bearer]
stripe https://api.stripe.com [bearer]
sendgrid https://api.sendgrid.com [api-key]
インテグレーションが登録されていない場合:No integrations registered yet. Run /ops:integrate <service-name> to add one.
オンボーディングフロー(5 ステップ)
ステップ 1 — API 詳細を調べる
--url が指定されていない場合は、WebSearch を使用して以下を調べます:
- 公式 API ドキュメントの URL
- ベース API URL
- 認証方式(ベアラートークン/api-key ヘッダー/ベーシック認証/oauth2)
- API キー生成用 URL(ユーザーが認証情報を取得する場所)
- ヘルスチェック/テスト用エンドポイント(例:/healthz、/v1/ping、/me)
ステップ 2 — ユーザーに確認する
AskUserQuestion を使って調査結果を提示します(選択肢は 4 件以内):
Found: <service-name> API — Base URL: <url> — Auth: <auth-type>
[Looks correct — continue] [Change base URL] [Change auth type] [Cancel]
「ベース URL を変更」を選択した場合:新しい URL を自由入力できる AskUserQuestion を表示します。
「認証方式を変更」を選択した場合:AskUserQuestion を表示します(選択肢は 4 件以内):[bearer] [api-key] [basic] [oauth2]
ステップ 3 — 認証情報を収集する
Paste your <service-name> <auth-type> credential (it will be stored locally only)
[Paste now] [Configure later]
「今すぐ貼り付け」を選択した場合:自由入力の AskUserQuestion で認証情報を収集します。キー名は次のように生成します:<lowercase_service_name>_api_key
アトミックな一時ファイルの置き換えを使って、preferences.json に書き込みます:
tmp=$(mktemp)
jq --arg k "$KEY_NAME" --arg v "$CREDENTIAL" '.[$k] = $v' "$PREFS" > "$tmp" && mv "$tmp" "$PREFS"
ステップ 4 — ヘルスチェック
認証情報を使って、ヘルスチェック/テスト用エンドポイントに Curl します:
# Bearer token
curl -sf -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer ${CREDENTIAL}" \
"${BASE_URL}${HEALTH_ENDPOINT}"
# API key header (X-Api-Key)
curl -sf -o /dev/null -w "%{http_code}" \
-H "X-Api-Key: ${CREDENTIAL}" \
"${BASE_URL}${HEALTH_ENDPOINT}"
# Basic auth
curl -sf -o /dev/null -w "%{http_code}" \
-u "${CREDENTIAL}:" \
"${BASE_URL}${HEALTH_ENDPOINT}"
結果を報告します:HTTP 200-299 の場合は ✅、それ以外の場合はステータスコードとともに ⚠️。認証情報がまだ設定されていない場合は、ヘルスチェックをスキップし、⬜ health check skipped — credential not configured と報告します。
ステップ 5 — パートナーレジストリに登録する
tmp=$(mktemp)
jq --arg name "${SERVICE_NAME}" \
--arg url "${BASE_URL}" \
--arg auth "${AUTH_TYPE}" \
--arg key_name "${KEY_NAME}" \
--arg health "${HEALTH_ENDPOINT}" \
'.partner_registry[$name] = {base_url: $url, auth_type: $auth, credential_key: $key_name, health_endpoint: $health, added: (now | todate)}' \
"$PREFS" > "$tmp" && mv "$tmp" "$PREFS"
確認出力:
✅ <service-name> registered in partner registry
Auth: <auth-type>
Health: <base-url><health-endpoint>
Credential key: <key-name>
Access via: jq '.partner_registry["<service-name>"]' $PREFS
CLI/API リファレンス
# List all registered integrations
jq '.partner_registry' "${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
# Look up a specific integration
jq '.partner_registry["hubspot"]' "$PREFS"
# Read a credential for a registered integration
jq -r ".$KEY_NAME" "$PREFS"
# Remove an integration from the registry
jq 'del(.partner_registry["<service-name>"])' "$PREFS" > tmp && mv tmp "$PREFS"