mcp-registry/io.github.gmlewis/on-demand-books · v0.1.7
Also listed as glama/gmlewis/on-demand-books
As of 2026-10-17 07:28 UTC, the Gmlewis On Demand Books MCP server is up with a Glimind reliability score of 92/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 4 outages in 90 days, with a median recovery of 4 minutes.
Find personalized puzzle books by first name from a 100,000+ title Shopify catalog.
Claude Code
claude mcp add --transport http gmlewis-on-demand-books-mcp-server https://on-demand-books-dq2yvpdh.fermyon.app/
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"gmlewis-on-demand-books-mcp-server": {
"type": "http",
"url": "https://on-demand-books-dq2yvpdh.fermyon.app/"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
3 of 3 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones.
1 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.
Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads.
Handshake + tools/list takes ~2,345 ms.
Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably.
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books/fixes
{
"name": "get_book",
"description": "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.",
"inputSchema": {
"type": "object",
"required": [
"handle"
],
"properties": {
"handle": {
"type": "string",
"description": "Shopify product handle (as returned in the `shopify_handle` field of a `search_books` result)."
},
"utm_source": {
"type": "string",
"description": "Optional UTM source tag for marketing attribution (e.g. 'mcp.so', 'claude', 'hn'). Appended as ?utm_source=<value> to the Shopify product URL. Defaults to 'mcp'."
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "On-Demand-Books: Get Book by Handle"
}{
"name": "search_books",
"description": "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.",
"inputSchema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "First name to search for personalized puzzle books (e.g. 'Susan', 'Bob'). Case-insensitive; non-letters are stripped."
},
"utm_source": {
"type": "string",
"description": "Optional UTM source tag for marketing attribution (e.g. 'mcp.so', 'claude', 'hn'). Appended as ?utm_source=<value> to all Shopify product URLs so the seller can track which channel drove the sale. Defaults to 'mcp'."
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "On-Demand-Books: Search Personalized Books"
}{
"name": "suggest_names",
"description": "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`.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Maximum number of suggestions to return (default 20, max 100)."
},
"prefix": {
"type": "string",
"description": "Optional name prefix to complete (e.g. 'su' -> 'Susan', 'Susie', 'Suzanne'). If omitted, returns a curated list of popular names."
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false
},
"title": "On-Demand-Books: Suggest Available Names"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.gmlewis/on-demand-books"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.gmlewis/on-demand-books"}) over MCP.
search_books ~263 tokenssuggest_names ~197 tokensget_book ~179 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.gmlewis%2Fon-demand-books?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:9c9dc85fa4eaa2f8…, first seen 2026-10-17, included at leaf 2628 of 17,126. Version history · verify what your client received.
Compare: most reliable retrieval servers · most reliable search servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-17 07:28 UTC, the Gmlewis On Demand Books MCP server is up with a Glimind reliability score of 92/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 4 outages in 90 days, with a median recovery of 4 minutes.
Gmlewis On Demand Books MCP server advertises 3 tools, including get_book, search_books, suggest_names.
Point your MCP client at this streamable-http endpoint: https://on-demand-books-dq2yvpdh.fermyon.app/
Glimind scanned all 3 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.