MCP-to-OpenAPI Proxy Serverの使用
MCP-to-OpenAPI Proxy Server
以前の記事では、特定のLLMのモデルしか使用できなかった。それ以外のモデルを使用したいため、環境を構築する。
ほとんど、リファレンスを参考にした。
Reference
Open WebUIとMCPOでローカルLLMにMCPツールを使ってもらう
構成
構成を簡単に表現する。すべて同じホスト上に組み立てる。
ホスト(クライアント) <=> Open webui <=> MCPO => MCPサーバー
0. ファイアウォール設定
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=11434/tcp # for ollama
#firewall-cmd --permanent --zone=public --add-port=8080/tcp # for open-webui
firewall-cmd --reload
Open WebUI->MCPO経由の8000は、ポートを開けなくても疎通する(事実)。- 外部の物理IPからアクセスしたときは、Open WebUIまでしか辿りつかない。
1. MCPサーバーのインストール
MCPサーバーは、以前の記事にて、インストールを行う。もちろん他の方法もあるが、実績があるため、同じものを使用する。
そのため、本稿では説明をスキップ。
2. MCPOサーバーのインストール
MCPOサーバーとは?
MCPOは、MCP-to-OpenAPI Proxyのこと。MCPOサーバーであるmcpoについて、
Mcpo is a simple proxy server that bridges the gap between MCP (Model Context Protocol) servers and OpenAPI, enabling seamless integration with LLM agents and applications that expect standard RESTful APIs.
プロクシに仲介してもらわないと、MCPサーバーのツールがうまく動作しない。
References
- https://github.com/open-webui/mcpo
- https://juniarto-samsudin.medium.com/building-custom-mcp-tool-and-integrate-it-to-your-self-hosted-llm-through-openwebui-part-3-3268c4fcac6e
MCPOサーバーのインストールコマンド
参考先のコマンドをほとんど参考にしている。
mkdir -p ~/svc/mcpo; cd ~/svc/mcpo
python3 -m venv .venv && source .venv/bin/activate && pip install -U pip
pip install mcpo ; pip install -U mcpo
MCPOサーバー起動
MCPサーバーのコンフィグを指定する。
mcpo --port 8000 --host 0.0.0.0 --config /tmp/mcpconfig.json
3. Open WebUI
プロンプト入力画面として、Open WebUIを採用する。
できる限りGUIを避けたかった、コンテナの使用を避けたいが、シンプルな構成(構築など必要が無いというところ)で、構成を作れると考え、採用。
# コンテナを使ってしまうと、何が起きてるか追いにくくなる、コンテナ依存で、オーソドックスな手法が使えなくなる可能性があるため、とても嫌う。
以下のコマンドを実行して、Open WebUIを、動作させる。もちろんCPU onlyモードのため、環境に合わせる。
podman stop open-webui
podman rm open-webui
podman run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
References
起動と設定手順/項目
localhost:8080にアクセス- get started、新規登録。適当に入力。おそらく外部のデータベースとは繋がっていないように見える(見えるだけ)。
- Ollamaで使用するモデルをダウンロードする。
- ホストのollamaを使用するようにしたため、
ollama pull gemma3:latestなどで、pullする。
- ホストのollamaを使用するようにしたため、
- MCPツールの設定
- ユーザーの
settingsからtoolsを選択 - ”+”をクリックしてサーバ追加
- tool名が
fetchなら、http://localhost:8000/fetchを入力。 - 更新ボタンを押して、問題ないか確認できる。
- 使用するツール分だけ追加する。
- tool名が
- ユーザーの
その他設定
ctx_numを大きくすると良いのかも。
確認
以下の設定が済んだら、確認する。
- MCPサーバー
- MCPOサーバー
- Open WebUI
以下のプロンプトなどで、確認できる。
access <URL>, and summarize it.
サーバー構成確認
- ホストから、Open webuiにアクセスする。プロンプトを入力する。
- Ollamaが使用される。(このOllamaはどこ? => ホストのOllama)
- 必要に応じて、Ollamaのモデルが、エージェント経由で、MCPOのAPIを叩く。
- MCPサーバーのツールが動く。
- Open webuiに返す。
Ollamaのモデルを使って、基本的なMCPサーバーを操作することができるようになった。
◀︎ MCP Agentのインストール | Codexの使用 ▶︎