Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MasayukiOzawa/1dd6d84ea2a66e3d4ff9cc8b26220e99 to your computer and use it in GitHub Desktop.
Save MasayukiOzawa/1dd6d84ea2a66e3d4ff9cc8b26220e99 to your computer and use it in GitHub Desktop.
GitHub Coding Agent のカスタマイズ

Azure MCP Server を使用して、Azure を操作できるようにするための設定

参考ドキュメント

手順

  1. GitHub と Azure の接続 の手順を Azure Portal から実施し、Azure 側で、GitHub と接続するための、フェデレーション資格情報を追加する。
    • 組織: GitHub ユーザー名
    • リポジトリ: GitHub Coding Agent を実行するリポジトリ名
    • エンティティ型: 環境
    • 選択範囲に基づく (GitHub enironment name): copilot
      • GitHub のリポジトリの Environment に設定されている copilot を指定している
  2. 作成したアプリケーションに適切なロールを付与
    • サンプルとしてはサブスクリプションに対して 閲覧者 のロールを付与
  3. .github/workflows/copilot-setup-steps.ymlAzure Login の設定を追加
name: "Copilot Setup Steps"

on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    environment: copilot
    steps:
      - name: Azure login
        uses: Azure/[email protected]
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
  1. リポジトリの Setttings -> Environment -> copilot から次の内容を設定
    • Environment secrets:
      • AZURE_CLIENT_ID: 1. で登録したアプリケーションのクライアント ID
      • AZURE_SUBSCRIPTION_ID: サブスクリプション ID
      • AZURE_TENANT_ID: テナント ID
  2. リポジトリの Copilot -> Coding agent -> MCP Configuration から次の内容を設定
{
  "mcpServers": {
     "Azure": {
         "type": "local",
       "command": "npx",
       "args": [
         "-y",
         "@azure/mcp@latest",
         "server",
         "start"
       ],
         "tools": ["*"]
     }
  }
}

指示の例

タスクに次のような指示を含めることで、Azure の情報を参照できる。

Azure MCP Server を使用して Japan East のリソースグループの一覧を取得して、azure_resources.html に表形式で追加してください。

Azure OpenAI と連携させるためには次の設定を実施する。

参考ドキュメント

手順

  1. リポジトリの Setttings -> Environment -> copilot から次の内容を設定
    • Environment secrets:
      • AOAI_KEY: Azure OpenAI のキー
    • Environment variables:
      • COPILOT_AGENT_FIREWALL_ALLOW_LIST: openai.azure.com
      • AOAI_DEPLOY: Azure OpenAI のデプロイ名 (例: gpt-4o-mini)
      • AOAI_ENDPOINT: Azure OpenAI のエンドポイント (例: https://aoai01.openai.azure.com/)

指示の例

タスクに次のような指示を含めることで、タスク内で Azure OpenAIと連携し、要約の作成などを実施できる。

取得した内容を Azure OpenAI を使用し、300 文字に要約して azure_resources.html を作成してください。
Azure OpenAI へのアクセスは、環境変数の AOAI_ENDPOINT / AOAI_DEPLOY、シークレットの AOAI_KEY の情報を使用して実施してください。```

任意の MCP Serer を追加

参考ドキュメント

手順

learn の内容を参照できるよう MCP Server を追加する例

  1. リポジトリの Setttings -> Copilot -> Coding agent -> MCP Configuration から次の内容を設定
{
  "mcpServers": {
    "microsoft_docs_mcp": {
      "type": "local",
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://learn.microsoft.com/api/mcp"
      ],
      "tools": [
        "*"
      ]
    }
    
  }
}
  1. Azure MCP Server の設定と合わせる場合は次の内容とする。
{
  "mcpServers": {
    "microsoft_docs_mcp": {
      "type": "local",
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://learn.microsoft.com/api/mcp"
      ],
      "tools": [
        "*"
      ]
    },
     "Azure": {
         "type": "local",
       "command": "npx",
       "args": [
         "-y",
         "@azure/mcp@latest",
         "server",
         "start"
       ],
         "tools": ["*"]
     }
  }
}

指示の例

タスクに次のような指示を含めることで、タスク内で learn の内容を参照させ、Azure OpenAI との連携が完了しているのであれば、Azure OpenAI で要約させることができる。

1. microsoft_docs_mcp MCP Server を使用して、Azure のリソースグループの概要を取得してください。
2. 取得した内容を Azure OpenAI を使用し、300 文字に要約して azure_resources.html を作成してください。
    - Azure OpenAI へのアクセスは、環境変数の AOAI_ENDPOINT / AOAI_DEPLOY、シークレットの AOAI_KEY の情報を使用して実施してください。

Playwright MCP サーバーでスクリーンショットの取得を指示した際に、実行環境に日本語のフォントが含まれておらず、スクリーンショット取得時に日本語が文字化けしてしまうため、実行環境にフォントを追加

参考ドキュメント

手順

  1. .github/workflows/copilot-setup-steps.yml に次の設定を追加。
name: "Copilot Setup Steps"

on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    environment: copilot
    steps:
      - name: Install Japanese Font
        run: |
         sudo apt-get update && sudo apt-get install -y fonts-noto-cjk
  1. Azure MCP Server の設定と合わせる場合は次の内容とする。
name: "Copilot Setup Steps"

on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    environment: copilot
    steps:
      - name: Azure login
        uses: Azure/[email protected]
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
      - name: Install Japanese Font
        run: |
         sudo apt-get update && sudo apt-get install -y fonts-noto-cjk

指示の例

タスクに次のような指示を含めることで、スクリーンショットを取得し、日本語が含まれている場合も文字化けをせずに取得される。

出力した内容は Playwright MCP Server を使用して、スクリーンショットを取得して共有してください。

他のリポジトリを参照させる。
シンプルな Coding Agent の動作でも、Coding Rule を他のリポジトリで管理している場合などに活用できる。

参考資料

手順

  1. ユーザーの Settings -> Developer settings -> Personal access tokens から Personal Access Token (PAT) を作成する。
  2. リポジトリの Setttings -> Environment -> copilot から次の内容を設定
    • Environment secrets:
      • COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN: 1 で作成した PAT
    • Environment variables:

指示の例

タスクに次のような指示を含めることで、他のリポジトリから Coding Rule を取得して使用できる。

環境変数 CODING_RULE_REPO が設定されている場合、GitHub MCP Server を使用して、環境変数に設定されている URL 内の Markdown をコーディングルールとして使用してください。
- リポジトリが Private Repository 出会った場合、Personal Access Token を使用してアクセスをしてください。

カスタム指示を設定し、基本的なふるまいを Coding Agent に指示する。

参考ドキュメント

手順

  1. .github/copilot-instructions.md を作成し、カスタム指示を記載

指示の例

以下は .github/copilot-instructions.md の例。

# 使用言語
全ての応答は日本語に翻訳して記載してください。

# コーディングルールの参照
- 環境変数 CODING_RULE_REPO が設定されている場合、GitHub MCP Server を使用して、環境変数に設定されている URL 内の Markdown をコーディングルールとして使用してください。
  - リポジトリが Private Repository 出会った場合、Personal Access Token を使用してアクセスをしてください。

# Coding Agent の PR の応答に含める内容
- 出力した内容は Playwright MCP Server を使用して、スクリーンショットを取得して共有してください。
- タスクを実行するために参照した、カスタム指示の Markdown ファイル名を PR 内の応答に含めてください。
  - 他のリポジトリの Markdown を参照した場合も、参照したファイル名を応答に含めてください。
- 使用した MCP Server を PR 内の応答に含めてください。
  - MCP Server の利用時にエラーが発生した場合、どの MCP Server でエラーが発生したかを PR 内の応答に含めてください。

本内容を動作確認する場合、次のようなタスクを指示する。

# 実施してもらいたいタスク 
1. microsoft_docs_mcp MCP Server を使用して、Azure のリソースグループの概要を取得してください。
2. 取得した内容を Azure OpenAI を使用し、300 文字に要約して azure_resources.html を作成してください。
    -  Azure OpenAI へのアクセスは、環境変数の AOAI_ENDPOINT / AOAI_DEPLOY、シークレットの AOAI_KEY の情報を使用して実施してください。
3. Azure MCP Server を使用して Japan East のリソースグループの一覧を取得して、azure_resources.html に表形式で追加してください。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment