JW Research MCP
A remote MCP server for traceable research across JW.org and the Watchtower Online Library, providing tools for searching, retrieving articles, footnotes, cross-references, and daily texts with optional AI-powered synthesis.
README
JW Research MCP
A remote Model Context Protocol server for traceable research across JW.org and
the Watchtower Online Library. This project extends
advenimus/jw-mcp with full WOL
articles, publication pagination, direct library search, Study Bible footnotes,
full-text cross-references, daily texts, caching, and optional server-side
research synthesis with Kimi. Paragraphs, scriptures, related articles, and
publication images retain direct source links for verification.
What is preserved
The original tool names and workflows remain available:
search_bible_booksget_bible_verseget_verse_with_studyget_bible_verse_urlgetWorkbookLinks/getWorkbookContentgetWatchtowerLinks/getWatchtowerContentget_jw_captions
get_verse_with_study.fields now also accepts footnotes. WOL exposes
translation footnotes separately from both study notes and marginal
cross-references, so no content is duplicated between those fields.
Research tools
| Tool | Purpose |
|---|---|
get_footnotes |
Full translation footnotes for a verse |
get_article_full |
Complete article with paragraph anchors, live inline links, images, and related material |
get_article_media |
Paginated full-size images, thumbnails, captions, alt text, and exact source anchors |
get_related_content |
Linked subheadings and WOL-recommended similar material |
get_book_content |
Bounded publication slices by sequential TOC entry and paragraph page |
get_publication_toc |
Direct article URLs, including natural TOC pages for large works |
search_wol_library |
Direct WOL full-text search |
search_wol_media |
Topic search for images across matching WOL articles |
get_cross_references |
Marginal references with complete cited verse text |
get_daily_text |
Daily scripture and comment for a date |
analyze_research |
Conversational Kimi K3 synthesis with evidence, URLs, confidence, gaps, and follow-ups |
All network-backed responses contain:
{
"metadata": {
"source_url": "https://...",
"timestamp": "2026-07-28T00:00:00.000Z",
"cache_hit": false
}
}
The default cache TTL is 15 minutes. Retrieval tools accept langwritten;
supported WOL routes currently include E, S, F, X, I, T, J,
KO, and U. Research retrieval tools support format: "json" and
format: "markdown".
Markdown output uses clickable titles, paragraph source anchors, scripture references, footnotes, related articles, and image links. JSON output retains both plain text and source URLs for programmatic use.
Deep and conversational research
analyze_research supports four modes:
answer— direct evidence-based responseexplore— map themes and connectionscompare— contrast publications, passages, or time periodsverify— audit a claim and identify missing evidence
Use depth: "focused", "deep", or "exhaustive". For follow-up questions,
pass a concise conversation_context; it preserves continuity but is never
treated as source evidence. Every result includes a short answer, deep
synthesis, source-linked key points, confidence ratings, consistency or
tension findings, uncertainties, a source index, and suggested follow-ups.
For maximum accuracy, retrieve broad evidence in bounded pages first, include
each block's source and source_url, and then call analyze_research.
Publication pagination
get_book_content treats chapter as a 1-based sequential entry in the
publication TOC. A call returns at most three chapters and 25 paragraphs per
chapter. Use page and next_page, or an explicit paragraph_range, to walk
the content without placing an entire bound volume in one model context.
{
"publication_code": "it",
"chapter_range": "1-3",
"page": 1,
"page_size": 15,
"langwritten": "E",
"format": "json"
}
For large reference works such as Insight on the Scriptures,
get_publication_toc also exposes WOL's natural TOC pages.
Local development
Requires Node.js 20 or newer.
npm install
npm run typecheck
npm test
npm start
To test Streamable HTTP:
cp .env.example .env
npm run build
MCP_TRANSPORT=http MCP_AUTH=false npm run start:http
Then run the MCP Inspector:
npx @modelcontextprotocol/inspector
Connect it to http://localhost:8080/mcp.
The live WOL smoke test is:
npm run build
node scripts/smoke-live.mjs
Environment variables
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
stdio |
Use http for Railway |
PORT / MCP_PORT |
8080 |
HTTP listen port |
MCP_BASE_URL |
local URL | Public Railway URL used in OAuth metadata |
MCP_AUTH |
true |
Set false only for isolated testing |
MCP_AUTH_SECRET |
— | Required when OAuth is enabled; minimum 8 characters |
KIMI_API_KEY |
— | Required only by analyze_research |
KIMI_MODEL |
kimi-k3 |
Kimi model used for research synthesis |
KIMI_BASE_URL |
https://api.moonshot.ai/v1 |
OpenAI-compatible Kimi API base URL |
CACHE_TTL_SECONDS |
900 |
In-memory fetch cache TTL |
DEFAULT_LANGUAGE |
E |
Default langwritten value |
Railway
The included multi-stage Dockerfile compiles TypeScript and the included
railway.toml uses /health for deployment health checks. Configure the
environment variables above, deploy, generate a Railway domain, then set
MCP_BASE_URL to that exact https://... domain and redeploy.
The MCP endpoint is:
https://YOUR-RAILWAY-DOMAIN/mcp
Keep this connector separate from existing services until its retrieval and analysis behavior has been verified with your own research workflow.
Tests
The automated suite verifies:
- footnotes remain distinct from study notes and cross-references
- full-article paragraph numbering and marker preservation
- linked paragraph citations, media captions, and related-material parsing
- hard paragraph pagination bounds
- cache-hit behavior
- localized WOL route construction
- schema-validated
analyze_researchJSON without Markdown fences
The live smoke test additionally verifies a real Insight TOC and pagination, WOL search, article media, related research trails, full-text cross-references, daily text parsing, and cached repeats.
Attribution and license
Forked from advenimus/jw-mcp.
Licensed under the MIT license of the upstream project.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。