mcpField
O
On-Demand-Books

On-Demand-Books

リモート
gmlewis.github.ioゲーム・エンタメ016 週間前に更新
リポジトリ公式サイト

On-Demand-Books について

On-Demand-Booksは、ストアのカタログから名入れパズル本を探すMCPサーバーです。ギフトを選ぶ人が受取人の名前で検索し、Shopifyの購入リンクを取得できます。

主な機能

  1. 01名前で本を検索
  2. 02購入可能な名前を提案
  3. 03本の購入リンクを取得
  4. 04表紙とISBNを表示
  5. 05完全一致と類似名を区別

活用シーン

  1. 01名入れの誕生日プレゼント探し
  2. 02表記が不確かな場合の名前候補探し
  3. 03本の直接購入リンクの取得

MCP 対応

MCPクライアント向けに、本の検索、名前の提案、購入リンクの照会をツールとして提供します。Streamable HTTPエンドポイントから利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://on-demand-books-dq2yvpdh.fermyon.app/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

3
パラメーター型必須説明
namestringはいパーソナライズされたパズルブックを検索する名(例:'Susan'、'Bob')。大文字と小文字は区別されません。アルファベット以外の文字は除去されます。
utm_sourcestringいいえマーケティングのアトリビューションに使う任意の 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で直接購入できるリンクを案内できるようになります。

デモ

on-demand-books MCP デモ

提供するツール

ツール目的
search_books10万冊以上のパーソナライズカタログをファーストネームで検索します。一致する書籍(迷路、名前の数独、難易度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)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。