💨
RustでMCPを作ろうとしたが...
RustでMCPを作ろうとした
MCPサーバーを作ろうと思い。
MCP公式のライブラリ rmcpを使い作成しようとした。
現状の公式版は扱いづらいため結局やめてしまった。
現状の公式配布バージョン
rmcp = { version = "0.1.5", features = ["server", "macros"] }
何が具体的に扱いづらかったかというと。
サンプルには属性マクロで設定する方法が書かれていた。
だが 0.1.5 だとtool_box!( … ); しかなく、IDEが警告を出してくる。
それで諦めた。
現在開発中のバージョンがリリースされてから作ってみようと思います。
一応AIの回答載せとく
属性マクロ #[tool_box] も、キーワード付きの DSL 形式 (@impl …) もありません。
あるのは 関数呼び出し型 の `tool_box!( … );` だけですが、これも 公開ドキュメントがほぼ無く、ルールが複雑 で
IDE が誤解釈しやすく(pin_add などが内部で展開される)
小さな記述ミスで “unexpected token” が頻発します。
---
どうして 0.1.5 のマクロは難しいのか
• tool_box! の 第一トークンに固定キーワードが無い
(内部で pin_add / impl_box など多数の分岐をマッチ)
• そのため IDE や rust-analyzer は 「期待しないトークン」 と誤検知しやすい
• 公式 README も 0.2 系の記法で書き直され、0.1.5 向けの完全な例が残っていない
---
まとめ
• 最短経路は develop ブランチ(0.2.x α)の #[tool_box] へ切り替える
developブランチはバグがあるといやだし。
諦めました。
Discussion