BacklogのMCP Serverが公開されたのでGitHub Copilotのエージェントモードで動かしてみた

こんにちは。Kaneyasuです。

nulabさんからBacklogのMCP Serverが公開されました。

https://github.com/nulab/backlog-mcp-server

現状私は開発におけるAIエージェントはGitHub Copilotのエージェントモードを使ってるのでこちらを使って試してみたところ、無事動作したので設定方法を共有します。

GitHub Copilotのエージェントモードとか、MCPがなんなのかは私より他の方の情報を見てもらった方がいいと思うので省きます。
本記事では設定方法のみ説明します。
説明は、Mac版のVSCodeであることご了承ください。

## VSCodeの設定

### settings.jsonを開く

歯車アイコンから`Settings`をクリックします。
![歯車アイコンからSettingsをクリック](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/8f48ff8e-a079-45f8-ad31-0b0e5e5201b6.png)

Settingsの画面で、`User`か`Workspace`を開いた状態で、検索窓で`mcp`と入力します。
MCPに関する設定が一番上に来るので、settings.jsonの編集リンクをクリックします。

![MCPのsettings.jsonの編集をクリック](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/1cf16b97-640a-46c1-987f-2e962dc5c565.png)

なお、MCPの設定は`Folder`だと出てきません。
したがって、GitHub CopilotにおけるMCPの設定をGitリポジトリレベルで制御することはできないと思います。

### settings.jsonの編集

[nulabさんのリポジトリ](https://github.com/nulab/backlog-mcp-server/blob/main/README.ja.md#%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B31-docker-%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)にあるMCPの設定サンプルを参考にsettings.jsonを編集します。

GitHub Copilotの場合は若干構造が違います。
`mcpServers`ではなく`mcp` > `servers`と変える必要があります。
`inputs`は取り急ぎ動かすだけなら空配列でいいようです。

こんな感じですね。

```json:settings.json
"mcp": {
    "inputs": [],
    "servers": {
        "backlog": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "BACKLOG_DOMAIN",
                "-e",
                "BACKLOG_API_KEY",
                "ghcr.io/nulab/backlog-mcp-server"
            ],
            "env": {
                "BACKLOG_DOMAIN": "your-domain.backlog.com",
                "BACKLOG_API_KEY": "your-api-key"
            }
        }
    }
},
```

私の場合は、既存のMCP Serverがあったので追記しました。

![settings.jsonにMCPの設定を追加](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/feb7a142-6cec-4342-852e-2d991a869dfd.png)

### MCP Serverの起動

設定を追記すると、その上に薄い文字でStartが出るのでそれをクリックします。

![MCP Serverの起動前](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/82186221-36ac-4f55-b379-82108bf165c5.png)

↓↓↓

![MCP Serverの起動後](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/f5ccdc6c-d89f-46ef-a8a6-cbf2b27c841f.png)

以上で設定は完了です。
GitHub CopilotのチャットをAgentモードにしてBacklogの操作をお願いすると、BacklogのMCP Serverが提供するツールを利用してくれるようになります。

![GitHub CopilotのチャットをAgentモードにする](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/bc04ccbe-f34e-47aa-8fc6-0be7d3cee3aa.png)

GitHub Copilotはツール実行の際に大体確認してくるようです。

![GitHub Copilotはツール実行](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1959433/0d298da2-c425-4a72-b933-b8d99c7e9265.png)

## copilot-instructions.mdによるカスタム命令

https://docs.github.com/ja/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot

`.github/copilot-instructions.md`を使ってカスタム命令もできることを確認しました。
以下のように、プロジェクトを指定することで、チャットの方では特に何も書かなくても特定のプロジェクトを操作してくれました。

```md:.github/copilot-instructions.md
# GitHub Copilot Instructions

## Backlog

- When operating Backlog, the target project is fixed to `プロジェクトキー`.
```

`.github/copilot-instructions.md`はGitリポジトリに含めることができるので、ここでBacklogプロジェクトを指定しておけば案件に関係ない操作を軽減することが可能だと思います。

## まとめ

私は今のところGitHub Copilotのエージェントモードを使いやすく感じているので、無事動いて嬉しいです。
`.github/copilot-instructions.md`と組み合わせることで快適なBacklogライフにつながると思います。

とはいえ、MCP・エージェント周りはプレビューだったりどんどん変わっていくものなので、この記事の内容もいつまで有効かはわかりません。
引き続きキャッチアップしていきましょう。