背景:MCP Serverの活用を理解するため、身近にあるMaqueenをMCP Serverを介してLLMから制御できるようにしてみる
アプローチ:いろんなLLMがあるが、ClaudeからMCP Serverに接続する
結論:コードの大半をLLMに書いてもらったが、なんとかClaude desktop(LLM Client)からMaqueen用のMCP Serverを呼び出すまでは動いた
詳細:
アーキテクチャは以下(かなりいびつかも)

MCP Clientについて
PC側ではMCP Clientを動かしているが、Node.jsが入っていないので、WSL上でPython版Proxyで代用した
ソースは以下:
Maqueen/src/mcp_server/proxy.py at main · foobarbazfred/Maqueen · GitHub
MCP Serverについて
RaspberryPi上でコンテナを使ってPython3.12.11を導入して、その中でMCP Serverを走らせた。MCP ServerからMQTT MessageをPublishするとMaqueenのコントローラにメッセージが届けられる予定。(そこまでは未実施)
コンテナに入ってからコマンドを実行(設定ファイルを使って宣言的に環境構築すべきで、コンテナに入ってあれこれコマンドを打って構築するのは、Dockerのポリシーに反するとは思う。。が試行錯誤中なので)
apt-get update ; apt-get --yes install curl curl -LsSf https://astral.sh/uv/install.sh | sh source ~/.local/bin/env uv init mcp-server ; cd mcp-server ; uv add "mcp[cli]" ; uv add fastapi ; uv add paho-mqtt cat > server.py uv run server.py
ソースは以下:
Maqueen/src/mcp_server/server.py at main · foobarbazfred/Maqueen · GitHub
file: claude_desktop_config.json を使って、Claude desktopにProxyプログラムを登録する。
{
"mcpServers": {
"maqueen": {
"command": "wsl",
"args": [
"~/tech/MCP/maqueen/server/proxy/proxy.py",
"http://192.168.10.100:1885/messages/"
]
}
}
}ClaudeのWindowsアプリから制御している画面

LLMに大半コードを書いてもらい、デバッグもやってもらった。一日もかからず、ClaudeからMCP Serverの呼び出しまで枠組みのレベルだが作ることができた。自分はほとんど何もしていない。だからコードを作ったものの、どういう仕組みで動いているのか全く理解できていない。とくにasyncが入っているのでまたやっかいだ。LLMに質問したらまぁ詳しく説明はしてくれるのだけど。。やっぱり地に足ついていない感じが強い。いままでいろんなPythonプログラムを書いてきたけど、これほど分かってないコードを書いたのは初めてだ(書いたというより、LLMが提示するコードをCopy&Pasteして貼り付けた操作だけの一日だった)
LLMに聞くと教えてくれる。考える必要がない。今までだったら昔のコードを探したり、ググってサンプルコードを手に入れてそこから修正を書けるのだけど、LLMだと最初から適用可能なコードを提示してくる。。ああぁぁ・・この楽さ加減から抜け出せない。。
■追記
ClaudeのLLMは無料だと利用制限がかかる。Claudeに相談しながらコードを作っていたら、本日の上限に到達してしまった。有料サービスはProだと月$20で、日本円にすると、2,950 JPY になるそうだ。これはちょっと高い。Google Geminiの無料枠+αか、AWSのBedrockの従量制の方がましではないか。。。
最低限、Claude desktopの対話でMCP Server内の関数が呼び出される所までは確認できたので、次はLLMのAPIと組み合わせると、MCP Serverがどう動かせるのかを確認したい。