on-demand-books MCP Server
An MCP (Model Context Protocol) server that
helps AI agents find the perfect personalized puzzle book gift from a catalog of
100,853 customized books available on the
On-Demand-Books Shopify store.
Add this server to any MCP-compatible AI agent (Claude Desktop, opencode, etc.)
and your agent will be able to search for books by the recipient's first name
and hand the buyer a direct Shopify purchase link.
Demo
[on-demand-books MCP demo]
Tools provided
Live endpoint
Hosted on Fermyon Cloud as a Spin + WebAssembly
component built with the wasmcp toolkit.
Add to your MCP client
Claude Desktop / Claude Code (claude_desktop_config.json)
opencode (opencode.json)
Other MCP clients
Point any MCP client that supports the Streamable HTTP transport at the
live endpoint above. The server follows the MCP 2025-11-25 spec.
Example agent usage
User: I need a birthday gift for my niece Susan. She likes puzzles.
Agent calls search_books({ "name": "Susan" }) and replies:
Great news — there are 9 personalized puzzle books for Susan, including
"Fun Mazes for Susan — Easy to Medium" and "Fun Name Sudokus for Susan —
Hard to Insane". Here's a direct link to the first one:
https://on-demand-books.com/products/vz5ygw — add it to your cart and
check out on Shopify.
Build & run locally
Smoke test with curl:
Deploy
Implementation
This component uses the capability pattern from wasmcp, implementing just
two methods from the tools-capability interface:
list_tools() — declares the three tools above.
call_tool() — dispatches to the right tool handler and returns the result.
The wasmcp compose CLI wraps the component with the tools-middleware that
handles MCP protocol translation, request delegation, and response formatting.
Outbound HTTP to the search API uses the WASI HTTP outgoing-handler interface
(not raw sockets) so the component runs correctly on Fermyon Cloud.
See src/lib.rs for the full implementation.
Architecture