mcpField
O
onboard-context-matic

onboard-context-matic

github.com/github開発40.5k1.0k 回インストール1 日前に更新
リポジトリ

onboard-context-matic について

onboard-context-maticは、context-matic MCPサーバーを対話形式で案内するスキルです。APIの探索や、バージョンに合った統合手順、モデル、エンドポイント、コード例の参照を支援します。

主な機能

  1. 01対話形式のサーバーツアー
  2. 02プロジェクトファイルから言語を判定
  3. 03利用可能なAPIの検索
  4. 04SDKモデルとプロパティの参照
  5. 05エンドポイント仕様と例の検索

活用シーン

  1. 01プロジェクト言語で利用できるAPIの確認
  2. 02モデルの必須・任意フィールドの確認
  3. 03エンドポイントの引数と応答型の確認
  4. 04バージョンに合った統合例の取得

MCP 対応

このスキルは、context-matic MCPサーバーのfetch_api、ask、model_search、endpoint_searchツールの利用を案内します。API探索、バージョンに合った統合ガイド、モデル定義、エンドポイント情報、実行可能なコード例を取得できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill onboard-context-matic

インストール後、Claude Code で/onboard-context-maticを入力して読み込まれたか確認します。

詳細

オンボーディング:ContextMatic MCP

このスキルでは、context-matic MCP サーバーを対話形式で案内します。すべてのフェーズを順番に進めてください。各対話ポイントでいったん止まり、続ける前にユーザーの返答を待ってください。

エージェントの行動ルール — このスキル全体を通して遵守してください:

  • スキルの構成を説明しないでください。 フェーズ名、ステップ番号、または指示を読み上げているように聞こえる表現は使わないでください(例:「フェーズ1では……」「ステップ1a:」「スキルに従って……」)。自然な会話として案内してください。
  • ツールを呼び出す前に、毎回必ずその旨を伝えてください。 何を、なぜ確認するのかを短い一文で伝えてから、ツールを呼び出してください。例:「お使いのプロジェクトの言語で利用できる API の一覧を確認します。」 こうすることでユーザーに状況を伝え、理由の説明がないまま会話が途切れるのを防げます。

フェーズ 0 — はじめの説明とツールの紹介

まず、サーバーの機能を平易な言葉で簡潔に説明します。以下の情報をもとに、自分の言葉で伝えてください。

context-matic MCP サーバーは、AI を活用したコーディングにおける根本的な問題を解決します。一般的なモデルは、古くなっていたり、誤っていたり、新しい SDK バージョンではまったく存在しない公開コードを使って学習されています。このサーバーは、最新のバージョンに対応したグラウンディング層として機能します。エージェントは学習データから SDK の使い方を推測するのではなく、現在の API バージョンとプロジェクトのプログラミング言語に合致する正確な SDK モデル、エンドポイント、認証パターン、実行可能なコードサンプルをサーバーに問い合わせます。

サーバーが解決する問題を説明したら、初めてサーバーを使う人に紹介するように、4 つのツールをそれぞれ説明してください。各ツールについて、次の内容を説明します。

  • 何をするものか — 覚えやすい一言で説明する
  • どんなときに使うか — 具体的で身近な状況を挙げる
  • 何が返ってくるか — ユーザーに表示される出力の種類を説明する

以下の情報を参考にしつつ、表をそのまま提示せず、会話として説明してください。

ツール機能使用する場面得られるもの
fetch_apiAPI の key/識別子と言語に完全一致するものを返すか、指定した言語の API をすべて一覧表示します。key は fetch_api が返す機械可読な識別子(例:paypal)であり、人間向けの表示名(例:「PayPal Server SDK」)ではありません。「どんな API が使えますか?」/新しいプロジェクトの開始時/「PayPal SDK はありますか?」利用可能な API の名前と簡単な説明の一覧(全カタログ)、または識別子/キーと言語を指定した場合は、その API に完全一致する項目
askバージョンに正確に対応したガイダンスとコードサンプルを使って、統合に関する質問に回答します「認証の方法は?」「クイックスタートを見せて」「X の正しい方法は?」実際の SDK バージョンに基づく、手順ごとのガイダンスと実行可能なコードサンプル
model_searchSDK のモデル/オブジェクト定義と、その型付きプロパティを検索します「Order にはどのフィールドがありますか?」「このプロパティは必須ですか?」モデル名、説明、型付きプロパティの完全な一覧(必須か任意か、ネストされた型を含む)
endpoint_searchエンドポイントのメソッド、パラメーター、レスポンス型、実行可能なコードサンプルを検索します「createOrder の呼び出し方を見せて」「getTrack は何を返しますか?」メソッドシグネチャー、パラメーターの型、レスポンス型、コピーしてすぐ使えるコードサンプル

このセクションの最後に、ツアー中に 4 つの主要な探索・統合ツールを実際に使って紹介し、まずは今から fetch_api を使うと伝えてください。このツアーでは、より広範なワークフローで使われる可能性のある補助ツールすべてではなく、ContextMatic サーバーの主要ツールに焦点を当てることを明確にしてください。


フェーズ 1 — 利用可能な API の表示

1a. プロジェクトの言語を検出する

fetch_api を呼び出す前に、ワークスペースのファイルを調べて、プロジェクトの主要な言語を特定します。

  • package.json と .ts/.tsx ファイルを探します → typescript
  • *.csproj または *.sln を探します → csharp
  • requirements.txt、pyproject.toml、または *.py を探します → python
  • pom.xml または build.gradle を探します → java
  • go.mod を探します → go
  • Gemfile または *.rb を探します → ruby
  • composer.json または *.php を探します → php
  • プロジェクトファイルが見つからない場合は、何も伝えずに typescript を使用します。

検出した言語を保存してください。以降のすべてのツール呼び出しで、この言語を渡します。

1b. 利用可能な API を取得する

検出した言語と、利用可能な API を取得していることをユーザーに伝えます。例:「これは TypeScript プロジェクトのようです。TypeScript で利用できる API を取得します。」

language に検出した言語、key に "" を指定して fetch_api を呼び出し、利用可能な API の一覧全体を取得します。

結果を整形されたリストで表示し、各 API の名前と説明の要約を一文で示します。項目を省略したり、途中で切り捨てたりしないでください。

表示形式の例(実際の結果に合わせて調整してください):

Here are the APIs currently available through this server:

1. PayPal Server SDK   — Payments, orders, subscriptions, and vault via PayPal REST APIs.
2. Spotify Web API     — Music/podcast discovery, playback control, and library management.
....

Phase 2 — API の選択(対話)

ユーザーに尋ねます。

「どの API について詳しく知りたいですか?名前か番号をお知らせください。」

続行する前に、ユーザーの返信を待ちます。

fetch_api の応答から、選択された API の key 値を保存してください。以降のすべてのツール呼び出しで、この値を渡します。また、説明文で使用する API の名前も控えておきます。


Phase 3 — 選択した API の説明

呼び出す前に、次のように伝えます。「いい選択ですね。[API 名]の概要を確認します。」

次の項目を指定して ask を呼び出します。

  • key = 選択した API の key
  • language = 検出した言語
  • query = "Give me a high-level overview of this API: what it does, what the main controllers or modules are, how authentication works, and what the first step to start using it is."

応答を会話形式で提示します。次の点を取り上げてください。

  • API でできること(ユースケース)
  • 認証の仕組み(認証情報、OAuth フローなど)
  • 主な SDK コントローラーまたは名前空間
  • インストールする NPM/pip/NuGet などのパッケージ名

Phase 4 — プロジェクトの言語での統合(対話)

ユーザーに尋ねます。

「[API 名]の特定の機能について使い方を知りたいですか?たとえば、注文の作成、トラックの検索、サブスクリプションの管理などです。それとも、統合のクイックスタート全体をお見せしましょうか?」

ユーザーの返信を待ってから続行します。

呼び出す前に、次のように伝えます。「承知しました。調べてみます。」 または 「わかりました。クイックスタートを確認します。」

次の項目を指定して ask を呼び出します。

  • key = 選択した API の key
  • language = 検出した言語
  • query = ユーザーが伝えた目的。または、完全なガイドを求められた場合は "Show me a complete integration quickstart: install the SDK, configure credentials, and make the first API call."

コードサンプルが含まれている場合は、返された内容をそのまま含めて、応答を提示します。

フェーズ 5 — model_search のデモ

ユーザーに伝えます。

「では、model_search の仕組みをお見せします。このツールを使うと、SDK のモデルやオブジェクト定義を検索して、型付きプロパティ、必須項目とオプション項目の区別、使用されている型を確認できます。 名前の一部でも検索でき、大文字と小文字は区別されます。」

呼び出す前に、次のように伝えます。「結果がどのように表示されるか、[model name] モデルを検索してみます。」

選んだ API から代表的なモデルを選び(以下の例を参照)、次の引数で model_search を呼び出します。

  • key = 以前に選択した API キー(例:paypal または spotify)
  • language = 検出したプロジェクトの言語
  • query = 選択した代表的なモデル名
API キーデモに適した検索クエリ
paypalOrder
spotifyTrackObject

結果を表示し、次の点を説明します。

  • 正確なモデル名とその説明
  • 興味深い型付きプロパティをいくつか(オプションか必須かを明示)
  • ネストされたモデルへの参照(例:PurchaseUnit[] | undefined)

ユーザーに伝えます。

「モデル名を指定すれば、どのモデルでも検索できます。部分一致も可能です。形状を確認したいときは、いつでも [API name] の特定のモデルを検索するように頼んでください。」


フェーズ 6 — endpoint_search のデモ

ユーザーに伝えます。

「同様に、endpoint_search を使うと、SDK のメソッドを検索して、正確なパラメーターとその型、レスポンスの型、そしてプロジェクトですぐに使える実行可能なコードサンプルを確認できます。」

呼び出す前に、次のように伝えます。「パラメーターと実際のコードサンプルを確認できるよう、[endpoint name] エンドポイントを取得してみます。」

選んだ API の代表的なエンドポイントを選び、明示的な引数オブジェクトを指定して endpoint_search を呼び出します。

  • key = デモする API キー(例:paypal または spotify)
  • query = 検索するエンドポイント/SDK メソッド名(例:createOrder または getTrack)
  • language = ユーザーのプロジェクト言語(例:"typescript" または "python")

例:

API キー(key)エンドポイント名(query)language の例
paypalcreateOrderユーザーのプロジェクト言語
spotifygetTrackユーザーのプロジェクト言語
結果を表示し、次の点を説明します。
  • メソッド名と説明
  • リクエストパラメーターとその型
  • レスポンスの型
  • コードサンプル全体(返された内容をそのまま表示)

ユーザーに伝えます。

「コードサンプルはそのまま使える状態です。正しい SDK からインポートし、クライアントを初期化して、エンドポイントを呼び出し、エラーを処理します。メソッド名や大文字と小文字を区別する部分文字列を指定して、任意のエンドポイントを検索できます。」


フェーズ 7 — 締めくくり:頼めること

ユーザーがエージェントに頼めることをまとめたリストでツアーを締めくくります。書式付きのメニューとして表示します。


この MCP でできること

クイックスタート:最初の API 呼び出し

/integrate-context-matic Set up the Spotify TypeScript SDK and fetch my top 5 tracks.
Show me the complete client initialization and the API call.
/integrate-context-matic How do I authenticate with the Twilio API and send an SMS?
Give me the full PHP setup including the SDK client and the send call.
/integrate-context-matic Walk me through initializing the Slack API client in a Python script and posting a message to a channel.

フレームワークに応じた連携

/integrate-context-matic I'm building a Next.js app. Integrate the Google Maps Places API
to search for nearby restaurants and display them on a page. Use the TypeScript SDK.
/integrate-context-matic I'm using Laravel. Show me how to send a Twilio SMS when a user
registers. Include the PHP SDK setup, client initialization, and the controller code.
/integrate-context-matic I have an ASP.NET Core app. Add Twilio webhook handling so I can receive delivery status callbacks when an SMS is sent.

ツールを連鎖させて連携を完成させる

/integrate-context-matic I want to add real-time order shipping notifications to my
Next.js store. Use Twilio to send an SMS when the order status changes to "shipped". Show me
the full integration: SDK setup, the correct endpoint and its parameters, and the TypeScript code.
/integrate-context-matic I need to post a Slack message every time a Spotify track changes
in my playlist monitoring app. Walk me through integrating both APIs in TypeScript — start by
discovering what's available, then show me the auth setup and the exact API calls.
/integrate-context-matic In my ASP.NET Core app, I want to geocode user addresses using
Google Maps and cache the results. Look up the geocode endpoint and response model, then
generate the C# code including error handling.

デバッグとエラー処理

/integrate-context-matic My Spotify API call is returning 401. What OAuth flow should I
be using and how does the TypeScript SDK handle token refresh automatically?
/integrate-context-matic My Slack message posts are failing intermittently with rate limit
errors. How does the Python SDK expose rate limit information and what's the recommended retry
pattern?

「ツアーは以上です。上記のいずれかを頼むか、作りたいものを教えてください。このサーバーを使って、バージョンに応じた正確なガイダンスを提供します。」


エージェント向けメモ

  • ユーザーが fetch_api の結果に含まれない API を選んだ場合は、現在利用できないことを伝え、利用可能な API でツアーを続けるよう提案してください。
  • このスキルでのツール呼び出しはすべて読み取り専用です。ユーザーが連携の実行を明示的に求めない限り、プロジェクトの変更、パッケージのインストール、ファイルの書き込みは行いません。
  • endpoint_search または ask のコードサンプルを表示する際は、正しい言語タグを付けたフェンス付きコードブロックを使用してください。

コメント