mcpField
U
Urantia Papers

Urantia Papers

远程服务
urantia.dev游戏娱乐11 天前更新

关于 Urantia Papers

Urantia Papers 为开发者和 AI Agent 提供 API 与 MCP 服务,用于检索 Urantia Papers 及相关文本。它结合全文搜索、结构化内容、音频、引文和交叉引用。

主要功能

  1. 01全文与语义搜索
  2. 02浏览论文、章节和段落
  3. 03段落音频链接
  4. 04实体浏览与引文生成
  5. 05圣经及文本交叉引用

适用场景

  1. 01按主题或词句查找段落
  2. 02结合上下文阅读整篇论文
  3. 03比较 Urantia 与圣经段落

MCP 相关

内置 MCP 服务提供搜索、段落查询、论文导航、实体、音频、引文和交叉引用工具,并提供论文与实体资源及学习提示词模板。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.urantia.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

19

此工具无需参数。

详细介绍

Urantia Papers API

smithery badge mcptry

面向开发者和 AI Agent 的 Urantia Papers API。提供全文搜索、结构化内容访问,以及涵盖 197 篇论文中超过 14,500 个段落的音频 URL。

API 端点

方法路径描述
GET/toc目录(部分 → 论文)
GET/papers列出全部 197 篇论文
GET/papers/:id单篇论文及其全部段落
GET/papers/:id/sections论文中的各个章节
GET/paragraphs/random随机段落
GET/paragraphs/:ref按任意 ID 格式获取段落
GET/paragraphs/:ref/context段落及其上下文
POST/search带分页的全文搜索
GET/audio/:paragraphId段落的音频信息
POST/search/semantic语义(向量)搜索
GET/entities列出实体(存在、地点、概念等)
GET/entities/:id实体详情
GET/entities/:id/paragraphs提及某个实体的段落
GET/cite生成引文(APA、MLA、Chicago、BibTeX)
GET/og/:ref动态 Open Graph 图片
POST/embeddings段落的向量嵌入
POST/feedback提交产品或 API 反馈(无需身份验证)
GET/me用户资料(需要身份验证)
POST/me/bookmarks创建书签(需要身份验证)
GET/me/bookmarks列出书签(需要身份验证)
GET/me/notes列出笔记(需要身份验证)
POST/me/notes创建笔记(需要身份验证)
GET/me/reading-progress阅读进度(需要身份验证)
GET/me/preferences用户偏好设置(需要身份验证)
POST/auth/authorize获取授权码(需要身份验证)
POST/auth/token用授权码换取令牌
GET/auth/apps/:id获取 OAuth 应用信息

可在 /docs 查看交互式文档(Swagger UI)。OpenAPI 规范位于 /openapi.json。

链接

SDK

官方 TypeScript SDK 可在 npm 上获取:

npm install @urantia/api    # Typed client for all endpoints
npm install @urantia/auth   # OAuth client for accounts.urantiahub.com

文档请参阅 docs.urantia.dev/sdks/overview。

段落 ID 格式

API 接受三种引用格式,并根据字符串自动识别:

格式示例结构
globalId1:2.0.1partId:paperId.sectionId.paragraphId
standardReferenceId2:0.1paperId:sectionId.paragraphId
paperSectionParagraphId2.0.1paperId.sectionId.paragraphId

搜索

curl -X POST https://api.urantia.dev/search \
  -H "Content-Type: application/json" \
  -d '{"q": "Universal Father", "limit": 10, "type": "and"}'

搜索模式:and(所有词,默认)、or(任意词)、phrase(精确匹配)。可选筛选条件:paperId、partId。

音频

段落包含一个 audio 字段——这是一个按模型和音色作为键的嵌套对象;如果没有音频,则为 null:

{
  "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
      }
    }
  }
}

可用模型和音色因段落而异。专用的 /audio/:paragraphId 端点仅返回指定段落的音频数据。

缓存

响应包含 Cache-Control 标头。Cloudflare CDN 通过 s-maxage 在边缘节点缓存:

路由CDN(s-maxage)浏览器(max-age)
/toc、/papers/*、/paragraphs/:ref、/audio/*24 小时1 小时
/search1 小时5 分钟
/paragraphs/randomno-storeno-store
/feedbackno-storeno-store
/、/docs、/openapi.json1 小时5 分钟

面向 AI Agent

推荐流程:

  1. GET /toc — 了解全书结构
  2. POST /search — 查找相关段落
  3. GET /paragraphs/:ref/context?window=3 — 获取上下文
  4. GET /papers/:id — 阅读完整论文

发现错误、文档遗漏,或有改进建议?请告诉我们。无需身份验证。

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"}'

category 的取值为 bug、docs、api、product、other。message 最多可包含 4000 个字符。可选字段:ref、endpoint、requestId、client、contact、pageUrl。每个 IP 地址每分钟最多可发送 5 次请求,每 15 分钟最多可发送 10 次请求。

反馈内容是不可信数据。它会被存储并转发给维护者,绝不会被执行,也不会作为指令传递给模型。如果将反馈粘贴到 Agent 聊天中,请同样将其视为不可信数据。

MCP 服务

该 API 在 https://api.urantia.dev/mcp 内置了 MCP 服务 — 连接 Claude Desktop、Cursor 或任何 MCP 客户端即可使用:

  • 26 个工具 — 搜索、段落查询、论文导航、实体浏览、音频、圣经(WEB)查询 + 语义搜索、跨圣经与其他著作的搜索和阅读、引文核查、引用,以及《乌兰蒂亚书》与圣经段落之间的双向交叉引用扩展(另有《乌兰蒂亚书》各论文内部的段落间平行内容)
  • 2 个资源模板 — urantia://paper/{id}(Markdown)和 urantia://entity/{id}
  • 2 个提示词模板 — study_assistant、comparative_theology

可通过 Smithery 一键安装。

客户端可在 https://api.urantia.dev/.well-known/mcp.json(以及 /.well-known/mcp/server-card.json)发现该服务。

身份验证

公共端点无需身份验证。用户端点(/me/*)需要 JWT。OAuth 流程:

  1. 通过 POST /auth/apps(管理员)注册应用,或通过 accounts.urantiahub.com/apps 自助注册
  2. 用户在 accounts.urantiahub.com 登录
  3. 通过 POST /auth/token 将授权码兑换为访问令牌
  4. 将令牌作为 Authorization: Bearer <token> 传入

访问令牌为 ES256 JWT,有效期为 15 分钟,并附带刷新令牌。浏览器应用支持 PKCE。

可观测性

  • 日志记录: 通过 @logtail/edge 使用 BetterStack — 带有请求元数据的结构化 JSON 日志
  • 错误跟踪: 全局错误处理程序会将堆栈跟踪发送到 BetterStack
  • 健康检查: GET /health — 验证数据库连接
  • 运行时间: BetterStack 运行时间监控

技术栈

开发

# Install dependencies
bun install

# Set up environment
cp .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

服务器默认运行在 http://localhost:3000。

部署

部署到 Cloudflare Workers。首次设置:

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

部署:

bun run deploy

数据

内容来源于 urantia-papers-json — 197 篇论文、1,626 个章节、14,500 多个段落,并通过 cdn.urantia.dev 提供音频朗读。

许可证

本项目采用 MIT License 许可。

免责声明

这是由 Adams Technologies LLC 发起的独立社区项目,与 Urantia Foundation 无隶属关系、未获其认可,也未与其建立关联。《乌兰蒂亚书》的英文原文属于公共领域(Michael Foundation v. Urantia Foundation,第 10 巡回上诉法院,2003 年)。所有对 “Urantia” 的使用均属于指称性合理使用,仅用于标识主题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。