mcpField
G
github-copilot-sdk

github-copilot-sdk

github.com/rysweet開発76130 回インストール21 週間前に更新
リポジトリ

github-copilot-sdk について

github-copilot-sdkは、GitHub Copilotのエージェントランタイムをアプリに組み込む開発者向けのスキルです。4言語のSDKを使ったセッション、自作ツール、ストリーミング、MCPサーバー接続を扱います。

主な機能

  1. 014言語のSDK利用
  2. 02セッションと会話の管理
  3. 03カスタムツールの定義
  4. 04ストリーミングイベント
  5. 05MCPサーバー接続

活用シーン

  1. 01アプリへのCopilot組み込み
  2. 02ツールを使うアシスタントの構築
  3. 03独自UIでの応答ストリーミング
  4. 04CopilotとMCPツールの接続

MCP 対応

セッションからMCPサーバーへ接続する設定を扱い、Copilotがそのツールを使えるようにします。

インストール

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

$npx skills add https://github.com/rysweet/amplihack --skill github-copilot-sdk

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
drift-detection.md
examples.md
patterns.md
reference.md
examples/
goal-seeking-agent-python.py
goal-seeking-agent-typescript.ts
scripts/
check_drift.py

詳細

GitHub Copilot SDK - 包括的なスキル

概要

GitHub Copilot SDK を使用すると、開発者は Copilot のエージェント型ワークフローをプログラムからアプリケーションに組み込めます。Copilot CLI の基盤となるエンジンを、本番環境で検証済みのエージェントランタイムとして公開し、コードから呼び出せます。

Copilot SDK を使用する場面

Copilot SDK は次のような場合に使用します:

  • Copilot の AI 機能を必要とするアプリケーションを構築する場合
  • ツール呼び出し機能を備えたカスタム AI アシスタントを実装する場合
  • Copilot のコード理解を活用するインテグレーションを作成する場合
  • 標準化されたツールを利用するために MCP(Model Context Protocol)サーバーに接続する場合
  • カスタム UI でストリーミング応答が必要な場合

次のような場合は使用しないでください:

  • GitHub Copilot CLI で十分な場合(CLI を直接使用します)
  • プログラムによるインテグレーションが不要な場合(VS Code で Copilot を使用します)
  • ツールを使わないシンプルなチャットを構築する場合(標準的な LLM API を使用します)
言語サポート
SDKインストール
Node.js/TypeScriptnpm install @github/copilot-sdk
Pythonpip install github-copilot-sdk
Gogo get github.com/github/copilot-sdk/go
.NETdotnet add package GitHub.Copilot.SDK
前提条件
  1. GitHub Copilot CLI がインストールされ、認証済みであること
  2. 有効な Copilot サブスクリプション(利用制限付きの無料プランもあります)

クイックスタート

最小限の例(TypeScript)
import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();
const session = await client.createSession({ model: "gpt-4.1" });

const response = await session.sendAndWait({ prompt: "What is 2 + 2?" });
console.log(response?.data.content);

await client.stop();
最小限の例(Python)
import asyncio
from copilot import CopilotClient

async def main():
    client = CopilotClient()
    await client.start()
    session = await client.create_session({"model": "gpt-4.1"})
    response = await session.send_and_wait({"prompt": "What is 2 + 2?"})
    print(response.data.content)
    await client.stop()

asyncio.run(main())
ストリーミングを追加する
const session = await client.createSession({
  model: "gpt-4.1",
  streaming: true,
});

session.on((event) => {
  if (event.type === "assistant.message_delta") {
    process.stdout.write(event.data.deltaContent);
  }
});

await session.sendAndWait({ prompt: "Tell me a joke" });
カスタムツールを追加する
import { defineTool } from "@github/copilot-sdk";

const getWeather = defineTool("get_weather", {
  description: "Get weather for a city",
  parameters: {
    type: "object",
    properties: {
      city: { type: "string", description: "City name" },
    },
    required: ["city"],
  },
  handler: async ({ city }) => ({
    city,
    temperature: `${Math.floor(Math.random() * 30) + 50}°F`,
    condition: "sunny",
  }),
});

const session = await client.createSession({
  model: "gpt-4.1",
  tools: [getWeather],
});

コアコンセプト

アーキテクチャ
Your Application → SDK Client → JSON-RPC → Copilot CLI (server mode)

SDK は CLI プロセスのライフサイクルを自動的に管理するか、外部 CLI サーバーに接続します。

主なコンポーネント
  1. CopilotClient:エントリーポイント。Copilot CLI への接続を管理します
  2. Session:モデル、ツール、履歴を含む会話コンテキストです
  3. Tools:Copilot が呼び出せるカスタム関数です
  4. Events:ストリーミング応答とツール呼び出しの通知です
  5. MCP Integration:Model Context Protocol サーバーに接続します
セッションの設定
const session = await client.createSession({
  model: "gpt-4.1", // Model to use
  streaming: true, // Enable streaming
  tools: [myTool], // Custom tools
  mcpServers: {
    // MCP server connections
    github: {
      type: "http",
      url: "https://api.githubcopilot.com/mcp/",
    },
  },
  systemMessage: {
    // Custom system prompt
    content: "You are a helpful assistant.",
  },
  customAgents: [
    {
      // Custom agent personas
      name: "code-reviewer",
      displayName: "Code Reviewer",
      description: "Reviews code for best practices",
      prompt: "Focus on security and performance.",
    },
  ],
});

ナビゲーションガイド

補足ファイルを読むタイミング

reference.md - 次の情報が必要な場合に読みます:

  • 4 つすべての言語を対象とした完全な API リファレンス
  • パラメーターと戻り値の型を含む、すべてのメソッドシグネチャ
  • セッションの設定オプション
  • イベントの種類と処理方法
  • 外部 CLI サーバーへの接続

examples.md - 次の情報が必要な場合に読みます:

  • 4 つすべての言語を対象とした、コピーしてすぐに実行できるコード
  • エラー処理のパターン
  • 複数のセッションの管理
  • 対話型アシスタントの実装
  • カスタムエージェントの定義例

patterns.md - 次の情報が必要な場合に読みます:

  • 本番環境で使用できるアーキテクチャパターン
  • ストリーミング UI のインテグレーション
  • MCP サーバーのインテグレーションパターン
  • レート制限と再試行のパターン
  • 構造化出力の抽出

drift-detection.md - 次の情報が必要な場合に読みます:

  • このスキルを最新の状態に保つ方法
  • 検証ワークフロー
  • 更新手順

クイックリファレンス

一般的なイベントの種類
イベントの種類(TS/Go)Python Enum
assistant.message_deltaSessionEventType.ASSISTANT_MESSAGE_DELTA
session.idleSessionEventType.SESSION_IDLE
tool.invocationSessionEventType.TOOL_EXECUTION_START
tool.resultSessionEventType.TOOL_EXECUTION_COMPLETE

Python:from copilot.generated.session_events import SessionEventType をインポートします

デフォルトのツール

SDK はデフォルトで --allow-all モードで動作し、次の操作を有効にします:

  • ファイルシステム操作
  • Git 操作
  • ウェブリクエスト
  • ファーストパーティの Copilot ツールすべて

Amplihack とのインテグレーション

Copilot SDK を使用して、amplihack 内にカスタムエージェントを構築します:

# Create Copilot-powered agent for specific domain
from copilot import CopilotClient

async def create_code_review_agent():
    client = CopilotClient()
    await client.start()
    session = await client.create_session({
        "model": "gpt-4.1",
        "streaming": True,
        "systemMessage": {
            "content": "You are an expert code reviewer."
        }
    })
    return session

次のステップ

  1. シンプルに始める:デフォルトモデルで基本的な送受信を行います
  2. ストリーミングを追加する:UX を向上させるリアルタイム応答を実現します
  3. ツールを追加する:分野に合わせたカスタム関数を追加します
  4. MCP に接続する:GitHub MCP サーバーを使用してリポジトリにアクセスします
  5. UI を構築する:アプリケーションに統合します

API の詳細については、reference.md を参照してください。 すべての言語で動作するコードについては、examples.md を参照してください。 本番環境でのパターンについては、patterns.md を参照してください。

コメント