Claude Code で Wassette (wasm で動かすMCPサーバー)を使ってみた
Claude Code で Wassette を使ってみた
はじめに
以下の記事を試して、Claude Code でも実行して、迷ったところメモです。
Wassette とは
Wassette は WebAssembly コンポーネントを MCP サーバーとして実行できるツールです。セキュリティを重視した設計で、サンドボックス環境でツールを実行できます。
全体の手順
Wassette を使ったカスタムツール開発の流れは以下の通りです:
- コンポーネントを開発・ビルド - Rust 等で Wasm コンポーネントを作成
- コンポーネントをパッケージとして管理 - GitHub Container Registry に配置
- Wassette 環境の構築 - MCP サーバーとして Wassette をセットアップ
- コンポーネントをロードして使用 - Wassette から呼び出し可能にする
1. コンポーネントを開発・ビルド
詳細は以下の記事を参照してください:
Rust で Wasm コンポーネントを作成し、WIT でインターフェースを定義します。
2. コンポーネントをパッケージとして管理
GitHub Container Registry (GHCR) に Wasm コンポーネントをプッシュします。
詳細は上記の Zenn 記事を参照してください。
3. Wassette 環境の構築
3-1. Wassette のインストール (Mac)
cargo とか rust のエコシステムとは別に wasm ランタイムを組み込んだ wassette cli を使います。
wassette の中で、Rust 等で作った component をロードして mcp サーバーのツールとして利用できるようにしてます。
brew install wassette
3-2. Claude Code に MCP サーバーとして登録
claude mcp add -- wassette wassette serve --stdio
Codex, Gemini CLI, Cursor 等も行けそうです
参考
3-3. 接続確認
claude mcp list
# wassette: wassette serve --stdio - ✓ Connected
4. コンポーネントをロードして使用
4-1. コンポーネントのロード
Claude Code を起動して、以下のように Wasm コンポーネントをロードします:
claude
Claude Code 内で:
以下をロードして
oci://ghcr.io/<YOUR_GITHUB_USERNAME>/charcount:0.1.0
4-2. 使ってみた
Claude Code から文字数カウントツールを呼び出してみました。
英語の文字列
> 次の文字列の文字数を教えて wassetteで
"hello wasm mcp"
"hello wasm mcp"の文字数は14文字です。
日本語の文字列
> 次の文字列の文字数を教えて wassetteで
"ほげ"
"ほげ"の文字数は2文字です。
感想
wassette 完全に理解しました。安全な感じで良さそうです。
GitHub の Package としても管理できるの良さそうです。
用語補足
よくわかってない単語がそこそこ出てきたので整理しておきます。
WIT (WebAssembly Interface Types)
WebAssembly コンポーネント間のインターフェースを定義する言語です。関数のシグネチャやデータ型を.witファイルで記述します。
wkg (WebAssembly Package Manager)
WebAssembly コンポーネントのパッケージマネージャーです。
-
ghcr.io(GitHub Container Registry)に Wasm コンポーネントを配置できます - Docker でログインしていれば OCI レジストリとして
wkgも同じ認証を使えます
Rust 開発ツール
- cargo: Rust のビルドツール・パッケージマネージャー
- rustup: Rust のツールチェーン管理ツール
- cargo component: Wasm コンポーネントをビルドするための cargo サブコマンド
bindings
WIT ファイルから各言語向けのコードを自動生成する仕組みです。Rust や Python などで Wasm コンポーネントを呼び出すためのインターフェースコードが生成されます。
PAT (Personal Access Token)
GitHub のパッケージレジストリにアクセスするための認証トークンです。wkgで GHCR にプッシュする際に必要です。
classic トークンを使用しました。
Discussion