Developer Knowledge API を PowerShell と MCP で使う|公式ドキュメントの検索・取得
Developer Knowledge API を使うと、Google の公開デベロッパードキュメントをプログラムから検索・取得できます。
本記事では PowerShell と MCP(Model Context Protocol) でローカルから API にアクセスし、公式資料を取得するまでの準備と考え方をまとめます。API キーは各自で作成し、Developer Knowledge API 専用に制限したキーで利用します。
🔗 公式・クイックスタート
- Developer Knowledge API 概要
- API を有効にする(GCP コンソール)
- サンプル: sample-mcp-query.zip(PowerShell で MCP を呼ぶ)
デモで試す(search_documents のレスポンス例)
クエリを入力して「検索」を押すとレスポンスを表示します。プロキシ経由で本番 API に問い合わせています。API キー・利用料の都合で、申し訳ありませんがデモを停止することがあります。 取得データの利用・表示の規約については API_TERMS_AND_DEMO.md を参照してください。
🔍 search_documents 本番API
クエリを入力して「検索」を押すと Developer Knowledge API の検索結果を表示します。
接続確認中...
Developer Knowledge API とは
Google の公開デベロッパードキュメントへプログラムでアクセスするための API です。主な機能は次の 2 つです。
- 検索:
SearchDocumentChunksでクエリに基づき関連ページの URI とコンテンツのスニペットを取得。 - 取得:
GetDocumentまたはBatchGetDocumentsで検索結果のドキュメント全文(Markdown)を取得。
対象となるのは Google 公式のデベロッパー向けサイト(Google Cloud、Firebase、Android、Chrome、TensorFlow、web.dev など)の公開ページです。
プレビュー版のため、Markdown は HTML から生成されており品質にばらつきがある場合や、コーパスに含まれないサイト(GitHub・ブログ・YouTube 等)があります。
API を有効にする
まず Google Cloud プロジェクトで Developer Knowledge API を有効にします。GCP の基本操作や API キー・権限の考え方はgws 入門(GCP 設定)やスコープ・権限不足(403)の対処の記事も参考になります。
- Developer Knowledge API のページを開く。
- 利用するプロジェクトが正しいことを確認し、「有効にする」をクリック。
API キーを作成する(Developer Knowledge API 専用に制限)
キーは各自で作成してください。
GCP コンソールで「API とサービス」→「認証情報」→「+ 認証情報を作成」→「API キー」を選び、作成後に「API キーを編集」で次を設定します。
- 名前: 識別用の名前(例: Developer Knowledge API キー)。
- API の制限: 「キーを制限」を選び、Developer Knowledge API のみにチェックを入れる(セキュリティのため推奨)。
このキーをローカル環境の環境変数やスクリプトの設定に保存し、リクエスト時に key クエリパラメータ(REST)または X-Goog-Api-Key ヘッダー(MCP)で渡します。
キーをコードにコミットしないよう注意してください。
これから行うことの流れ
ローカルから公式ドキュメントを取得するまでのおおまかな流れは次のとおりです。
手を動かすには、まず下記のサンプルスクリプト(ZIP)をダウンロードして解凍してください。
次節の環境変数 DEVELOPERKNOWLEDGE_API_KEY の設定のしかたのとおり API キーを環境変数に設定します。キーはスクリプト内に書かず、環境変数で渡します。
ローカルで使う準備
コツは、あらかじめターミナルで環境変数としてキーを設定しておくことです。そうしておけば、PowerShell スクリプトや curl から同じキーを参照でき、コードにキーを書かずに済みます。
環境変数 DEVELOPERKNOWLEDGE_API_KEY の設定のしかた
なぜ環境変数か: キーをスクリプトやソースコードに直接書くと、Git にコミットされて漏洩したり、本番で危険です。
環境変数に置けば、コードにはキーが載らず、実行環境ごとに別のキーを渡せます。
実際にやること:
- いま開いている PowerShell の窓だけで有効にしたい場合(その窓を閉じると消える):
$env:DEVELOPERKNOWLEDGE_API_KEY = "ここにGCPで発行したAPIキーを貼る"
- Windows のユーザー環境変数に永続的に保存する場合(PC を再起動しても残る):
[Environment]::SetEnvironmentVariable("DEVELOPERKNOWLEDGE_API_KEY", "ここにAPIキーを貼る", "User")
実行後、いったん PowerShell を閉じて開き直すと読み込まれます。確認するには $env:DEVELOPERKNOWLEDGE_API_KEY を実行してキーが表示されれば OK です。
スクリプト側の動き: sample-mcp-query.ps1 やこの記事の curl 例では、キーを $env:DEVELOPERKNOWLEDGE_API_KEY から読みます。上記のどちらかで設定しておけば、スクリプト内にキーを書かなくてよいです。
Cloud Run でプロキシを動かす場合: キーはコードに含めず、デプロイ時に --set-env-vars "DEVELOPER_KNOWLEDGE_API_KEY=あなたのキー" で渡します。
詳しくは brief049 の cloud-run-code/search-documents-proxy/README.md を参照してください。
MCP で使う場合はエンドポイント https://developerknowledge.googleapis.com/mcp に POST し、ヘッダー X-Goog-Api-Key にキーを付与します。
MCP とは・なぜ資料取得に使うか
MCP(Model Context Protocol)の詳しい説明は他で多く紹介されているので、ここでは簡潔にします。当サイトではMCP と Antigravity を組み合わせた例(唐揚げブラウザ)やGoogle Stitch と MCP の連携も紹介しています。
Developer Knowledge の MCP では、search_documents(検索)→ get_document または batch_get_documents(全文取得)の流れで、Google 公式デベロッパードキュメントを取得できます。
PowerShell で MCP を呼ぶ
上記の ZIP を解凍した sample-mcp-query.ps1 を、PowerShell から次のように呼び出せます。
.\sample-mcp-query.ps1 list
.\sample-mcp-query.ps1 search "BigQuery"
.\sample-mcp-query.ps1 get "documents/docs.cloud.google.com/..."
.\sample-mcp-query.ps1 batch "documents/..." "documents/..."
list: 利用可能なツール一覧を表示。search "クエリ": ドキュメントを検索。返却のparentをget/batchに渡す。get "documents/...": 単一ドキュメントの全文取得。batch "doc1" "doc2" ...: 最大 20 件のドキュメントを一括取得。
REST とは・REST で呼び出す
REST(Representational State Transfer)は、URL と HTTP メソッド(GET など)でリソースにアクセスする Web API の形です。
Developer Knowledge API は REST でも提供されています。API キーを URL の key= に含めれば、ブラウザのアドレスバーや curl・PowerShell からそのまま呼び出せます。MCP を使わない場合は、こちらの REST で同じ「検索・取得」ができます。
検索(searchDocumentChunks)
次の URL をブラウザで開くか、curl で叩くと、クエリに一致するドキュメントのスニペットが返ります。YOUR_API_KEY を自分のキーに置き換えてください。
https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=BigQuery&key=YOUR_API_KEY
コピー用(curl・PowerShell でそのまま使えます):
curl "https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=BigQuery&key=YOUR_API_KEY"
PowerShell で環境変数からキーを渡す例:
$key = $env:DEVELOPERKNOWLEDGE_API_KEY
$q = [uri]::EscapeDataString("Cloud Storage バケット")
Invoke-RestMethod -Uri "https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=$q&key=$key" -Method Get
1 件取得(get)
検索結果の parent(例: documents/docs.cloud.google.com/storage/docs/creating-buckets)を name にした URL で全文を取得できます。
curl "https://developerknowledge.googleapis.com/v1alpha/documents/docs.cloud.google.com/storage/docs/creating-buckets?key=YOUR_API_KEY"
parent・id・content が返る(BigQuery ドキュメントの例)。参考リンク
クイックスタート、REST リファレンスでエンドポイントやパラメータの詳細を確認できます。
API で取得した情報の利用について(規約の要点)
本サイトのデモでは、Developer Knowledge API の検索結果(スニペットと元ドキュメントへのリンク)を表示しています。
規約上の要点は次のとおりです(規約を確認した日: 2026年3月12日。最新は公式でご確認ください)。
- 適用規約: Google APIs Terms of Service がベース。Developer Knowledge API 単体の専用利用規約は現時点では公開されていません。
- コンテンツの利用: API から返されたコンテンツの「公開表示」は、権利者の許諾または適用法に基づく必要があるとされています(ToS Section 5(e))。
- デモでの心がけ: 出所の明示・元公式ドキュメントへのリンク・スニペットの短い表示・デモ・教育目的であることの明示。詳細は API_TERMS_AND_DEMO.md を参照してください。
以上、Developer Knowledge API の有効化・API キー取得と、PowerShell と MCP で公式ドキュメントを検索・取得する手順の要点でした。
Artist's Perspective
今回の話は、Google の膨大な資料を効率よく集めるための API で、要するに Antigravity などのエージェント環境(AGENTS.md)やAntigravity 拡張から LLM 利用を想定したものですね。人間が使いやすいようにデモも作ってみたのですが、どちらかというと LLM 用です。
デモは Google One AI Pro プランの 10 ドル分の枠に収まるかと……思います。多分。かさんだらお財布に厳しいので、そのときはデモ終了します。デモ、だけに。でももしかしたら……おやじギャグでした。
小難しい話は別にして、WBC とうとう全勝でマイアミ上陸決定ですね。あさってかな。白熱のラジオ放送で応援します。
実は スマホ野球ゲームをいくつか作っています。宣伝です。ワールドバッティング・ワールドピッチャー・ワールドメンテナンス・ワールドランニング、遊んでみてね。
データソース・参考リンク
本記事は Developer Knowledge API 公式ドキュメントおよび brief049 内の .md 資料(01_api_overview.md 等)に基づいています。内容の正確性は公式をご確認ください。
![[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。] [商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]](https://hbb.afl.rakuten.co.jp/hgb/51d153f0.deeb1e49.51d153f1.ed93a2a3/?me_id=1269553&item_id=11481197&pc=https%3A%2F%2Fimage.rakuten.co.jp%2Fbiccamera%2Fcabinet%2Fproduct%2F2485%2F00000003540620_a04.jpg%3F_ex%3D128x128&s=128x128&t=picttext)