💨

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