# GitHub Copilot

ホストがサポートしている場合、ホストされた OAuth 構成を介して VS Code および GitHub Copilot を接続します。

- Canonical: https://docs.xmemo.dev/ja/docs/mcp/copilot
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: 89da3a37e97e05ec3cbc29a8fa3f11b3cedd4385b04602234bbe99594d360d2a
- Edition-Digest: 8b7350795b8fee5f0a794ff1a8b610892b0af78c06264e1a030a04458a44456c
- Source-Revision: sha256:79ae0e28c58efc497cff8929ba46d7fb7bcfdbf5c9e0b86c939e6f7182cd270b

## 前提条件

GitHub Copilot Chat および MCP サポートを備えた VS Code を使用します。インターフェースと前提条件：

- 具体的なインターフェース: GitHub Copilot Chat 拡張機能を備えた VS Code (エディター OAuth パス)。
- 構成ファイル: %APPDATA%\Code\User\mcp.json (Windows)、~/Library/Application Support/Code/User/mcp.json (macOS)、または ~/.config/Code/User/mcp.json (Linux)。
- mcpServers ではなく servers キーを使用します。
- エンドポイント: https://xmemo.dev/mcp。
- アカウント: https://xmemo.dev の有効な XMemo アカウント。

## インストール / セットアップ

servers キーの下で VS Code ユーザー構成 mcp.json を編集し、ホストされた XMemo URL を追加します。ここでは Copilot CLI の構成を使用しないでください。その直接パスには独自のルート (/docs/mcp/copilot-cli) があります：

- エディターエントリは URL のみに保ちます。
- 最初のツール呼び出しでブラウザ OAuth が開きます。
- この VS Code エントリに Authorization ヘッダーを追加しないでください。

## 認証情報を設定する

キーは不要です — VS Code / GitHub Copilot Chat でブラウザ OAuth を完了します。XMEMO_KEY を設定したり、ベアラートークンを mcp.json に貼り付けたりしないでください：

```text
No XMEMO_KEY
Complete browser OAuth in VS Code / GitHub Copilot Chat
```

## XMEMO_AGENT_INSTANCE_ID を生成 / 確認する

レビュー済みの VS Code OAuth リストには、クライアント側の ID ヘッダーはありません。mcp.json に XMEMO_AGENT_INSTANCE_ID を追加しないでください。この OAuth パスがグラント管理の帰属を使用していることを確認してください。

## 既存の構成ブロックを保持する

レビュー済みの VS Code / GitHub Copilot 構成ブロックを使用します。servers キーと URL のみの OAuth 形式を保持します。Copilot CLI のベアラー構成をこれにコピーしないでください：

```json
{
  "servers": {
    "xmemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp"
    }
  }
}
```

## クライアントを再起動する

mcp.json を保存した後、VS Code ウィンドウをリロードするか (Developer: Reload Window)、MCP 接続を再起動して、Copilot が現在のサーバー定義を読み取るようにします。

## 実際の recall 呼び出しでテストする

最初の MCP 呼び出しは読み取り専用にします。これはヘルスチェック用のプレースホルダーではなく実際のリコール呼び出しであり、メモリへの書き込みは行いません。

```text
recall({ query: "connection check", limit: 1 })
```

## 期待される応答（リテラル形式）

呼び出しが成功すると、以下の公開ランク付けテキスト形式が返されます。参照とコンテンツは、承認されたメモリ空間からの実際の値です。

```text
### XMemo Memory Results:
1. Reference: <opaque-memory-id> | Location: <location>
   > <memory content>
```

## 最初の有用なタスク：合成メモリライフサイクル

GitHub Copilot Chat 内で完全な合成メモリタスクを実行します：

- 1. 合成事実の保存: 規則 ("Demo project timestamps use UTC.") を "projects/demo-onboarding/conventions" に記憶するよう Copilot Chat に依頼します。
- 2. ステートレス移行: GitHub Copilot で新しいチャットセッションを開くか、VS Code ウィンドウをリロードします。
- 3. 出所帰属付きリコール: "demo project timestamp format" をクエリします。返された Reference と Location を確認します。
- 4. メモリの修正: update_memory を使用して規則を ISO 8601 書式に更新します。
- 5. オプションのクリーンアップ: 検証が完了したら、forget を使用して規則を論理削除します。

## 機能とプロファイルツール

VS Code の GitHub Copilot は、generic-public プロファイルの MCP ドキュメント規約で定義されているプロファイル修飾ツールにアクセスできます：

- コアメモリツール: remember, recall, update_memory, forget, read_memory, explain_memory, search_memory, recall_context。
- ワークスペースツール: get_mcp_identity, get_project_summary, project, todo, open_project_workspace, open_todo_board, ledger, open_ledger.

## 制限事項と境界

VS Code での GitHub Copilot の運用上の境界：

- ワークスペースの分離: 操作は承認されたユーザーのワークスペースに厳密に制限されます。
- エディター/CLI の分離: VS Code OAuth セッションは外部のターミナルツールに伝播しません。
- ヘッダーの混合禁止: mcp.json の servers エントリに Authorization ヘッダーを追加しないでください。

## よくあるエラー

VS Code / GitHub Copilot Chat はブラウザ OAuth パスを使用するため、Copilot CLI トークン設定でデバッグしないでください：

- invalid_grant — OAuth 認可コードが無効、期限切れ、または既に使用されています: VS Code MCP サーバーを再接続して再認可してください。
- invalid_target — OAuth リソースがこの MCP サーバーと一致しません: https://xmemo.dev/mcp を使用して再接続してください。
- 403 insufficient_scope — グラントに memory:read が含まれていません: 必要なスコープを承認して再接続してください。

## 更新と削除

GitHub Copilot のメンテナンス手順：

- 更新: 構成を更新した後、VS Code ウィンドウをリロードします。
- 削除: mcp.json から xmemo ブロックを削除し、VS Code ウィンドウをリロードします。

## VS Code / GitHub Copilot

OAuth client: keep only the hosted server URL in mcp.json; first tool call opens browser OAuth, so no XMEMO_KEY or Authorization header belongs in this file.

```
{
  "servers": {
    "XMemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp"
    }
  }
}
```
