🔄

【解決済】自作MCPサーバーがGitHub Copilotで更新されない時の対処法

に公開

はじめに

こんにちは或いはこんばんは。Ryuzakiです。

皆さん自作のMCPサーバーってどれぐらい利用されておられますか?

自分は前回の記事でも触れましたが、最近はAIとのやり取りをより円滑にしたり、アウトプットの品質を高める目的でリンター検証やフォーマット実行などの特定の用途に特化したMCPサーバーを量産してたりしています。MCP使わないと、AIエージェントがJestコマンドを実行しただけで満足しちゃったり、リンターエラーは無視しちゃったりするんですよね…

TypeScriptを使ったMCPサーバーの作成方法に興味がある場合は、前回の記事をご参照ください。

https://zenn.dev/ryuzaki/articles/4940746cf52706

ただ、GitHub Copilotで自作MCPサーバーを使ってると、ある問題に遭遇しました。今回はその問題と解消方法を紹介したいと思います。

自作MCPサーバーを利用する際に発生する問題

MCPサーバーを自作する場合は、AIエージェントの使い方を見て、各ツールを調整したり、ツールを拡充させたりすることがあると思います。

ただ、GitHub Copilotとやり取りをしながらチューニングしようとしても、GitHub Copilotが下記のような挙動をし、変更内容が全然取り込まれない問題に遭遇しました。

  • 新しいツールを追加しても使ってもらえない
  • 既存ツールの引数を変更したのに、古い引数の設定で呼び出している
  • ツール名を変更したのに、古いツール名で呼び出している

最初は自分の実装に問題があるのかと思って、コードを何度も見直したり、設定ファイルを確認したりしていたのですが、原因は全然違うところにありました。

自作MCPサーバーの変更内容が取り込まれない原因

原因1:初回利用時のキャッシュ

GitHub Copilotに初めて利用するMCPサーバーを設定した際には、対象MCPサーバーが有するツールの情報がキャッシュされます。そのため、後からツールを追加したり、既存ツールの仕様を変更したりしても、キャッシュされた古い情報が参照され続けてしまいます。

原因2:MCPサーバーの継続起動

これが最も重要な原因でした。GitHub Copilotは各ツール呼び出しのたびにMCPサーバーの起動と停止を繰り返すのではなく、ツールを呼び出した後も一度起動したMCPサーバーをしばらく起動させ続けます。

そのため、古いバージョンのコードが動き続けてしまい、自作MCPサーバーのコードを修正してもその内容が反映されなかったわけです。

勝手にツールを呼び出すたびにMCPサーバーを新たに起動させていると思い込んでいたため、この仕組みに気付くまで意外と時間がかかってしまいました…

解消方法

この問題の解決方法は明確で、対象のMCPサーバーを再起動するだけです。

GitHub CopilotのUIに「MCPサーバーの再起動」のような明示的なボタンがないため、少しわかりにくいのですが、MCPサーバーの再起動操作自体はすごく簡単です。

手順1:コマンドパレット経由での再起動

  1. コマンドパレットを開く

    • Windows/Linux: Ctrl + Shift + P
    • macOS: ⌘ + Shift + P
  2. 「MCP: List Servers」を選択


    コマンドパレットでMCP: List Serversを検索

  3. 更新対象のMCPサーバー名を選択


    更新したいMCPサーバーを選択

  4. 「Restart Server」を選択


    Restart Serverを選択してサーバーを再起動

手順2:設定ファイル経由での再起動

mcp.jsonでMCPサーバーの情報を管理している場合は、より簡単に再起動できます。

  1. VS Codeでmcp.jsonファイルを開く
  2. 各サーバー名の上部に表示されている「Restart」ボタンをクリック


mcp.jsonファイル内のRestartボタンをクリック

これだけで対象のMCPサーバーが再起動され、最新の実装内容が反映されます。

おわりに

今回は、GitHub CopilotでMCPサーバーの更新が反映されない問題とその解決方法について紹介しました。

最初はなぜ更新が反映されないのか原因がわからず、実装を疑ったり設定を見直したりしていましたが、単純にサーバーの再起動が必要だったという話でした。MCPは比較的新しい技術のため、こういった運用面での知見はまだあまり多くないと思うので、同じような問題に遭遇した方の参考になれば幸いです。

MCPサーバーを活用することで、AIエージェントとの連携がより効率的になり、開発体験も大幅に向上します。今後も様々なMCPサーバーを作成して、より良い開発環境を構築していきたいと思います。

ここまでお読みいただき、ありがとうございました。

Discussion