library-mcp
This server is a paid, retrieval-only public-domain literature knowledge base for AI agents, with no API key or account needed — just a Base wallet for x402 USDC micropayments.
Search full-text passages across 17,000+ public-domain books with cited, real quotes (
search_literature).Find books by title or author substring and get book IDs for drill-down (
search_books).Fetch detailed book metadata: title, author, year, subjects, shelves, chapter ranges (
get_book_metadata).Retrieve full chapter text by book ID and chapter number (
get_chapter).Pull notable, theme-filterable quoted passages from any indexed book (
get_quotes).Ask natural-language questions about 24 flagship books (Moby-Dick, Republic, Sherlock Holmes, etc.) and get cited passages back (
ask_book).Browse 10 hand-picked and 100+ auto-generated subject shelves (gothic horror, Russian literature, etc.) (
browse_shelf).Get a deterministic, date-seeded daily book pick (
book_of_the_day).Access the full catalog and API docs for free at library.forgemesh.io/llms.txt and /openapi.json.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@library-mcpFind passages about the sea in Treasure Island."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ForgeMesh Library — Public-Domain Knowledge Base for AI Agents
A ForgeMesh Labs product.
A paid public-domain knowledge base, built for agents. Full-text search, book metadata, chapters, notable quotes, flagship "ask this book a question" retrieval, and 100+ curated subject shelves over a growing corpus of public-domain books — no license, no API key, no account. Pay per call in USDC on Base via x402.
Retrieval only: every answer is a real, cited passage pulled from the indexed text. Nothing here is LLM-generated or summarized — that makes it safe to cite for tutoring agents, reading apps, quiz/curriculum generators, and any workflow where a hallucinated quote is worse than no quote.
Quick start (Claude Desktop / Claude Code / any MCP client)
{
"mcpServers": {
"library": {
"command": "npx",
"args": ["-y", "@forgemeshlabs/library-mcp"],
"env": {
"WALLET_PRIVATE_KEY": "0x..."
}
}
}
}WALLET_PRIVATE_KEY is a dedicated low-balance Base wallet for x402 micropayments — never your primary wallet. $1 of USDC buys dozens to hundreds of calls depending on the route.
Related MCP server: open-public-domain
Tools
Tool | Cost | What it does |
| $0.02 | Full-text search across the entire corpus — real passages, any book |
| $0.005 | Search the corpus by title or author substring |
| $0.002 | Title, author, year, subjects, bookshelves, chapter range for a book_id |
| $0.005 | Full text of one chapter by book_id + chapter number |
| $0.005 | Notable passages from a book, optionally themed |
| $0.01 | Ask a flagship book (Moby Dick, the Republic, Sherlock Holmes...) a question, get cited passages back |
| $0.003 | Browse a curated category or subject shelf (gothic horror, Russian literature, detective fiction, 100+ shelves) |
| $0.001 | Deterministic daily book pick, date-seeded |
Prices are set by the live service and may change — the actual charge always comes from the x402 402 challenge at call time, not this table.
Who this is for
Built for education-safe agent use cases:
Tutoring agents that need a real quote, not a paraphrase
Reading apps and book-club bots
Quiz and curriculum generators that cite public-domain source text
Any agent that needs a large, cheap, license-free text corpus without hitting a rate-limited free API
Nothing here requires an account, an API key, or a license negotiation — the entire corpus is public domain, drawn in part from the Project Gutenberg collection. Not affiliated with or endorsed by Project Gutenberg.
Corpus size
The corpus is actively growing — it started at hundreds of books and is on a path from 17,000+ toward roughly 62,000 as more public-domain texts are indexed. Don't hardcode a book count anywhere downstream of this server; ask search_books or search_literature and let the live index answer.
Flagship books (ask_book)
Alice in Wonderland, Art of War, Count of Monte Cristo, Crime and Punishment, Don Quixote, Dracula, Frankenstein, Great Expectations, Grimms' Fairy Tales, Jane Eyre, Meditations (Marcus Aurelius), Moby-Dick, The Picture of Dorian Gray, Pride and Prejudice, Sherlock Holmes, The Iliad, The Odyssey, The Republic, The Time Machine, Tom Sawyer, Treasure Island, Walden, War and Peace, Wuthering Heights.
Any other book: use search_literature or search_books + get_chapter/get_quotes instead — the flagship ask_book routes are hand-curated, the rest of the corpus is reachable through search.
Shelves (browse_shelf)
10 hand-picked categories (adventure, children's classics, classic literature, economics & politics, gothic horror, history, philosophy, poetry, science & nature, Shakespeare & drama) plus 100+ auto-generated subject shelves drawn from real Gutenberg subjects/bookshelves metadata (gothic fiction, Russian literature, detective fiction, banned books lists, and more).
The full, current shelf catalog is free to browse — no payment, no tool call required:
https://library.forgemesh.io/llms.txthttps://library.forgemesh.io/openapi.json
How payment works
No signup, no API key, no subscription. The first request to any tool returns an HTTP 402 challenge; this MCP server signs a USDC payment authorization (EIP-3009) and retries automatically. The result lands in the same response, with the on-chain settlement details under _payment when available.
Direct API
Prefer raw HTTP? The full agent-readable surface:
https://library.forgemesh.io/llms.txt— one-page summary for agentshttps://library.forgemesh.io/openapi.json— OpenAPI 3.1 with x402 payment metadata, full input schemas, and worked examples for every routehttps://library.forgemesh.io/.well-known/x402.json— x402 discovery manifest
FAQ
Is this LLM-generated? No. Every response is retrieval over a local full-text index of real books. The method field in every response says so explicitly.
Do I need an account or API key? No. x402 payments are the only credential.
What chain and token? USDC on Base mainnet (eip155:8453).
Can I use this for tutoring or curriculum content? Yes — that's the intended use. Retrieval-only, cited-passage answers are education-safe in a way generated summaries aren't.
Built by ForgeMesh Labs · Powered by the x402 protocol · MIT License
Available Tools
8 toolsask_bookA
Ask a natural-language question about one of the flagship books and get back the most relevant passages from the book itself, with chapter/location citations. Retrieval only — never a generated summary. Pass any recognizable name for "book" (e.g. "Moby Dick", "the Odyssey") — it resolves to the matching route. Available flagship books: alice in wonderland, art of war, count of monte cristo, crime and punishment, don quixote, dracula, frankenstein, great expectations, grimms fairy tales, jane eyre, meditations, moby dick, picture of dorian gray, pride and prejudice, sherlock holmes, iliad, odyssey, republic, time machine, tom sawyer, treasure island, walden, war and peace, wuthering heights. Costs $0.01 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | Book name, e.g. one of: alice in wonderland, art of war, count of monte cristo, crime and punishment, don quixote, dracula, frankenstein, great expectations, grimms fairy tales, jane eyre, meditations, moby dick, picture of dorian gray, pride and prejudice, sherlock holmes, iliad, odyssey, republic, time machine, tom sawyer, treasure island, walden, war and peace, wuthering heights | |
| limit | No | Max passages (default 5, max 15) | |
| question | Yes | Your question about the book |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight. It discloses key behaviors: retrieval-only (not a summary), chapter/location citations, cost of $0.01 via x402 requiring WALLET_PRIVATE_KEY and USDC on Base, and flexible book name resolution. This is actionable operational context beyond what the schema provides.
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?
The description is somewhat long due to the necessary list of available books, but every sentence serves a purpose: purpose, retrieval nature, name resolution, and cost. It is front-loaded with the main action and avoids redundantly repeating schema details. The book list is essential even though it adds length.
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?
Given the tool's moderate complexity (3 params, no output schema), the description is comprehensive. It covers what it does, how to use it, pricing/auth requirements, and what it returns (passages with citations). The only minor gap is error handling for unrecognized book names, but the description's 'any recognizable name... resolves' implies robust matching.
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 covers all 3 parameters with descriptions, so baseline is 3. The description adds value by explaining that 'book' accepts any recognizable name and resolves to the matching route, supplementing the static list in the schema. It also reinforces that 'limit' is optional, though the default/max are already in the schema.
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?
The description uses a specific verb ('Ask') and resource ('flagship books'), and clearly states the output: 'most relevant passages from the book itself, with chapter/location citations.' It distinguishes itself from siblings like search_books and get_quotes by emphasizing natural-language questions and the retrieval-only nature.
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?
It provides clear context: use for natural-language questions about flagship books to get passages. It also gives an exclusion—'Retrieval only — never a generated summary'—which tells the agent not to use it if a summary is needed. However, it does not explicitly name alternative tools or state when to prefer search_books or get_quotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_of_the_dayA
Deterministic daily book pick from the indexed corpus, date-seeded so every caller gets the same answer on the same UTC day. Optional date override for backfill. Costs $0.001 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional ISO date (YYYY-MM-DD) to replay a past day's pick |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals determinism, cost, authentication requirements (WALLET_PRIVATE_KEY, USDC on Base), and the date-seeding logic. It does not describe the return format or error behavior, but for a simple tool with one optional parameter, this coverage is strong.
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?
The description is two sentences, front-loaded with the primary purpose, followed by cost and prerequisites. Every word earns its place, with no redundancy or 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 tool with one optional parameter, no annotations, and no output schema, the description covers the core behavior, cost, and authentication. It could mention the return format explicitly, but the phrase 'book pick' sufficiently implies the output for a user familiar with the corpus.
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 schema covers 100% of parameters with a description for 'date'. The description adds context by linking the date to UTC day and backfill, but it largely restates what the schema already provides. Baseline 3 is appropriate since the schema carries the semantic weight.
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?
The description clearly states the tool's function: a deterministic daily book pick from the indexed corpus, date-seeded for consistency. It distinguishes itself from siblings by emphasizing deterministic behavior and UTC date seeding, which is unique among the listed search and metadata tools.
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?
The description explains when to use the tool (to get the daily book pick) and mentions the optional date override for backfilling past days. It does not explicitly name alternatives, but the deterministic daily pick function is distinct enough that clear exclusion criteria are unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_shelfA
Browse a curated category/subject shelf: 10 hand-picked categories (adventure, childrens-classics, classic-literature, economics-and-politics, gothic-horror, history, philosophy, poetry, science-and-nature, shakespeare-and-drama) plus 100+ auto-generated shelves drawn from real Gutenberg subjects/bookshelves (e.g. 'gothic-fiction', 'russian-literature', 'detective-fiction'). Returns a ranked list of books with book_id for drill-down. Full shelf catalog is discoverable free at https://library.forgemesh.io/llms.txt. Costs $0.003 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| shelf | Yes | Shelf name or slug, e.g. 'gothic horror' or 'russian-literature' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses important behavioral traits: the tool costs $0.003 via x402, requires WALLET_PRIVATE_KEY and USDC on Base, and returns a ranked list of books. It also mentions the shelf catalog URL for discoverability. The description does not explicitly state it is read-only, but the purpose and output format imply a safe browse operation.
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?
The description is concise and front-loaded with the tool's primary purpose. The subsequent sentences add essential operational details (return format, catalog URL, cost and requirements) without unnecessary fluff. The longer category list is justified as it directly informs valid parameter values.
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?
Given the tool's simplicity (one parameter, no output schema), the description is complete: it explains what the tool returns, how to discover available shelves, and the cost/auth requirements. It also implicitly ties into sibling tools by mentioning 'book_id for drill-down', which supports the overall workflow.
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 schema covers 100% of the parameter with a description, but the tool description adds significant value by enumerating example shelves (e.g., 'gothic-fiction', 'russian-literature') and clarifying that there are 100+ auto-generated shelves beyond the 10 hand-picked ones. This goes beyond the schema's basic example of 'gothic horror' or 'russian-literature' and enriches the agent's understanding of valid inputs.
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?
The description clearly states the tool browses a curated category/subject shelf and returns a ranked list of books with book_id for drill-down. It distinguishes itself from sibling search tools by explicitly mentioning curated shelves and listing specific categories, making the scope and resource clear.
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?
The description provides clear context for when to use this tool: to browse curated shelves rather than perform a general search. It also hints at the next step (drill-down with book_id) and mentions the shelf catalog is discoverable at a URL. However, it does not explicitly state exclusions or directly compare with alternatives like search_books, so it falls slightly short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_metadataA
Full metadata for one indexed book by book_id: title, author, year, subjects, bookshelves, download rank, chunk count, and detected chapter range. Use search_books first to find a book_id. Costs $0.002 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | Gutenberg book id, from search_books |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses the cost ($0.002), payment method (x402, USDC on Base), wallet requirement, and lists the return fields. This is substantial context for a read-only metadata operation, though it omits error handling 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?
Two concise sentences: the first defines the tool's scope and outputs, the second provides prerequisite and cost. Every sentence carries meaningful information with no redundancy.
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 single-parameter tool with no output schema, the description covers inputs, outputs, prerequisite (search_books first), and cost/payment details. It is sufficient for an agent to select and invoke the tool correctly, though it does not specify the exact return format.
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 coverage is 100% and the schema already describes book_id as 'Gutenberg book id, from search_books.' The description adds 'indexed book' and integer context but does not materially improve parameter understanding beyond the schema.
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?
Description states 'Full metadata for one indexed book by book_id' and enumerates specific fields (title, author, year, subjects, etc.), making its purpose unmistakable and distinguishing it from siblings like get_chapter and search_books.
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?
Provides explicit prerequisite: 'Use search_books first to find a book_id.' Also adds cost and wallet requirements, giving clear context for when it should be invoked. It does not explicitly name alternatives to avoid, but the coverage is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chapterA
Full text of one chapter from an indexed book by book_id and chapter number. Chapter 0 is front matter before the first detected heading. Use get_book_metadata for the valid chapter range. Costs $0.005 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| book_id | Yes | Gutenberg book id | |
| chapter | Yes | Chapter number (0 = front matter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the full burden. It discloses meaningful behavioral traits: chapter 0 is front matter, the operation costs $0.005 via x402, and it requires WALLET_PRIVATE_KEY with USDC on Base. It does not cover potential errors or return format, but the special-case and payment details exceed baseline expectations.
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?
The description is three sentences, front-loaded with the core action. Every sentence earns its place: sentence 1 states purpose, sentence 2 clarifies an edge case, sentence 3 gives usage guidance and cost. No redundant or filler content.
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 tool with only two params and no output schema, the description covers the essential context: what is returned ('full text'), the special chapter-0 case, cost, auth requirement, and a pointer to the metadata tool for range validation. It does not describe error behavior or response format, but these are somewhat implicit given 'full text' and the overall simplicity.
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 coverage is 100%, so the description only needs to add marginal value. It slightly reinforces the meaning of 'chapter' by restating 'Chapter 0 is front matter' (already in the schema) and mentions book_id/chapter, but adds no new parameter-level syntax or format details beyond what the schema provides.
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?
The description opens with a specific verb+resource: 'Full text of one chapter from an indexed book by book_id and chapter number.' It clearly distinguishes this tool from siblings by focusing on retrieving chapter text, and explicitly directs users to get_book_metadata for range validation.
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?
It states when to use the tool (to retrieve full chapter text) and even names an alternative for a related task ('Use get_book_metadata for the valid chapter range'). It also notes the payment requirement and cost, which implies usage constraints. However, it doesn't explicitly state when not to use this tool (e.g., when only metadata is needed), leaving that slightly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quotesA
Notable passages from one indexed book by book_id. Pass an optional theme to full-text search within that book, or omit it for a sample of short dialogue-bearing lines. Costs $0.005 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max quotes to return (default 5) | |
| theme | No | Optional theme/keyword to search for within the book | |
| book_id | Yes | Gutenberg book id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses cost, required credentials (WALLET_PRIVATE_KEY, USDC on Base), and the behavioral difference between full-text search and sample output. However, it does not describe the return format, pagination, or error 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?
Two compact sentences, front-loaded with the core purpose, then the optional search behavior, then cost and prerequisites. No filler or redundancy.
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 3-parameter tool with no output schema, the description covers purpose, optional behavior, and critical payment/auth requirements. It doesn't state return type or error scenarios, but given the simplicity and intuitive nature of quotes, it's adequately complete.
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 coverage is 100%, so the baseline is 3. The description adds value by clarifying that omitting theme returns a sample of short dialogue-bearing lines and that theme enables full-text search within the book, enriching the schema's terse descriptions.
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?
The description clearly indicates the tool returns notable passages from a specific indexed book via book_id. It distinguishes from siblings by emphasizing book-specific retrieval and optional full-text theme search, though it lacks an explicit verb like 'retrieves' or 'lists'.
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?
The tool explains parameter usage (optional theme vs default sample) but does not give any guidance on when to prefer this tool over siblings like search_books or get_chapter. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_booksA
Search the indexed public-domain book corpus by title or author substring, e.g. 'Dickens' or 'Frankenstein'. Returns matching books ranked by historical popularity with book_id for drill-down into metadata, chapters, quotes, or full-text search. Costs $0.005 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 50) | |
| query | Yes | Title or author substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses cost ($0.005 via x402), required WALLET_PRIVATE_KEY, and USDC on Base, which is important. However, it omits other behavioral details such as rate limits, error handling, or whether the search is read-only, leaving gaps in transparency.
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?
The description is two sentences, front-loaded with purpose and example, followed by return behavior and cost. Every sentence earns its place without unnecessary detail or fluff.
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?
Given two parameters, no output schema, and no annotations, the description covers the key aspects: search method, examples, ranking, book_id for drill-down, and cost. It does not explain pagination or response format, but for a search tool with simple parameters, it is reasonably complete.
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 coverage is 100%, so the baseline is 3. The description adds examples ('Dickens', 'Frankenstein') and clarifies substring matching, but these are minor enhancements over the schema's existing descriptions. It does not add significant meaning to limit beyond what the schema provides.
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?
The description clearly states the tool's action ('Search'), resource ('indexed public-domain book corpus'), and method ('by title or author substring'), with concrete examples. It also distinguishes itself from siblings by noting it returns book_id for drill-down into metadata, chapters, quotes, or full-text search, positioning it as the entry point to related tools.
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?
The description implies usage context by mentioning drill-down capabilities, but it does not explicitly state when to use this tool over siblings like search_literature or get_book_metadata. There is no 'when-to-use' or alternative recommendation, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_literatureA
PREMIUM full-text search across the entire indexed public-domain corpus (17k+ books and growing). Returns the most relevant passages from ANY book, ranked by relevance, with title/author citations. Retrieval only — real cited passages, never LLM-generated or summarized. Costs $0.02 via x402 (requires WALLET_PRIVATE_KEY, USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max passages to return (default 10, max 30) | |
| query | Yes | Full-text search query, e.g. 'the nature of justice' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses key behaviors: it is retrieval-only (never generates or summarizes), costs $0.02 via x402, requires WALLET_PRIVATE_KEY and USDC on Base, and returns real cited passages ranked by relevance. This is transparent about cost, authenticity, and prerequisites.
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?
The description is concise (three sentences) and front-loaded with the core purpose immediately. Each sentence adds distinct value: scope, output, and cost/authentication. No filler or redundancy.
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?
The description provides sufficient context for a search tool: what it searches, what it returns, cost, and required credentials. It lacks details about search behavior (e.g., stemming, matching) but compensates with strong purpose and transparency. Given the simple schema and no output schema, this is nearly complete.
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 100% for both parameters (query and limit). The description does not add extra semantic detail beyond what the schema already provides, such as query syntax or behavior for varying limits, so the baseline of 3 applies.
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?
The description clearly states a specific verb and resource: 'full-text search across the entire indexed public-domain corpus.' It distinguishes itself from sibling tools by emphasizing the full-text nature and the 'PREMIUM' aspect, likely different from search_books which may search metadata. The scope and output (passages with citations) are explicit.
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?
The description implies usage for full-text retrieval but does not explicitly state when to prefer this over alternatives like search_books. It provides context (premium, full-text, cost) but no exclusions or alternative references, so guidelines are implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action: search_books finds books by metadata, search_literature retrieves passages corpus-wide, get_book_metadata provides details, get_chapter fetches a chapter, get_quotes extracts notable lines, ask_book answers questions from flagship books, browse_shelf explores categories, and book_of_the_day returns a daily pick. The descriptions clearly differentiate scope and output, leaving no ambiguity about when to use which tool.
The majority of tool names follow a consistent verb_noun pattern (search_*, get_*, ask_book, browse_shelf). The only deviation is book_of_the_day, which is a noun phrase rather than a verb imperative, but it remains descriptive and predictable within the set.
With 8 tools, the server is well-scoped for a public-domain library. Each tool covers a distinct capability—discovery, access, analysis, and daily picks—without unnecessary redundancy or overwhelming volume.
The tool surface provides complete read-only lifecycle coverage: users can discover books (search_books, browse_shelf, book_of_the_day), retrieve content (get_chapter, get_quotes), get metadata (get_book_metadata), and perform advanced retrieval (search_literature, ask_book). No obvious gaps exist for a curated library corpus.
Maintenance
Related MCP Connectors
MCP server for Project Gutenberg — 75,000+ public-domain ebooks with full plain-text retrieval.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables AI models to search and retrieve bibliographic and digitized records from Swiss academic libraries (swisscovery, e-rara, e-periodica, e-manuscripta) via open protocols without requiring API keys.161MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that gives AI agents access to the world's public domain library. Search, read, and navigate books and audiobooks from Project Gutenberg and LibriVox.
- FlicenseAqualityBmaintenanceMCP server for a live x402 payment gateway on Base (USDC). Lets AI agents discover, preview for free, then pay per call — with prepaid gasless payments, signed receipts, and delta delivery.7
- AlicenseNot gradedqualityDmaintenanceMCP server for the x402 protocol that lets AI agents discover and call payment-gated HTTP APIs automatically.428Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/forgemeshlabs/library-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server