2025年9月19日金曜日

emacs の copilot-chat.el で MCP サーバと連携する

emacs の copilot-chat.el で MCP サーバと連携する

概要

まだテスト段階ですが使えるようなので使ってみました
モデルは gpt4-1 にしています

emacs はバージョン30以上が必要です

環境

  • Ubuntu 24.04
  • emacs 30.1
    • copilot-chat.el 20250909.1505
    • mcp.el 20250829.1241

設定

copilo-chat 起動後に設定が読み込まれその後 mcp-hub-start-all-server を実行すると mcp サーバが起動するようにします

MCP にアクセスを許可するディレクトリ (/home/devops) はシンボリックリンクだとうまく動作しないので実フォルダを指定しましょう

(use-package
 mcp
 :ensure t
 :after copilot-chat
 :custom
 (mcp-hub-servers
  '(("filesystem" .
     (:command
      "npx"
      :args
      ("-y"
       "@modelcontextprotocol/server-filesystem"
       "/home/devops")))))
 :config (require 'mcp-hub)
 :hook (after-init . mcp-hub-start-all-server))

MCPサーバ起動

  • copilot-chat
  • mcp-hub-all-start-server
Started server filesystem (/1/1)

となれば起動完了です
ps aux | grep npx などでプロセスを確認しても OK です

copilot-chat.el に MCP サーバ登録

  • copilot-chat-set-mcp-servers

上記を実行するとまずは追加する MCP サーバを選択するミニバッファが起動します
今回は1つしかないですが複数ある場合はその分を数字を教えて有効にします
All でも OK です

emacs 上にまだ copilot-chat インスタンスが起動していない場合は新規で作成するか既存のインスタンスを選択するミニバッファが表示されます

自分が試してみた感じ新規でインスタンスを作成しないと MCP サーバを使ってくれなかったので新規で作成しましょう

動作確認

copilot-chat のバッファで指示してみましょう   ちゃんと結果が返ってくることを確認します

MCP 初回実行時はツールを実行する確認があるので yes で許可します

最後に

emacs + copilot-chat.el + mcp を試してみました
ちゃんと Copilot Chat バッファで命令した際に MCP を使うことが確認できました
公式だとモデルは Claude のほうが良いようなのですが gpt4-1 でもちゃんと動作しました

今回は copilot-chat 起動 -> MCP サーバ起動 -> MCP サーバを copilot-chat を連携という感じの3段階で設定したので面倒な感じはしますが .emacs に自動起動する設定を書けばすべて一発で起動することもできます

MCP と関係はないですがまだ vscode の Github Copilot Chat の拡張にあるエージェントモードには対応していないようです (参考サイトの issues 参照)

参考サイト

0 件のコメント:

コメントを投稿