1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MCPクライアント】Zedエディターで自作したローカルMCPサーバーを呼び出す

1
Posted at

はじめに

僕は普段からZedエディターを好んで使用しているのですが、自作したMCPサーバーを呼び出す手順がイマイチわかりにくかったので、この記事を書くことにしました。

動作環境

Mac-mini : M2 16GB
Python : 3.12.3
Ollama : 0.9.6
Zed : 0.193.3


パッケージ管理にはRyeを使っています。pipでも大丈夫です。
Rye==0.44.0

また、今回はローカルMCPサーバーをFastAPI-MCPにて作成しました。
fastapi==0.116.1
fastapi-mcp==0.3.6(fastapi-mcpはpython3.10以上が必須です)
mcp-proxy==0.8.2

rye add fastapi fastapi-mcp mcp-proxy

設定手順

スクリーンショット 2025-07-12 9.52.36.png

スクリーンショット 2025-07-12 9.45.27.png

  1. エディター画面の右下にあるキラキラマークを押下します
    a. エディターの右半分にパネルが出現します
  2. 出現したパネルの右上にある3点マーク→「settings」を押下します
  3. 「Add Custom Server」を押下します
  4. カスタムしたMCPサーバーを設定するためのモーダルが出現します

このモーダルには以下の情報を入力し、MCPサーバーを追加します。
このとき、MCPサーバーを起動していないと追加が失敗する点に注意してください。

また、mcp-proxyのパスはフルパスである必要があります。
which mcp-proxyでフルパスを探せますが、もしnot foundになる場合は一度Zedを再起動してください。

settings.json
{
  /// The name of your MCP server
  "some-mcp-server": {  /// <-MCPサーバー名
    "command": {
      /// The path to the executable
      "path": "/Users/~~/~~/.venv/bin/mcp-proxy",  /// `mcp-proxy`のフルパスを指定
      /// The arguments to pass to the executable
      "args": ["http://localhost:8000/mcp"],  /// ローカルMCPサーバーのURLを指定
      /// The environment variables to set for the executable
      "env": {}
    }
  }
}

MCPサーバーの連携が完了すると、下画像のように作成したMCPサーバー名の左に緑マークがつきます。
あとは右側のパネル上部にある「←」ボタンを押下して、はじめのLLMチャット画面に戻ります。
スクリーンショット 2025-07-12 10.33.44.png

ZedをMCPクライアントとしてMCPサーバーと連携する

今回はOllamaを使っており、その中でもqwen3:4bを選択しています。
お好きなモデルを選択して問題ないですが、reasoningモデルが相性は良いと思います。
スクリーンショット 2025-07-12 10.51.08.png
Zed上で対話を実施したところ、MCPを利用する必要があるとLLMが判断しました。もちろん許可します(今回はそれが目的なので)。


スクリーンショット 2025-07-12 10.57.57.png
そうすると、今回FastAPI-MCPによって作成した自作MCPサーバーにLLMがアクセスし、適切な情報を取得してくれました。

※ もしMCPサーバーが起動しているのに、うまく呼び出してくれない場合は以下を試してみてください

  • LLMを変更する
    • 僕の場合、qwen3:4bだとうまくいきましたが、gemma3:12bだとMCPに情報を連携してくれませんでした
  • MCPサーバーを再起動
    • MCPサーバーのパスを設定する際に起動していたサーバーを、設定完了後に一度切ってみて、その後にもう一度立ち上げてみてください
  • Zedを再起動
    • これが手っ取り早いと思います
    • ただ、Zedを一度落とすとMCPサーバーがオフになるので(設定は残っている)、再びオンにしてください

おわりに

MCPサーバーを使用する一番のメリットは、LLMとの自然言語による対話でAPIのレスポンスを使用できる点だと思います。
LLMにAPIのURLを渡すことで、LLMがそのURLを叩いてレスポンスを取得することも当然可能です。しかしMCPサーバーを噛ませることで、そのURLをわざわざ指定する必要がなくなり、自然言語による曖昧な検索ができるというわけですね。

使用するLLMの性能次第では、RAGを実装するよりも情報検索が簡単に実装できそうなMCPサーバーですが、長期的なコストの面を考慮したり、レスポンスの速度、検索精度の可視化(=スコア化)などの視点から考えると、RAGが全てMCPに置き換わるのかはわからないですね。どうなんでしょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?