Search / io.github.gmlewis/on-demand-books
On-Demand-Books
R0· no sign-inFind personalized puzzle books by first name from a 100,000+ title Shopify catalog.
v0.2.0 · active · repository · descriptor JSON · versions
Search / io.github.gmlewis/on-demand-books
R0· no sign-inFind personalized puzzle books by first name from a 100,000+ title Shopify catalog.
v0.2.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"on-demand-books": {
"type": "http",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}claude mcp add --transport http on-demand-books https://on-demand-books-dq2yvpdh.fermyon.app/[mcp_servers.on-demand-books]
url = "https://on-demand-books-dq2yvpdh.fermyon.app/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"on-demand-books": {
"type": "remote",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/",
"enabled": true
}
}
}{
"mcpServers": {
"on-demand-books": {
"type": "http",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=on-demand-books&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vb24tZGVtYW5kLWJvb2tzLWRxMnl2cGRoLmZlcm15b24uYXBwLyJ9"
}{
"servers": {
"on-demand-books": {
"type": "http",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}{
"mcpServers": {
"on-demand-books": {
"httpUrl": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}extensions:
"on-demand-books":
enabled: true
name: "on-demand-books"
type: streamable_http
uri: "https://on-demand-books-dq2yvpdh.fermyon.app/"
timeout: 300
protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: suggest_names (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_book (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_books (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)tools.token_costabout 545 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +reachable +uptime-100% ~updated-104d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://on-demand-books-dq2yvpdh.fermyon.app/ streamable-http | none | yes | 100% | 295 ms | 2025-03-26 | 2026-10-20 |
get_book | Re-resolve a single book's purchase URL, cover image, and ISBN from its Shopify product handle. Use this to refresh or re-reference a book across turns without re-running the full name search. |
search_books | Search for personalized puzzle books by first name. Returns matching books with direct Shopify purchase links, cover images, and ISBNs. A typical exact match returns 9 books across 3 puzzle types (mazes, name-sudokus, word searches) and 3 difficulty levels. When no exact match exists, returns similarly-named books. Use this whenever a user is shopping for a personalized gift and knows the recipient's first name. |
suggest_names | Suggest first names for which personalized puzzle books are likely available. Use this when a user is unsure of a spelling, wants gift-recipient ideas, or only has part of a name. Returns popular available names, optionally filtered by a case-insensitive prefix. To confirm a specific name has matching books, follow up with `search_books`. |
Schemas: list_tools.
{
"name": "io.github.gmlewis/on-demand-books",
"title": "On-Demand-Books",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/",
"type": "streamable-http"
}
],
"version": "0.2.0",
"repository": {
"url": "https://github.com/gmlewis/on-demand-books-mcp",
"source": "github"
},
"description": "Find personalized puzzle books by first name from a 100,000+ title Shopify catalog."
}