toio-mcpを作りました
toio-mcpとは?
toio-mcpはtoio 用の MCP サーバーです。
toio.pyというPythonからtoio コアキューブを制御するためのライブラリと、MCP Python SDKを眺めているうちに、この両者をPPAP(通じる?)したくなり、AIアシスタントの助けを借りながら実装してみました。
出来たものはこちら。
動作の様子
この動画は愛用しているVS Code上のRoo Clineにtoio-mcpを登録して使っているところです。ちょっと見えにくいですが自然言語でtoioを動かすことが出来ているのが分かります。
ハマったところ
ほぼRoo Cline(モデルはClaude 3.7 Sonnet)に指示して作らせた要件定義に従って実装させたのですが、pyproject.toml
に指定したMCP Python SDKのバージョンが古かったようで、Claude Desktopから使ったときにJSONパースエラーが発生していました。
このままでも期待通りに動きはしていたのですが何だか気持ち悪い。
この問題がMCP Python SDKのバージョンの問題と分かるまでにMCP Inspectorをはじめいくつかの手法を使ったおかげで、MCPサーバーのデバッグに詳しくなりました。怪我の功名というやつですね。
結局のところpyproject.toml
に"mcp[cli]"
と記述していた部分を"mcp[cli]>=1.7.1"
にしたら解決出来ました。
まだちょっとおかしいところが...
get_magnetic_sensor
を呼び出したときに得られる値がおかしいです。早く直したい。
MCP開発はいいぞ
今回ハードウェアとインタラクションするためのMCPサーバーを初めて作ってみました。
即効性のある新価値は既存のシステムの組み合わせによって生まれるので(異論も認めます)、それを簡単に作って動かして試せるのはMCPの良いところだと思います。
今年は色々なアプリやサービスのMCPサーバーを作って、様々なシステムの組み合わせが生み出す価値を享受していきたいです。
調子に乗って痛い目に合わないよう、サンドボックスの用意を忘れずに。
Discussion