Free, open MCP server for The Urantia Papers. 197 papers, 14,500+ paragraphs, 4,400+ entities.
Free, open MCP server for The Urantia Papers. It provides access to 14,500+ paragraphs across 197 papers, and exposes structured content plus audio URLs for those paragraphs. The server offers full-text search and developer-friendly access to table of contents, papers, and paper sections.
๐ ๏ธ Key Features
Full-text search over Urantia Papers content
Structured access to parts, papers, paragraphs, and sections
Audio URLs for all 14,500+ paragraphs
API endpoints: /toc, /papers, /papers/:id, /papers/:id/sections
๐ Use Cases
Programmatic retrieval of the table of contents (parts โ papers)
Listing all 197 papers or fetching one paper by ID
Accessing sections for a specific paper
Building search experiences and retrieval pipelines
Get the full table of contents of the Urantia Book. Returns all 4 parts and 197 papers with their titles. This is the best starting point to understand the book structure.
Get a random paragraph from the Urantia Book. Great for daily quotes, exploration, or discovering new passages.
Parameters3
include_entities
boolean
optional
Include entity mentions
include_bible_parallels
boolean
optional
Include the top-10 Bible verses semantically nearest to this paragraph (UB โ Bible direction). Pre-computed via text-embedding-3-large cosine similarity.
include_urantia_parallels
boolean
optional
Include the top-10 most-similar OTHER Urantia paragraphs ('see also'). Pre-computed via text-embedding-3-large cosine similarity.
Raw schema
{
"type": "object",
"properties": {
"include_entities": {
"default": false,
"description": "Include entity mentions",
"type": "boolean"
},
"include_bible_parallels": {
"default": false,
"description": "Include the top-10 Bible verses semantically nearest to this paragraph (UB โ Bible direction). Pre-computed via text-embedding-3-large cosine similarity.",
"type": "boolean"
},
"include_urantia_parallels": {
"default": false,
"description": "Include the top-10 most-similar OTHER Urantia paragraphs ('see also'). Pre-computed via text-embedding-3-large cosine similarity.",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
paragraphs.get
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.
Parameters4
ref
string
required
Paragraph reference in any format. Examples: "1:2.0.1", "2:0.1", "2.0.1"
include_entities
boolean
optional
Include entity mentions
include_bible_parallels
boolean
optional
Include the top-10 Bible verses semantically nearest to this paragraph (UB โ Bible direction).
include_urantia_parallels
boolean
optional
Include the top-10 most-similar OTHER Urantia paragraphs ('see also' across the corpus).
Raw schema
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Paragraph reference in any format. Examples: \"1:2.0.1\", \"2:0.1\", \"2.0.1\""
},
"include_entities": {
"default": false,
"description": "Include entity mentions",
"type": "boolean"
},
"include_bible_parallels": {
"default": false,
"description": "Include the top-10 Bible verses semantically nearest to this paragraph (UB โ Bible direction).",
"type": "boolean"
},
"include_urantia_parallels": {
"default": false,
"description": "Include the top-10 most-similar OTHER Urantia paragraphs ('see also' across the corpus).",
"type": "boolean"
}
},
"required": [
"ref"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
paragraphs.context
Get a paragraph with surrounding context (N paragraphs before and after within the same paper). Useful for understanding passages in context.
Parameters3
ref
string
required
Paragraph reference. Examples: "1:2.0.1", "2:0.1", "2.0.1"
window
number
optional
Number of paragraphs before and after (1-10, default 2)
Full-text search across all Urantia Book paragraphs. Supports three modes: "and" (all words must appear, default), "or" (any word), "phrase" (exact phrase). Results ranked by relevance.
Parameters10
query
string
optional
Search query. Example: "nature of God"
q
string
optional
Alias for `query` (REST compatibility).
type
string
optional
Search mode: phrase, and, or
paper_id
string
optional
Filter to a specific paper ID
part_id
string
optional
Filter to a specific part ID (1-4)
page
integer
optional
Page number (0-indexed)
limit
integer
optional
Results per page (1-100)
include_entities
boolean
optional
Include entity mentions
include_bible_parallels
boolean
optional
Include the top-10 Bible verses semantically nearest to each result (UB โ Bible).
include_urantia_parallels
boolean
optional
Include the top-10 most-similar OTHER Urantia paragraphs for each result.
Raw schema
{
"type": "object",
"properties": {
"query": {
"description": "Search query. Example: \"nature of God\"",
"type": "string"
},
"q": {
"description": "Alias for `query` (REST compatibility).",
"type": "string"
},
"type": {
"default": "and",
"description": "Search mode: phrase, and, or",
"type": "string",
"enum": [
"phrase",
"and",
"or"
]
},
"paper_id": {
"description": "Filter to a specific paper ID",
"type": "string"
},
"part_id": {
"description": "Filter to a specific part ID (1-4)",
"type": "string"
},
"page": {
"default": 0,
"description": "Page number (0-indexed)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"default": 20,
"description": "Results per page (1-100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_entities": {
"default": false,
"description": "Include entity mentions",
"type": "boolean"
},
"include_bible_parallels": {
"default": false,
"description": "Include the top-10 Bible verses semantically nearest to each result (UB โ Bible).",
"type": "boolean"
},
"include_urantia_parallels": {
"default": false,
"description": "Include the top-10 most-similar OTHER Urantia paragraphs for each result.",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
search.semantic
Search the Urantia Book using semantic similarity (vector embeddings). Returns conceptually related results even without exact keyword matches. Requires OPENAI_API_KEY.
Parameters9
query
string
optional
Natural language query. Example: "What is the meaning of life?"
q
string
optional
Alias for `query` (REST compatibility).
paper_id
string
optional
Filter to a specific paper ID
part_id
string
optional
Filter to a specific part ID (1-4)
page
integer
optional
Page number (0-indexed)
limit
integer
optional
Results per page (1-100)
include_entities
boolean
optional
Include entity mentions
include_bible_parallels
boolean
optional
Include the top-10 Bible verses semantically nearest to each result (UB โ Bible).
include_urantia_parallels
boolean
optional
Include the top-10 most-similar OTHER Urantia paragraphs for each result.
Raw schema
{
"type": "object",
"properties": {
"query": {
"description": "Natural language query. Example: \"What is the meaning of life?\"",
"type": "string"
},
"q": {
"description": "Alias for `query` (REST compatibility).",
"type": "string"
},
"paper_id": {
"description": "Filter to a specific paper ID",
"type": "string"
},
"part_id": {
"description": "Filter to a specific part ID (1-4)",
"type": "string"
},
"page": {
"default": 0,
"description": "Page number (0-indexed)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"default": 20,
"description": "Results per page (1-100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"include_entities": {
"default": false,
"description": "Include entity mentions",
"type": "boolean"
},
"include_bible_parallels": {
"default": false,
"description": "Include the top-10 Bible verses semantically nearest to each result (UB โ Bible).",
"type": "boolean"
},
"include_urantia_parallels": {
"default": false,
"description": "Include the top-10 most-similar OTHER Urantia paragraphs for each result.",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
entities.list
Browse the entity catalog: beings, places, orders, races, religions, and concepts mentioned in the Urantia Book. Supports filtering by type and searching by name.
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.
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").
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.
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.
Parameters1
book_code
string
required
Book identifier. Examples: "Gen", "GEN", "Genesis", "1Macc", "DanGr"
Returns the top 10 Urantia paragraphs whose embeddings are nearest to the Bible chunk that contains this verse โ the reverse of `include_bible_parallels` on the UB side. 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* parallels, not curated. Treat results as starting points for further reading, not as authoritative parallels.
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 via `bible_parallels` (direction=bible_to_ub). One query surfaces both Bible matches and the relevant UB content. Optional filters: `canon` (`ot`, `deuterocanon`, `nt`) and `book_code`. Set `urantia_parallel_limit` to 0 to suppress the UB attachment. Requires OPENAI_API_KEY.
Parameters7
query
string
optional
Natural language query. Example: "blessed are the poor"
q
string
optional
Alias for `query` (REST compatibility).
canon
string
optional
Filter by canon: ot, deuterocanon, nt
book_code
string
optional
Restrict to a single book. Example: "Matt" or "Matthew"
page
integer
optional
Page number (0-indexed)
limit
integer
optional
Bible results per page (1-100)
urantia_parallel_limit
integer
optional
How many UB paragraphs to attach per Bible result (0-10, default 3). 0 disables.
Raw schema
{
"type": "object",
"properties": {
"query": {
"description": "Natural language query. Example: \"blessed are the poor\"",
"type": "string"
},
"q": {
"description": "Alias for `query` (REST compatibility).",
"type": "string"
},
"canon": {
"description": "Filter by canon: ot, deuterocanon, nt",
"type": "string",
"enum": [
"ot",
"deuterocanon",
"nt"
]
},
"book_code": {
"description": "Restrict to a single book. Example: \"Matt\" or \"Matthew\"",
"type": "string"
},
"page": {
"default": 0,
"description": "Page number (0-indexed)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"default": 20,
"description": "Bible results per page (1-100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"urantia_parallel_limit": {
"default": 3,
"description": "How many UB paragraphs to attach per Bible result (0-10, default 3). 0 disables.",
"type": "integer",
"minimum": 0,
"maximum": 10
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
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.
API Endpoints
Method
Path
Description
GET
/toc
Table of contents (parts โ papers)
GET
/papers
List all 197 papers
GET
/papers/:id
Single paper with all paragraphs
GET
/papers/:id/sections
Sections within a paper
GET
/paragraphs/random
Random paragraph
GET
/paragraphs/:ref
Paragraph by any ID format
GET
/paragraphs/:ref/context
Paragraph with surrounding context
POST
/search
Full-text search with pagination
GET
/audio/:paragraphId
Audio info for a paragraph
POST
/search/semantic
Semantic (vector) search
GET
/entities
List entities (beings, places, concepts, etc.)
GET
/entities/:id
Entity details
GET
/entities/:id/paragraphs
Paragraphs mentioning an entity
GET
/cite
Generate citation (APA, MLA, Chicago, BibTeX)
GET
/og/:ref
Dynamic Open Graph image
POST
/embeddings
Vector embeddings for paragraphs
POST
/feedback
Submit product or API feedback (no auth)
GET
/me
User profile (auth required)
POST
/me/bookmarks
Create bookmark (auth required)
GET
/me/bookmarks
List bookmarks (auth required)
GET
/me/notes
List notes (auth required)
POST
/me/notes
Create note (auth required)
GET
/me/reading-progress
Reading progress (auth required)
GET
/me/preferences
User preferences (auth required)
POST
/auth/authorize
Get authorization code (auth required)
POST
/auth/token
Exchange code for token
GET
/auth/apps/:id
Get OAuth app info
Interactive docs available at /docs (Swagger UI). OpenAPI spec at /openapi.json.
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.
MCP Server
The API includes a built-in MCP server at https://api.urantia.dev/mcp โ connect Claude Desktop, Cursor, or any MCP client to access:
19 tools โ search, paragraph lookup, paper navigation, entity browsing, audio, Bible (WEB) lookup + semantic search, and bidirectional cross-reference enrichment between Urantia and Bible passages (plus paragraph-to-paragraph parallels within the Papers)
2 resource templates โ urantia://paper/{id} (markdown) and urantia://entity/{id}
# Install dependencies
bun install
# Set up environmentcp .env.example .env# Edit .env with your Supabase DATABASE_URL# Push schema to database
bun 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-json
bun run seed
# Start dev server (hot reload)
bun run dev
The server runs at http://localhost:3000 by default.
Deployment
Deployed to Cloudflare Workers. First-time setup:
bash
npx wrangler login
npx 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_KEY
npx wrangler secret put FEEDBACK_FROM # a sender on a domain verified in Resend
npx wrangler secret put FEEDBACK_TO # comma-separated recipients
npx wrangler secret put SLACK_FEEDBACK_WEBHOOK_URL # Slack Incoming Webhook
npx wrangler secret put FEEDBACK_IP_PEPPER # random secret for the IP hash
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.