PictureBooks
Server Details
Create and read private AI-illustrated storybooks with your PictureBooks account and existing credits. For adult authors, parents, and educators. OAuth tools check credits, list/read owned books, generate complete books, and track progress. Generation uses credits for pages, cover, and consistency references. No card charges, credit purchases, or publishing. Use fictional characters. Docs: https://picturebooks.io/developers
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- PictureBooks
- Claude
- –
TDQS
Scored across 5 tools
Each tool has a distinct role: generating a story, checking job status, retrieving a specific book, listing books, and reading account credits. The job-status vs. book-content split is clear from descriptions, and there is no meaningful overlap that would cause misselection.
All tools follow a consistent snake_case verb_noun pattern with the same picturebooks_ prefix. The set reads predictably: generate_story, get_account, get_book, get_job, and list_books.
Five tools are well-scoped for an illustrated-book generation service: one creation tool, three retrieval/status tools, and one account tool. There are no redundant tools, and each earns its place.
The core lifecycle is covered: start generation, poll the async job, retrieve the finished book, list owned books, and check credits. Minor gaps such as cancelling a job or deleting a book are not present, but they are not central to the described workflow.
Available Tools
5 toolspicturebooks_generate_storyGenerate storybookAIdempotentInspect
Generate a private illustrated book. Consumes existing account credits for pages, cover, and reference images. No card charge. Returns an async job and conservative creditEstimate, with no credit reservation. The book takes several minutes; until its job completes it has no title, cover or page pictures. Supports 5–50 pages subject to the connected account cap. Supply intended audienceAge and readingLevel when requested; omitted audience age defaults to two. Reuse requestId when retrying.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | 5–50 story pages; also respect credits.maxBookPages from the account tool, and prefer at most credits.affordableBookPages when the balance is low. | |
| topic | Yes | ||
| artStyle | No | ||
| category | No | ||
| language | No | ||
| requestId | Yes | ||
| audienceAge | No | Intended audience age in years, 1–12. A content preference, never a request for a real child’s identity. Omitted preserves the historical age-two default. | |
| readingLevel | No | auto matches audience age; pre is read aloud to a pre-reader; early uses simple decodable text; fluent uses richer vocabulary. Age still governs appropriate themes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which only flag non-readonly, idempotent, open-world non-destructive): discloses credit consumption model, no reservation, no card charge, async latency of several minutes, and that the book has no title/cover/pages until the job completes. That is exactly the behavioral context an agent needs before committing credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and cost, then constraints and retry advice; every sentence carries information. Slightly dense and terse in places (creditEstimate clause), but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async mutation with no output schema, it covers cost, latency, partial-state behavior, and idempotent retry. It does not state exactly what the response contains (e.g., a job id the agent must pass to picturebooks_get_job), a minor gap an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 38% schema coverage, the description compensates well for the risky parameters: it bounds pages and ties them to the account cap, explains the audienceAge default of two, explains readingLevel intent, and tells the agent to reuse requestId. It leaves topic, artStyle, category, and language unexplained, but those are self-evident strings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Generate a private illustrated book') with key qualifiers (private, illustrated). It does not explicitly differentiate from the sibling read tools, though their names (get_book, get_job, list_books) make confusion unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: consumes credits, no card charge, async several-minute job, page bounds 5–50 subject to account cap, and reuse requestId on retry. It does not name explicit alternatives or when-not-to-use, but the guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picturebooks_get_accountPictureBooks accountARead-onlyIdempotentInspect
Read PictureBooks credits when the user asks about their account or before a requested PictureBooks story generation. Do not use for unrelated tasks. Does not purchase credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description usefully adds a non-obvious behavioral boundary — 'Does not purchase credits' — clarifying that this is a pure read and not a purchasing action, though it says nothing about error handling or what the read returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, with the primary purpose front-loaded before the usage trigger and the boundary note. Every sentence carries information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description covers purpose, trigger, and a key boundary. The only mild gap is that it does not hint at what the account read returns, but with no output schema that is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies; no parameter-related guidance is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read PictureBooks credits') and frames it as an account lookup, which cleanly separates it from the sibling tools (generate_story, get_book, get_job, list_books). An agent can identify the tool's function without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete triggers — when the user asks about their account, and before a requested story generation — which is strong routing guidance. The exclusion ('Do not use for unrelated tasks') is boilerplate rather than a real boundary, so it falls just short of the explicit when-not/alternatives bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picturebooks_get_bookRead storybookBRead-onlyIdempotentInspect
Get your storybook: its title, page text and downloadable cover/page image URLs. These images are the book's only pictures.
| Name | Required | Description | Default |
|---|---|---|---|
| bookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds the useful detail that the returned image URLs constitute the book's only pictures, which clarifies the return content. It does not disclose behavior on an invalid/unknown bookId or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose and then the return payload. No wasted words, though the trailing clause about images being 'the book's only pictures' is slightly awkward phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully names the returned fields (title, page text, image URLs), which is the right burden to carry. However, it omits how to source bookId and any failure behavior, leaving a gap for a required-parameter fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single bookId parameter has 0% schema description coverage and a pattern constraint but no human-readable meaning. The description says nothing about what bookId is, its format, or where to get it, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (get your storybook) and enumerates the returned content: title, page text, and downloadable cover/page image URLs. It is clearly a single-record fetch and distinguishable from picturebooks_list_books or picturebooks_generate_story. Sibling differentiation is implicit rather than explicit, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no pointer to siblings. It never says how to obtain a valid bookId (presumably from picturebooks_list_books) or when to prefer this over list/generate. Usage is only inferable from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picturebooks_get_jobCheck generation progressBRead-onlyIdempotentInspect
Read status of a story generation job owned by your account.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the ownership scoping constraint ('owned by your account') and says nothing about what statuses are returned or terminal states, so it adds marginal value beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight, front-loaded sentence with no filler. It is efficient, though brevity here edges toward under-specification given the tool's polling role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return value, yet it never says what status field(s) come back or what terminal values look like. Rich annotations cover the safety side, but the response contract for a status-checking tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the single jobId parameter is undocumented in structured fields. The description partially compensates by implying the job must belong to the caller's account, but it gives no guidance on where the ID originates (presumably from picturebooks_generate_story) or its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (status of a story generation job) with a scope qualifier (owned by your account). An agent can distinguish it from siblings like picturebooks_generate_story and picturebooks_get_book, though the differentiation is implicit in the noun rather than called out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers this is for polling a job started by picturebooks_generate_story. There is no explicit statement of when to use it, no mention of polling cadence or what to do when the job is still running, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
picturebooks_list_booksList storybooksBRead-onlyIdempotentInspect
List private storybooks owned by your connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the useful scoping fact that results are limited to private books of the connected account, but says nothing about pagination, ordering, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; every word contributes to identifying the resource and its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full annotation coverage and no output schema, the essentials are largely there, but the undocumented limit/pagination parameter leaves a real gap an agent would want filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter ('limit') with 0% schema description coverage, yet the description never mentions it, its constraints (1-50 max), or any default. The low coverage means the description should have compensated and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (private storybooks) with ownership scope narrowed to the connected account. It doesn't explicitly differentiate itself from siblings like picturebooks_get_book, but the verb+scope makes its role readable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'private storybooks owned by your connected account' phrasing hints this is a bulk enumeration of the caller's own books, but there is no explicit when-to-use, when-not, or pointer to siblings like picturebooks_get_book for single-item retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
picturebooks_generate_story2 fields changed- changed
Input schema / properties / pages / descriptionPrevious value: -"5–24 story pages; also respect credits.maxBookPages from the account tool, and prefer at most credits.affordableBookPages when the balance is low."New value: +"5–50 story pages; also respect credits.maxBookPages from the account tool, and prefer at most credits.affordableBookPages when the balance is low." - changed
Input schema / properties / pages / maximumPrevious value: -24New value: +50
5 tool updates
- First observed
picturebooks_generate_story - First observed
picturebooks_get_account - First observed
picturebooks_get_book - First observed
picturebooks_get_job - First observed
picturebooks_list_books
Publisher details
- Operator
- PictureBooks.io (Wilson Gan) · Publisher source
- Operator website
- https://picturebooks.io
- Vendor relationship
- First-party
- Documentation
- https://picturebooks.io/developers
- Trust center
- Not available
- Restrictions
- Requires a verified PictureBooks account and OAuth consent. Reading existing books is free; generation consumes existing image credits. Adults only; use fictional characters. Credits must be purchased on PictureBooks.io, outside this connector. · Publisher source
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.