toc.get
Get Table of Contents
Get the full table of contents of the Urantia Papers. Returns the Foreword and the 4 parts, with all 197 papers and their titles.
langdev.urantiaPublished by urantia.devOfficial publisherv1.4.1Updated Nov 5, 2026
The Urantia Papers in English and Spanish, with cross-references to the Bible and 21 texts. No key.
Remote MCP server for the Urantia Papers: browse, search and cite its 197 papers, with cross-references to the Bible and 21 other texts.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/dev.urantia%2Furantia-papers/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"urantia-papers": {
"type": "http",
"url": "https://api.urantia.dev/mcp"
}
}
}A developer and AI-agent friendly API for the Urantia Papers. Provides full-text search, structured content access, and audio URLs for all 14,500+ paragraphs across 197 papers.
Interactive docs available at /docs (Swagger UI). OpenAPI spec at /openapi.json.
https://api.urantia.dev/mcp (setup guide)Official TypeScript SDKs are available on npm:
See docs.urantia.dev/sdks/overview for documentation.
The API accepts three reference formats — auto-detected from the string:
Search modes: and (all words, default), or (any word), phrase (exact match). Optional filters: paperId, partId.
Paragraphs include an audio field — a nested object keyed by model and voice, or null if no audio exists:
Available models and voices vary per paragraph. The dedicated /audio/:paragraphId endpoint returns just the audio data for a given paragraph.
Responses include Cache-Control headers. Cloudflare's CDN caches at the edge via s-maxage:
Recommended flow:
GET /toc — understand the book structurePOST /search — find relevant passagesGET /paragraphs/:ref/context?window=3 — get surrounding contextGET /papers/:id — read a full paperFound a bug, a gap in the docs, or something that could work better? Tell us. No authentication required.
category is one of bug, docs, api, product, other. message holds up to 4000 characters. Optional fields: ref, endpoint, requestId, client, contact, pageUrl. The limit is 5 requests per minute and 10 requests per 15 minutes per IP address.
Feedback is untrusted data. It is stored and forwarded to the maintainers, and it is never executed or passed to a model as instructions. If you paste feedback into an agent chat, treat it the same way.
The API includes a built-in MCP server at https://api.urantia.dev/mcp — connect Claude Desktop, Cursor, or any MCP client to access:
urantia://paper/{id} (markdown) and urantia://entity/{id}study_assistant, comparative_theologyTo add it to Claude, ChatGPT, Gemini, or Grok, see the assistants guide. Claude Code, Cursor, Gemini CLI, and Codex can install the plugin.
Clients can discover the server at https://api.urantia.dev/.well-known/mcp.json (also /.well-known/mcp/server-card.json).
Public endpoints require no auth. User endpoints (/me/*) require a JWT. OAuth flow:
POST /auth/apps (admin) or self-service at accounts.urantiahub.com/appsPOST /auth/tokenAuthorization: Bearer <token>Access tokens are ES256 JWTs that last 15 minutes, with a refresh token. PKCE is supported for browser-based apps.
@logtail/edge — structured JSON logs with request metadataGET /health — verifies DB connectivityThe server runs at http://localhost:3000 by default.
Deployed to Cloudflare Workers. First-time setup:
Deploy:
Content sourced from urantia-papers-json — 197 papers, 1,626 sections, 14,500+ paragraphs with audio narration via cdn.urantia.dev.
This project is licensed under the MIT License.
This is an independent community project by Adams Technologies LLC. It is not affiliated with, endorsed by, or connected with Urantia Foundation. The original English text of The Urantia Book is in the public domain (Michael Foundation v. Urantia Foundation, 10th Cir. 2003). All use of "Urantia" is nominative fair use to identify the subject matter.
Source: README.md at commit c4154ee
Get Table of Contents
Get the full table of contents of the Urantia Papers. Returns the Foreword and the 4 parts, with all 197 papers and their titles.
langList Papers
List all 197 papers of the Urantia Papers with their metadata (id, title, partId, labels), as a flat list.
langGet Paper
Get a single paper with all its paragraphs. Paper IDs range from 0 (Foreword) to 196. Each paragraph has its reference, section, and plain text, so a whole paper fits in one call. `paper.audio` is one audio file of the whole paper (null when there is none). Optionally include entity mentions.
langpaper_idrequiredinclude_entitiesGet Paper Sections
Get all sections within a paper, ordered by section number. Useful for understanding paper structure before reading specific sections.
langpaper_idrequiredGet Random Paragraph
Get a random paragraph from the Urantia Papers. Great for daily quotes, exploration, or discovering new passages.
langinclude_entitiesinclude_bible_parallelsinclude_urantia_parallelsGet Paragraph
Look up a specific paragraph by reference. Supports three formats: globalId ("1:2.0.1"), standardReferenceId ("2:0.1"), or paperSectionParagraphId ("2.0.1"). The format is auto-detected.
refrequiredlanginclude_entitiesinclude_bible_parallelsinclude_urantia_parallelsGet Paragraph with Context
Get a paragraph with surrounding context (N paragraphs before and after within the same paper). Useful for understanding passages in context.
refrequiredlangwindowinclude_entitiesFull-Text Search
Keyword search across all paragraphs of the Urantia Papers. Mode "auto" (default): a reference such as "68:6.3", "103:2", "Paper 68", or a bare number such as "68" (0 to 196) gives those paragraphs; otherwise the exact phrase first, then every word, then (when few) typo fixes and most of the words. Each result has `match` (reference, exact, all, near, most); `meta.didYouMean` gives the fixed query and `meta.see` names another work the query names. Other modes: "and" (all words), "or" (any word), "phrase" (exact phrase).
qlangpagetypelimitquerypart_idpaper_idinclude_entitiesinclude_bible_parallelsinclude_urantia_parallelsSemantic Search
Search the Urantia Papers using semantic similarity (vector embeddings). Returns conceptually related results even without exact keyword matches. A reference such as "99:1.1" gives those paragraphs; a pasted paragraph gives itself first. Each result has `strength` (strong, related, weak) and `match` (reference, exact, similar). The list holds the 100 nearest; `meta.total` is the length of that list, and `meta.related` counts the related or better.
qlangpagelimitquerypart_idpaper_idinclude_entitiesinclude_bible_parallelsinclude_urantia_parallelsList Entities
Browse the entity catalog: beings, places, orders, races, religions, and concepts mentioned in the Urantia Papers. Supports filtering by type and searching by name.
qpagetypelimitqueryGet Entity
Get detailed information about a specific entity by its slug ID. Returns name, type, aliases, description, related entities, and citation count.
entity_idrequiredGet Entity Paragraphs
Get all paragraphs that mention a specific entity, ordered by position in the text. Useful for studying everything said about a particular being, place, or concept.
pagelimitentity_idrequiredGet Paragraph Audio
Get the audio file URL for a specific paragraph. Accepts any paragraph reference format (globalId "1:2.0.1", standardReferenceId "2:0.1", or paperSectionParagraphId "2.0.1").
paragraph_refrequiredList Bible Books
List all 81 books of the World English Bible (eng-web): 39 Old Testament + 15 deuterocanonical + 27 New Testament. Each entry includes OSIS book code, full name, abbreviation, canonical order, canon, and chapter/verse counts.
langGet Bible Book
Get metadata for a single Bible book including chapter and verse counts. Accepts OSIS codes ("Gen"), USFM codes ("GEN"), full names ("Genesis"), and aliases ("genesis", "1-maccabees") — case-insensitive, hyphens/underscores tolerated.
book_coderequiredGet Bible Chapter
Get every verse in a Bible chapter, ordered by verse number. Accepts OSIS, USFM, full name, or alias for `book_code`.
chapterrequiredbook_coderequiredGet Bible Verse
Get a single verse from the World English Bible (eng-web). Accepts OSIS, USFM, full name, or alias for `book_code`.
verserequiredchapterrequiredbook_coderequiredGet Urantia Parallels for a Bible Verse
Returns the top 10 Urantia paragraphs whose embeddings are nearest to the Bible chunk that contains this verse. Pre-computed at seed time with text-embedding-3-large (3072-d) cosine similarity. Each result carries a similarity score (0..1) and rank (1..10). These are semantic neighbors, not a curated list of parallels.
verserequiredchapterrequiredbook_coderequiredBible Semantic Search
Free-form natural-language search across all Bible chunks, ranked by cosine similarity. Each result includes the top-N pre-computed Urantia paragraphs related to that chunk. One query surfaces both Bible matches and the relevant Urantia content. Optional filters: `canon` (`ot`, `deuterocanon`, `nt`) and `book_code`. Set `urantia_parallel_limit` to 0 to leave out the Urantia paragraphs.
qpagecanonlimitquerybook_codeurantia_parallel_limitList the Works
The works beside the Urantia Papers: the Bible (World English Bible) and 21 texts of the world's religions and traditions, each in the US public domain. `id` is what the other works.* tools take ("bible" or a slug such as "dhammapada"); `unitLabel` is the word for one unit of each work.
langSearch the Works
Keyword search across the Bible and the other works, or one work with `work`. A reference such as "John 3:16", "Jn 3:16-18", "Dhp 183", or "BG 2.47" gives those units first. Otherwise the exact phrase first, then every word, then (when few) a typo fix in `meta.didYouMean`. Each result has `match`, `url`, and its nearest Urantia paragraphs (semantic parallels, not curated ones).
qpageworklimitqueryurantia_parallel_limitSemantic Search of the Works
Natural-language search across the Bible and the other works, or one work with `work`. The list holds the 100 nearest chunks (a few verses each); each has `similarity` and `strength` (strong, related, weak), and `meta.total` is the length of that list, and `meta.related` counts the related or better. Each result has `url` and its nearest Urantia paragraphs (semantic parallels, not curated ones).
qpageworklimitqueryurantia_parallel_limitRead a Work
The units of a reference in one work, in order, at most 200, each with its link: one verse or passage, a short range of up to 50, or a chapter. The prefix is optional ("BG 2.47" and "2.47" are the same); for the Bible, name the book ("John 3:16").
refrequiredlangworkrequiredUrantia Parallels of a Work
The 10 Urantia paragraphs closest in meaning to one unit of a work (the chunk that holds it). Semantic parallels, not curated ones: they do not claim that two teachings are the same. The reference must name one unit.
refrequiredworkrequiredVerify a Quote
Checks whether a quoted passage is in the Urantia Papers. Returns `verdict` (exact, close, not_found), the reference and exact text of the best match, each word that differs, and other places the quote appears. Case and punctuation are ignored. A quote must be at least 4 words and fall within one paragraph. Give `ref` (such as "2:5.1") to also check the reference the quote claims.
reftextrequiredCite a Paragraph
A formatted citation of one paragraph of the Urantia Papers in APA, MLA, Chicago, or BibTeX. The ref is "196:2.1", "1:196.2.1", or "196.2.1".
refrequiredstyle100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
npm install @urantia/api # Typed client for all endpointsnpm install @urantia/auth # OAuth client for accounts.urantiahub.comcurl -X POST https://api.urantia.dev/search \ -H "Content-Type: application/json" \ -d '{"q": "Universal Father", "limit": 10, "type": "and"}'{ "audio": { "tts-1-hd": { "nova": { "format": "mp3", "url": "https://cdn.urantia.dev/audio/eng/paragraphs/nova/tts-1-hd-nova-3:119.1.5.mp3", "bitrate": 160, "duration": 43.3, "fileSize": 866400 } } }}curl -X POST https://api.urantia.dev/feedback \ -H "Content-Type: application/json" \ -d '{"category": "bug", "message": "search returns 500 for phrase mode", "endpoint": "/search", "client": "claude-code"}'# Install dependenciesbun install
# Set up environmentcp .env.example .env# Edit .env with your Supabase DATABASE_URL
# Push schema to databasebun run db:push
# Set up full-text search (run after db:push)bun scripts/run-fts-setup.ts
# Generate audio manifest (requires ../urantia-hub-api)bun run generate-manifest
# Seed database from urantia-papers-jsonbun run seed
# Start dev server (hot reload)bun run devnpx wrangler loginnpx wrangler secret put DATABASE_URL# paste your Supabase connection string (use pooler port 6543)
npx wrangler secret put APP_JWT_PRIVATE_JWK# paste an ES256 private key as a JWK in JSON
npx wrangler secret put ADMIN_USER_IDS# comma-separated Supabase user UUIDs for admin access
# Optional: POST /feedback delivery. Without these, feedback is still saved.npx wrangler secret put RESEND_API_KEYnpx wrangler secret put FEEDBACK_FROM # a sender on a domain verified in Resendnpx wrangler secret put FEEDBACK_TO # comma-separated recipientsnpx wrangler secret put SLACK_FEEDBACK_WEBHOOK_URL # Slack Incoming Webhooknpx wrangler secret put FEEDBACK_IP_PEPPER # random secret for the IP hashbun run deploy