JW Research MCP

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.

Category
Visit Server

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_books
  • get_bible_verse
  • get_verse_with_study
  • get_bible_verse_url
  • getWorkbookLinks / getWorkbookContent
  • getWatchtowerLinks / getWatchtowerContent
  • get_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 response
  • explore — map themes and connections
  • compare — contrast publications, passages, or time periods
  • verify — 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_research JSON 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured