Odel
Teneo Book Generation

Teneo Book Generation

Local
@travisericJavaScriptMITUpdated 4 days ago

Publish-ready nonfiction books from a topic: manuscript, cover, PDF/EPUB/DOCX. Free outline to try.

teneo-book-mcp

MCP server for Teneo. Lets any MCP-capable agent — Claude Desktop, Cursor, Claude Code, or your own — generate a complete, publish-ready non-fiction book: full manuscript, cover, and PDF/EPUB/DOCX files.

{
  "mcpServers": {
    "teneo-book": {
      "command": "npx",
      "args": ["-y", "teneo-book-mcp"],
      "env": { "TENEO_API_KEY": "tk_live_..." }
    }
  }
}

Tools

ToolWhat it does
teneo_capabilitiesDiscover auth, pricing, request shape, workflow, and output shape. Start here.
teneo_generate_bookStart a book (async) → returns a jobId. Runs ~45 min. Charged in credits.
teneo_book_statusPoll a job; when completed, returns download URLs for the cover and PDF/EPUB/DOCX.
teneo_generate_outlineGenerate an outline only, without running the full pipeline. Free.
teneo_research_nicheNiche research from a seed topic. Free.
teneo_generate_coverGenerate a cover only.
teneo_evaluate_bookRun quality evaluation on an existing generated book.

What it costs

Priced in Teneo credits. One credit is $69 singly, $59 each in a 3-pack, $44.90 each in a 10-pack; credits never expire.

requiredCredits = bookCredits + coverCredits + qualityCreditsReserve
bookCredits     = wordBandCredits(estimatedWordCount) x modelMultiplier(model_version)
estimatedWordCount = number_of_chapters x topics_per_chapter x subtopic_count x 350

A default request (12 chapters / 3 topics / 3 subtopics) estimates 37,800 words → 1.05 credits, about $72 at list. teneo_generate_outline and teneo_research_niche cost nothing, so validate direction before committing to a paid generation.

A funded Teneo balance is required before the first paid call — there is no pay-per-call endpoint yet. The live numbers, the full model-multiplier table, and the request schema are always at /api/agent/capabilities, which is authoritative if anything here disagrees with it.

Setup

Get a credential, then add the config block above to your MCP client.

  • Preferred (delegated): start at auth.teneo.io/auth.md, register for https://teneo.io/, have the user approve the claim, and exchange it for a delegated agent token. Pass it as TENEO_AGENT_TOKEN. The delegated user is charged.
  • Legacy: create an API key in your Teneo dashboard and pass TENEO_API_KEY=tk_live_....
  • Point at staging with TENEO_BASE_URL=https://staging.teneo.io.

Spend semantics

Worth knowing before you wire this into an autonomous loop:

  • Quoted before charged. A request that would exceed the balance returns 402 with the full quote and charges nothing — a safe way to read the exact price.
  • Idempotent. Send an Idempotency-Key header; replaying a request replays the original debit instead of charging twice.
  • Refunded on failure. A failed generation is refunded in full.
  • Async. A book takes ~45 minutes. Poll teneo_book_status, or pass callback_url for a completion webhook. Download URLs expire in ~1 hour; re-poll for fresh ones.

Not for

A single short answer, a blog post, or an article — answer those directly instead. Fiction and novels are not supported by this API.

Develop

npm test          # unit tests for the HTTP client (mocked fetch, no network)
npm start         # run the MCP server over stdio

client.mjs is a dependency-free HTTP client; server.mjs wraps it as MCP tools. Both mirror the published OpenAPI contract.

Links

License

MIT