On-Demand-Books について
On-Demand-Booksは、ストアのカタログから名入れパズル本を探すMCPサーバーです。ギフトを選ぶ人が受取人の名前で検索し、Shopifyの購入リンクを取得できます。
主な機能
- 01名前で本を検索
- 02購入可能な名前を提案
- 03本の購入リンクを取得
- 04表紙とISBNを表示
- 05完全一致と類似名を区別
活用シーン
- 01名入れの誕生日プレゼント探し
- 02表記が不確かな場合の名前候補探し
- 03本の直接購入リンクの取得
MCP 対応
MCPクライアント向けに、本の検索、名前の提案、購入リンクの照会をツールとして提供します。Streamable HTTPエンドポイントから利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://on-demand-books-dq2yvpdh.fermyon.app/claude mcp add --transport http on-demand-books https://on-demand-books-dq2yvpdh.fermyon.app/{"mcpServers":{"on-demand-books":{"type":"http","url":"https://on-demand-books-dq2yvpdh.fermyon.app/"}}}Cursor で開く{"servers":{"on-demand-books":{"type":"http","url":"https://on-demand-books-dq2yvpdh.fermyon.app/"}}}VS Code で開く{"mcpServers":{"on-demand-books":{"type":"http","url":"https://on-demand-books-dq2yvpdh.fermyon.app/"}}}{"mcpServers":{"on-demand-books":{"serverUrl":"https://on-demand-books-dq2yvpdh.fermyon.app/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | パーソナライズされたパズルブックを検索する名(例:'Susan'、'Bob')。大文字と小文字は区別されません。アルファベット以外の文字は除去されます。 |
| utm_source | string | いいえ | マーケティングのアトリビューションに使う任意の UTM ソースタグ(例:'mcp.so'、'claude'、'hn')。すべての Shopify 商品 URL に ?utm_source=<value> として追加され、販売につながったチャネルを販売者が追跡できます。デフォルトは 'mcp' です。 |
詳細
on-demand-books MCP サーバー
AI エージェントが、On-Demand-Books Shopify storeで販売されている100,853 冊のカスタマイズ書籍のカタログから、相手にぴったりのパーソナライズされたパズルブックギフトを見つけるのに役立つ、MCP(Model Context Protocol) サーバーです。
このサーバーをMCP対応のAIエージェント(Claude Desktop、opencodeなど)に追加すると、エージェントが贈る相手のファーストネームで書籍を検索し、購入者にShopifyで直接購入できるリンクを案内できるようになります。
デモ

提供するツール
| ツール | 目的 |
|---|---|
search_books | 10万冊以上のパーソナライズカタログをファーストネームで検索します。一致する書籍(迷路、名前の数独、難易度3段階のワードサーチ)を最大9冊返し、Shopifyの直接購入URL、表紙画像、ISBNも提供します。完全一致と、名前が似ている書籍を区別します。 |
suggest_names | 書籍が用意されている人気のファーストネームを提案します。必要に応じて、接頭辞で絞り込めます。購入者がスペルに迷っている場合や、ギフトを贈る相手の名前を考えたい場合に使用します。 |
get_book | 商品ハンドル(search_booksから返されます)を使って、1冊の書籍のShopify購入URLを再取得します。 |
ライブエンドポイント
https://on-demand-books-dq2yvpdh.fermyon.app/
Fermyon Cloudでホストされており、wasmcpツールキットでビルドされたSpin + WebAssemblyコンポーネントとして動作します。
MCPクライアントに追加する
Claude Desktop / Claude Code(claude_desktop_config.json)
{
"mcpServers": {
"on-demand-books": {
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}
opencode(opencode.json)
{
"mcp": {
"on-demand-books": {
"type": "http",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}
その他のMCPクライアント
Streamable HTTPトランスポートをサポートする任意のMCPクライアントで、上記のライブエンドポイントを指定してください。このサーバーはMCP 2025-11-25仕様に準拠しています。
エージェントの使用例
ユーザー: 姪のSusanへの誕生日プレゼントを探しています。パズルが好きです。
エージェントは
search_books({ "name": "Susan" })を呼び出し、次のように回答します。朗報です。Susan向けのパーソナライズされたパズルブックが9冊あります。「Fun Mazes for Susan — Easy to Medium」や「Fun Name Sudokus for Susan — Hard to Insane」などです。最初の1冊を直接購入できるリンクはこちらです。 https://on-demand-books.com/products/vz5ygw — カートに追加して、Shopifyで購入手続きを進めてください。
ローカルでビルドして実行する
make setup # Install wasm32-wasip2 target
make build # Output: target/wasm32-wasip2/release/on_demand_books.wasm
wasmcp compose server target/wasm32-wasip2/release/on_demand_books.wasm -o server.wasm --force
spin up --listen 127.0.0.1:8765 # http://127.0.0.1:8765/
curlでスモークテストを実行します。
curl -X POST http://127.0.0.1:8765 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
curl -X POST http://127.0.0.1:8765 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
curl -X POST http://127.0.0.1:8765 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_books","arguments":{"name":"susan"}}}'
デプロイ
spin deploy
実装
このコンポーネントはwasmcpのケイパビリティパターンを使用し、tools-capabilityインターフェースの2つのメソッドだけを実装しています。
list_tools()— 上記の3つのツールを宣言します。call_tool()— 適切なツールハンドラーに処理を振り分け、結果を返します。
wasmcp compose CLIは、MCPプロトコルの変換、リクエストの委譲、レスポンスのフォーマットを処理するtools-middlewareでコンポーネントをラップします。
検索APIへの送信HTTPには、(生のソケットではなく)WASI HTTPのoutgoing-handlerインターフェースを使用するため、コンポーネントはFermyon Cloud上で正しく実行されます。
実装の全体については、src/lib.rsを参照してください。
アーキテクチャ
MCP client (Claude / opencode / ...)
│ HTTPS (MCP Streamable HTTP transport)
▼
Fermyon Cloud → server.wasm (composed by wasmcp)
│
├─ transport.wasm (HTTP transport, MCP framing)
├─ tools_middleware.wasm (MCP protocol → tool dispatch)
└─ on_demand_books.wasm ← THIS COMPONENT
│
│ WASI HTTP outgoing-handler
▼
https://on-demand-books-com-kzfxdscz.fermyon.app/search/{name}
│
▼ returns book metadata
https://on-demand-books.com/products/{handle} (Shopify store)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。