{"_id":"@bookmasher/mcp","_rev":"7-5fa7f531b7d7735a768f854cd025d550","name":"@bookmasher/mcp","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@bookmasher/mcp","version":"1.0.0","_id":"@bookmasher/mcp@1.0.0","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"bookmasher-mcp":"bin/cli.js"},"dist":{"shasum":"a8bb4556942618c7030e8aa6926130b73512475f","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.0.0.tgz","fileCount":4,"integrity":"sha512-sSrt03GYAqy6ucRMiUNcurHMV6ZLmsG9S6XuaEFst9PUppFvoyyDN/wUOEX3InJ+20JYjrEykGRg/SigXOcq0w==","signatures":[{"sig":"MEQCIDQt+uQWv8ZCp/Bq0OXkU/t2lgJugkUKxwfkQaB7TJBHAiBC8SIUCpB7ZVr3i7sK3j8p6s0g+GylBpxqcDFCHy8/5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9611},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.0_1782125743565_0.7601608456890732","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bookmasher/mcp","version":"1.1.0","_id":"@bookmasher/mcp@1.1.0","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"bookmasher-mcp":"bin/cli.js"},"dist":{"shasum":"9294e05fc91d271fa198d3d50a652d1415c9a7f9","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.1.0.tgz","fileCount":4,"integrity":"sha512-zDOtLSUM2prrQUv2ZO804Jg/lNVpWHYv5xno+kdsrn1VwTd1rRYCkgQps1a6N8pYbJmgXLwfyWqW9LBKjV64NQ==","signatures":[{"sig":"MEUCIQDMa2yKhpluAwqcnOrtbceU6vwycPnhjoH+CSamIzJYCwIgVlkGwVtXSk3oTaJw56UoOwKg+zmyPLnwNKYZ7ylD4RY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14774},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.1.0_1782134917894_0.8776715303839817","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bookmasher/mcp","version":"1.1.1","_id":"@bookmasher/mcp@1.1.1","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"mcp":"bin/cli.js"},"dist":{"shasum":"c0ee9d7b611302b64833356ec5d64e182357c7e9","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.1.1.tgz","fileCount":4,"integrity":"sha512-Qj0MiD2JZN6evT5cbUgJqF9NGSnH9CIrYN2929Fn6YpKXrthPExn210eQDg/vIPEi37zNvZsWYODeog6Ko4cmw==","signatures":[{"sig":"MEUCIQDbUpMeWb7IDEupH5LrRJSJu8UPi2Y6nBUju+SnvrjXRQIgWJjXmJO5B1gaZLccueUt/PdRFt3B3MllCygjTEjmkSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14763},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.1.1_1782136057782_0.6726790078605649","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@bookmasher/mcp","version":"1.1.3","_id":"@bookmasher/mcp@1.1.3","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"mcp":"bin/cli.js"},"dist":{"shasum":"be9b1c2c5387407383100b8557f75db0dca0b993","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.1.3.tgz","fileCount":4,"integrity":"sha512-WstsCrwsisGE4JKlXii143ls9979qPuIQSGdhQf7DAQ6E9E0E6bidDMkCWJsZyrXyEoDEyBKsnImgUHwt3hP8A==","signatures":[{"sig":"MEUCIQCZ6+cGxY278zQ9OqWMv3UoHpf5M8rMhJrMaAUdO/dW8gIgQ60Uy6gb+iNNtTqG5QyyuhxCNu84k18mHzII+dNCVKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14781},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.1.3_1782138039066_0.6282425283253008","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@bookmasher/mcp","version":"1.1.4","_id":"@bookmasher/mcp@1.1.4","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"mcp":"bin/cli.js"},"dist":{"shasum":"a0eafae05f8bc7234f8b4a17c38d468ace842d76","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.1.4.tgz","fileCount":4,"integrity":"sha512-3vmtejtG2ZEwOIACKewKKTfWlT1WTnkIGKG/X2TekGTbfO5rmuwI+mF9mMxESBcwvqT7vfNNc0aAShIl1nrqOQ==","signatures":[{"sig":"MEYCIQD5bAwG8n1n9le9ZKND/R30IWVAAAWtTtOL2lAQIX2dZgIhALikio1prde30YQxu8allkgEzprP11znw4YRd/bgsmmh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14908},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.1.4_1782146113975_0.9538497421429071","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bookmasher/mcp","version":"1.2.0","_id":"@bookmasher/mcp@1.2.0","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"bin":{"mcp":"bin/cli.js"},"dist":{"shasum":"8cc49f862d9b8b55b3425f78da20b57cc1c1c4cc","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.2.0.tgz","fileCount":4,"integrity":"sha512-0x6DKKcZXRYVGKDhl+1e6ABQRUumZQoNBeUW56w1iQNlsw2cpCRT5mUzokpHdfTOkXYeprGV74NWEUs1BxMWBA==","signatures":[{"sig":"MEUCIGErLA+FcBgyA9j9dHzg/vN8d3DSMn7bDx2OTv/Q2cKiAiEAhftNBVVif4RDRuDDcUM0olUBe42dlG5rnP4MYVLrh+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26646},"type":"module","scripts":{"dev":"tsx watch src/server.ts","build":"tsc -p tsconfig.build.json","start":"tsx src/server.ts","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"_npmVersion":"11.8.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","directories":{},"_nodeVersion":"25.6.0","dependencies":{"zod":"^3.24.1","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.2.0_1783457068371_0.7041583799593694","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bookmasher/mcp","version":"1.3.0","description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","type":"module","bin":{"mcp":"bin/cli.js"},"publishConfig":{"access":"public"},"scripts":{"dev":"tsx watch src/server.ts","start":"tsx src/server.ts","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"dependencies":{"@modelcontextprotocol/sdk":"^1.13.0","dotenv":"^16.4.7","zod":"^3.24.1"},"devDependencies":{"@types/node":"^22.10.5","tsx":"^4.19.2","typescript":"^5.7.3"},"_id":"@bookmasher/mcp@1.3.0","_nodeVersion":"25.6.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-XZ2prEUaTg8r3p/JSQUu2G+B4T/JzuvEEN/DfET4W35L5epemoR71DT+pT4Gxf+aQ+K4nc1iibVshRB6fy+qZw==","shasum":"4ebcd9270918cfb8d2988f34f7e4c9e6d34e892d","tarball":"https://registry.npmjs.org/@bookmasher/mcp/-/mcp-1.3.0.tgz","fileCount":4,"unpackedSize":26646,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCbUSc1APExcohND/HfD8Kega8tuKJpMUsURnQp5vmmgQIhAKG7fDTN0dgcjLn0eERW/g3/xtFDjDapXbbfu5l64Sy8"}]},"_npmUser":{"name":"masherwayne","email":"wayne@kinson.info"},"directories":{},"maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_1.3.0_1784537596128_0.37714355111201403"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T10:55:43.389Z","modified":"2026-07-20T08:53:16.389Z","1.0.0":"2026-06-22T10:55:43.703Z","1.1.0":"2026-06-22T13:28:38.022Z","1.1.1":"2026-06-22T13:47:37.946Z","1.1.3":"2026-06-22T14:20:39.211Z","1.1.4":"2026-06-22T16:35:14.134Z","1.2.0":"2026-07-07T20:44:28.492Z","1.3.0":"2026-07-20T08:53:16.249Z"},"description":"MCP server for BookMasher — drive book generation from an AI agent via the BookMasher API.","maintainers":[{"name":"masherwayne","email":"wayne@kinson.info"}],"readme":"# @bookmasher/mcp\r\n\r\nLet an AI assistant create and manage your **BookMasher** books. This is an\r\n[MCP](https://modelcontextprotocol.io) server that connects your AI tool to the BookMasher\r\nAPI. It's a thin client — no database, no install of BookMasher — it just needs your\r\n**API key**.\r\n\r\n---\r\n\r\n## 1. Get your API key\r\n\r\n1. Sign in to BookMasher → **Account → API keys → Create API key**.\r\n2. Copy the key (it starts with `bm_` and is shown only once).\r\n\r\nThe assistant acts as your account and uses your credits.\r\n\r\n> You'll need **Node.js 18 or newer** installed (so `npx` and the server can run).\r\n\r\n---\r\n\r\n## 2. Connect Claude — one command\r\n\r\nFor **Claude Desktop and Claude Code**, just run this once (Mac, Windows or Linux):\r\n\r\n```bash\r\nnpx -y @bookmasher/mcp@latest install --key bm_your_key_here\r\n```\r\n\r\nIt writes BookMasher into both Claude config files (keeping any servers you already have).\r\nThen **fully quit and reopen Claude Desktop** (and start a new Claude Code session). Done.\r\n\r\n> Needs Node.js 18+. The same `npx -y @bookmasher/mcp@latest` is what Claude launches to run the\r\n> server — `install` is just a one-time setup helper.\r\n\r\nFor other tools, configure manually:\r\n\r\n### Codex CLI (OpenAI)\r\n\r\nEdit `~/.codex/config.toml`:\r\n\r\n```toml\r\n[mcp_servers.bookmasher]\r\ncommand = \"npx\"\r\nargs = [\"-y\", \"@bookmasher/mcp@latest\"]\r\nenv = { BOOKMASHER_API_KEY = \"bm_your_key_here\" }\r\n```\r\n\r\n### Cursor\r\n\r\nCreate `.cursor/mcp.json` in your project (or `~/.cursor/mcp.json` for all projects):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"bookmasher\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@bookmasher/mcp@latest\"],\r\n      \"env\": { \"BOOKMASHER_API_KEY\": \"bm_your_key_here\" }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOther stdio-based MCP clients (Windsurf, Cline, Zed, etc.) use the same\r\n`command` / `args` / `env` shape.\r\n\r\n### ChatGPT\r\n\r\n**Not supported by this package (yet).** ChatGPT's custom connectors require a **remote**\r\nMCP server reachable over HTTPS — they can't launch a local `npx` command like the tools\r\nabove. This package is a local (stdio) server. A hosted connector for ChatGPT is a separate\r\noffering; if you need it, contact BookMasher support.\r\n\r\n---\r\n\r\n## 3. Use it\r\n\r\nAsk your assistant things like:\r\n\r\n- *\"List the BookMasher book types.\"*\r\n- *\"Create a 24-page children's book about a brave little tractor, then tell me when it's done.\"*\r\n- *\"Regenerate image 3 in book 1024 — make the cat black and white.\"*\r\n- *\"In book 1024 replace 'Hellen' with 'Helen', then export it as a PDF.\"*\r\n\r\n### Tools available\r\n\r\n| Tool | What it does |\r\n|------|--------------|\r\n| `list_book_types` | The book types you can make + their options |\r\n| `create_book` | Create & queue any book type (topic, subtitle, premise, artStyle, author, puzzle/coloring/cookbook options…) |\r\n| `build_premise` | Children's: expand a short idea into a full story premise (feed it back into `create_book`) |\r\n| `get_book_status` | Progress / when it's complete |\r\n| `list_books` | Your books |\r\n| `list_book_images` | A finished book's images (to pick one to redo) |\r\n| `regenerate_image` | Redo one image (optionally with a new prompt) |\r\n| `find_replace` | Fix a word across a book |\r\n| `generate_characters` / `list_characters` / `add_character` / `update_character` / `remove_character` | Children's: design the cast on a draft (create with `designCharacters: true`) — draw, review, edit portraits |\r\n| `start_book` | Write a draft book (e.g. after designing the cast) |\r\n| `set_book_settings` | Cover (title/subtitle/colours/hide-text/series), copyright, blurb, citations on/off + heading, QR placement |\r\n| `generate_kindle` | Amazon Kindle listing description + keywords |\r\n| `list_authors` / `create_author` / `update_author` / `delete_author` | Author profiles — carry the QR code + \"Also by\" citations list used on their books |\r\n| `get_kdp` / `set_kdp` | Paperback trim size, paper, interior page count |\r\n| `download` | Get a book artifact as bytes: interior-pdf, pdf, wrap-cover, front-cover, back-cover, epub |\r\n| `stop_book` | Stop a build to save credits |\r\n| `delete_book` | Delete a book |\r\n| `export_book` | Get the EPUB, or a PDF download link |\r\n\r\n---\r\n\r\n## Settings\r\n\r\n| Env var | Required | Default |\r\n|---------|----------|---------|\r\n| `BOOKMASHER_API_KEY` | yes | — |\r\n| `BOOKMASHER_API_URL` | no | `https://members.bookmasher.com` |\r\n\r\n## Troubleshooting\r\n\r\n- **401 / Unauthorized** — the key is missing, wrong, or revoked. Re-create it in Account → API keys.\r\n- **\"command not found\" / server won't start** — make sure Node 18+ is installed; on Windows use the `cmd /c` form above.\r\n- **Nothing builds after create_book** — generation runs server-side; status moves from queued → writing → illustrating → complete. Poll `get_book_status`.\r\n\r\n---\r\n\r\n## Maintainer notes (publishing)\r\n\r\nThe published files are prebuilt — no build runs on publish — so you can copy this folder\r\n(without `node_modules`) and `npm publish`.\r\n\r\nWhen the source (`src/server.ts`) changes, rebuild and re-commit the prebuilt output before\r\ncopying/publishing:\r\n\r\n```bash\r\npnpm --filter @bookmasher/mcp build      # emits dist/server.js\r\ngit add -f apps/mcp/dist/server.js\r\n# bump version, then: cd <publish-copy> && npm publish\r\n```\r\n\r\n","readmeFilename":"README.md"}