MCP サーバーを作成する
MCP サーバーを作って、ローカル LLM 環境から MCP サーバーを呼び出してみる。
この長大なシステムを構築すると、以下の流れで 1+1 の結果を知ることができる。
MCP サーバーとは
Introduction - Model Context Protocol
MCP(Model Context Protocol) は LLM とツールをつなぐプロトコルである。
MCP サーバーは LLM の手足になる。
今回は整数と整数の足し算を行って返事する MCP サーバーを作成する。
Cline とは
Cline とは AI エージェントである。VSCode 向けの拡張機能として提供されており、Ollama と簡単に連携できる。
ローカル LLM 環境を構築する
LLM 環境がない場合、以下の記事でローカル LLM 環境を構築することができる。
Ollama に Gemma 3 をインストールする
今回は LLM にgemma3:27bを使うことにする。
docker-compose.ymlのあるディレクトリ上で、以下のコマンドを実行する。
1 2 3 4 | |
大容量のダウンロードになるので注意する。(17GB らしい)
VSCode に Cline をインストールする
VSCode の拡張機能のペインから Cline を検索し、インストールする。
MCP サーバーを作成する
Python で MCP サーバーを作成する。
1 2 | |
FastMCP というパッケージを使うと簡単に MCP サーバーを作成できる。
GitHub - jlowin/fastmcp: 🚀 The fast, Pythonic way to build MCP servers and clients
Python の仮想環境を作成し、FastMCP をインストールする。
1 2 3 | |
server.pyに MCP サーバーとしてのコードを書く。
| server.py | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
コードを書き終えたら以下のコマンドを実行して、サーバーを起動する。
1 | |
MCP サーバーを登録する
Cline の拡張機能から MCP サーバーを登録する。
以下のように VSCode の Cline のペインを選択し、Settingsを選択する。
以下のように API Configurationで設定を行う。
API ProviderにOllama、Modelに Gemma 3 を指定し、Doneのボタンを押下する。
もし日本語が好きなら、以下のようにGeneral SettingsにあるPreferred LanguageからJapanese - 日本語を設定することができる。
Note
ただし設定しても無視されることがある。
以下のように MCP Serversを選択し、Installedタブを選択する。
以下のようにConfigure MCP Serversを選択し、JSON を記述する。
| cline_mcp_settings.json | |
|---|---|
1 2 3 4 5 6 7 8 | |
LLM に 1+1 を計算させる
準備が整ったので、Cline の対話画面から以下のように指示を出す。
以下のように LLM の返答を確認し、問題なさそうであればApproveを選択する。
結果を確認する。
なんと 1+1 は 2 という結果を得ることができた。
学び
大切なのは 1+1 の結果ではなく、MCP サーバーを用意して LLM に好きなものを生やせるということである。
1+1 を計算する処理を書き換えれば対話でデータベースを更新するとか、バグを報告するとか、モーターを動かすとか、何でもできるのだ。
既にすごい人たちによって色んな MCP サーバーが開発されているから、それらを利用することもできる。
メモ
cline_mcp_settings.jsonの書き方は情報が少ないように感じた。
Cline 公式のドキュメントから 今回使った MCP サーバーへの転送プロトコルである Streamable HTTP に関して説明を見つけることができなかった。
MCP サーバーの設定については以下のページで説明されているが、載っているのは標準入出力を使ってローカルで転送する STDIO と HTTP でネットワーク越しに転送できるが古い方式の SSE だけである。
Configuring MCP Servers - Cline
しかし以下の Issue によると、Cline は Streamable HTTP に対応しているようである。
Cline does not work with StreamableHttpTransport based MCP servers · Issue #3315 · cline/cline
メモ 2
前回の記事でインストールしたgpt-oss:20bを使おうとしてもUnexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output.というエラーが出るので、今回はgemma3:27bをインストールすることにした。









