关于 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')。会以 ?utm_source=<value> 的形式附加到所有 Shopify 产品 URL,以便卖家追踪带来销售的渠道。默认为 'mcp'。 |
详细介绍
on-demand-books MCP 服务
一个 MCP(Model Context Protocol) 服务,可帮助 AI Agent 从 On-Demand-Books Shopify 商店的目录中找到完美的个性化益智书籍礼物。目录中有100,853 本定制书籍。
将此服务添加到任何兼容 MCP 的 AI Agent(Claude Desktop、opencode 等),你的 Agent 就能按收礼人的名字搜索书籍,并向购买者提供直接的 Shopify 购买链接。
演示

提供的工具
| 工具 | 用途 |
|---|---|
search_books | 按名字搜索包含 10 万多本个性化书籍的目录。最多返回 9 本匹配的书籍(迷宫、姓名数独,以及 3 种难度级别的单词搜索),并提供直接的 Shopify 购买 URL、封面图片和 ISBN。区分完全匹配和相似名字匹配。 |
suggest_names | 推荐有书籍可选的热门名字,也可按前缀筛选。适用于购买者不确定拼写,或想获取礼物收件人名字灵感的情况。 |
get_book | 根据产品 handle(由 search_books 返回)重新解析单本书籍的 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 规范。
Agent 使用示例
用户: 我想给侄女 Susan 买一份生日礼物。她喜欢益智游戏。
Agent 调用
search_books({ "name": "Susan" })并回复:好消息——有 9 本为 Susan 定制的益智书籍,包括《Susan 趣味迷宫——从简单到中等》和《Susan 趣味姓名数独——从困难到极难》。这是第一本的直接链接: 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 接口中的两个方法:
list_tools()— 声明上述三个工具。call_tool()— 将调用分发给相应的工具处理程序并返回结果。
wasmcp compose CLI 会使用 tools-middleware 封装该组件,负责 MCP 协议转换、请求委派和响应格式化。
搜索 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。