jw-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jw-mcp Show me the Watchtower article for this week."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jw-mcp
JW.org 공개 자료(성경·파수대·집회 워크북·영상 자막·교과)를 Claude 에서 대화로 쓰기 위한 원격 MCP 서버. 자체 OAuth 2.1 인증(다중 사용자)을 갖추고 hosub 홈서버에서 독립 프로세스로 돈다.
상류 advenimus/jw-mcp 의 도구 구현을 이어받되,
Smithery 호스팅 전제를 걷어내고 자체 호스팅 + 인증 + 운영 관측을 붙였다.
특징
도구 11종 — 성경 구절·연구 노트, 파수대, 집회 워크북, 영상 자막, 교과
자체 OAuth 2.1 — hosub 의 인증과 코드·DB·issuer 를 전혀 공유하지 않는다
다중 사용자 — 가입 → 관리자 승인 → 커넥터 연결. 계정을 끄면 토큰이 즉시 죽는다
경로 분리 배치 —
hosub.duckdns.org/jw하나로 기존 서비스와 도메인을 공유대시보드 API — hosub 대시보드가 그대로 그릴 수 있는 형태로 지표를 내보낸다
이중 진입점 — 원격(HTTP+OAuth)과 로컬(stdio, 인증 없음)을 같은 도구 목록으로
Related MCP server: JW MCP Server
도구
도구 | 설명 |
| 성경 책 이름 검색 (한/영) |
| 구절 본문 조회 |
| 구절 + 연구 노트 + 상호 참조 |
| jw.org finder 링크 생성 |
| 연구용 파수대 기사 목록 (현재 호 자동 계산) |
| 파수대 기사 본문 (RTF → 평문) |
| 집회 워크북 주차 목록 |
| 워크북 주차 본문 (RTF → 평문) |
| 교과 과 목록 |
| 교과 본문 |
| 영상 자막 (ID 또는 URL) |
성경 책 번호는 1–39(구약) / 40–66(신약). 파수대는 현재 월 −2개월이 연구용 호다
(2026년 7월 → 2026년 5월호). 언어는 langwritten 으로 바꾼다(E 기본, K 한국어).
아키텍처
[claude.ai / 모바일 앱]
│ Custom Connector (OAuth 2.1 + PKCE)
▼
[Caddy · hosub.duckdns.org]
├─ /jw/* ──▶ jw-mcp 127.0.0.1:8604 ← 이 저장소
├─ /.well-known/oauth-*/jw... ──▶ jw-mcp 127.0.0.1:8604
├─ / · /api/* · /static/* ──▶ hosub 대시보드 :8701
└─ (그 외) ──▶ hosub MCP :8700
[hosub 대시보드 :8701] ──▶ http://127.0.0.1:8604/api/dash/* (Caddy 미라우팅 = 비공개)jw-mcp 는 hosub 과 호스트만 공유한다. 프로세스·저장소·DB·OAuth issuer·실행 계정이 전부 분리되어 있어, 한쪽을 배포하거나 껐다 켜도 다른 쪽 세션이 끊기지 않는다.
인증 경계
경계 | 자격증명 | 쓰이는 곳 |
MCP 도구 호출 | OAuth 2.1 Bearer (사용자 계정에 바인딩) |
|
브라우저 로그인 | 서명 세션 쿠키 ( | 계정·관리자 화면 |
대시보드 조회 |
|
|
셋은 서로를 대신하지 못한다. 특히 세션 쿠키로는 /jw/mcp 에 접근할 수 없다.
다중 사용자 정책
가입 → status=pending → 관리자 승인 → active → 커넥터 연결 가능최초 가입자는 자동으로 관리자 겸 활성 사용자가 된다(그러지 않으면 아무도 아무를 승인할 수 없다).
JW_ADMIN_EMAILS로 추가 관리자를 지정할 수 있다.JW_INVITE_CODE를 설정하면 코드를 아는 사람은 승인 없이 바로 쓴다.계정을
disabled로 바꾸면 이미 발급된 토큰이 그 즉시 전부 무효가 된다 (Bearer 검증이 매 요청 계정 상태를 확인한다). 리프레시로도 되살아나지 않는다.마지막 활성 관리자는 비활성화할 수 없다 — 자기 자신을 잠그는 사고 방지.
설치
서버 설치 절차는 docs/SETUP.md 를 따른다. 요약:
sudo git clone https://github.com/teenfo/JW-MCP.git /opt/jw-mcp
sudo bash /opt/jw-mcp/deploy/bootstrap.sh # 유저·의존성·.env·systemd 자동 준비
# 출력되는 안내대로 Caddy 스니펫 반영 → /jw/signup 에서 첫 계정 생성main 에 머지하면 jw-mcp-update.timer 가 5분 내 자동 배포한다(pull 기반).
로컬 개발
npm install
npm test # 도구 레지스트리 단위 테스트 (네트워크 불필요)
npm run test:oauth # OAuth 전 구간 통합 테스트 (서버를 직접 띄운다)
JW_SESSION_SECRET=$(openssl rand -hex 32) \
JW_INTERNAL_TOKEN=$(openssl rand -hex 32) \
JW_SECURE_COOKIES=false \
npm run start:http # http://127.0.0.1:8604/jw/signup로컬 Claude Desktop 은 인증 없이 stdio 로 붙일 수 있다:
{ "mcpServers": { "jw": { "command": "node", "args": ["/path/to/JW-MCP/src/index.js"] } } }도구를 추가할 때
src/tools/registry.js 한 곳만 고치면 stdio·HTTP 양쪽에 동시에 반영된다.
상류처럼 진입점마다 배열을 따로 들고 있지 않으므로 한쪽만 고쳐 누락되는 일이 없다.
src/tools/<이름>.js에 도구 정의 + 구현 + 핸들러(자기 도구가 아니면null반환)src/tools/registry.js의allTools와toolHandlers에 추가tests/registry.test.js의 도구 개수 갱신
문서
docs/SETUP.md— 서버 설치·Caddy 반영·대시보드 연동 런북docs/DASHBOARD-API.md— 대시보드 연동 API 스펙 (소비자 구현용 계약)docs/UPSTREAM-README.md— 상류 저장소 원문 (도구 상세)CLAUDE.md— Claude Code 용 저장소 안내
라이선스
MIT. JW.org 공개 자료를 조회할 뿐이며 어떤 콘텐츠도 재배포하지 않는다. 이 저장소는 Watch Tower Bible and Tract Society 와 무관한 비공식 프로젝트다.
Available Tools
11 toolsget_bible_verseA
Get plain Bible verse text (New World Translation, Study Edition) from wol.jw.org. Returns the COMPLETE verse — poetic books such as Psalms and Proverbs are stored as separate lines on WOL and are joined here, so contrast verses come back whole. For study notes and cross-references use get_verse_with_study instead.
Inputs: book (required), verse (required), chapter (required), langwritten.
get_bible_verse_urlA
Get the jw.org URL for a Bible verse or range of verses. Returns a direct link to view the scripture on jw.org. Supports single verses (e.g., verse: "18"), verse ranges (e.g., verse: "14-16"), and comma-separated verses (e.g., verse: "1,3,5" - will convert to range if contiguous). Use search_bible_books to find book numbers. Perfect for adding clickable scripture links to markdown documents.
Inputs: book (required), chapter (required), verse, langwritten.
get_jw_captionsA
Fetches video captions from JW.org by video ID or URL. Accepts either a direct video ID (e.g., "pub-jwbvod25_17_VIDEO") or a JW.org URL (e.g., "https://www.jw.org/finder?srcid=jwlshare&wtlocale=E&lank=pub-jwbvod25_17_VIDEO")
Inputs: video_id (required).
get_lesson_contentB
「하느님의 교훈이 담긴 성경 이야기 (훈)」 특정 과의 내용을 가져옵니다. 1-116과까지 지원합니다.
Inputs: lesson_number (required), language.
get_lesson_listB
「하느님의 교훈이 담긴 성경 이야기 (훈)」 전체 목록을 가져옵니다.
Inputs: end, start, language.
get_verse_with_studyA
Get Bible verse(s) with comprehensive study content from wol.jw.org. Supports single verses or ranges (e.g., "14-16"). Returns verse text, study notes, cross-references, research articles from the Research Guide, and chapter outlines. Field selection allows you to customize what content is returned.
Inputs: book (required), verse (required), chapter (required), fetch, +3 more.
getWatchtowerContentA
STEP 2: Get the actual Watchtower article content after the user chooses an article. Takes the RTF URL from getWatchtowerLinks, downloads and converts it to clean plain text (parsedText), and additionally returns a structured object that recovers the article's shape: paragraph numbers with their questions, section headings and the paragraphs they cover, theme scripture, key-point box, opening/closing songs, read-aloud scriptures, footnotes and the review box. Use structured to build study notes; fall back to parsedText when you need the raw wording.
Inputs: url (required), title, structured, langwritten.
getWatchtowerLinksA
STEP 1: Get JW.org Watchtower study articles. When a user asks for current/this week's Watchtower content, use this tool FIRST without any parameters — it automatically picks the right issue (Watchtower study articles are published 2 months ahead, so July 2026 studies come from the May 2026 issue). Each article includes machine-readable weekStart/weekEnd (ISO dates) and isCurrentWeek, so you never have to parse the date out of the title, plus wolUrl — a human-readable wol.jw.org link for the current week's article.
Inputs: pub, issue, fileformat, langwritten, +1 more.
getWorkbookContentA
STEP 2: Get the actual CLM workbook content after user chooses a week. Use this tool AFTER getWorkbookLinks when user specifies which week they want (e.g., "May 5-11" or "June 30-July 6"). Takes the RTF URL from Step 1 results, downloads the RTF file, parses it to clean plain text, and returns the formatted workbook content with proper line breaks and structure.
Inputs: url (required).
getWorkbookLinksA
STEP 1: Get JW.org "Our Christian Life and Ministry" (CLM) meeting workbook weeks. When a user asks for CLM workbook content, use this tool FIRST to show them available weeks. Returns weekly titles like "May 5-11 (Proverbs 12)" with their RTF download URLs. Automatically uses current month/year for the issue.
Inputs: pub, issue, fileformat, langwritten.
search_bible_booksA
Search for Bible books by name or abbreviation and get their book number (1-66), which the other scripture tools require. Searches English names/abbreviations and, when langwritten is set, that language's names and abbreviations too. Examples: "matt" -> Matthew (40), "잠언" or "잠" (with langwritten "KO") -> 잠언 (20), "1 john" -> 1 John (62).
Inputs: query (required), limit, langwritten.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct resource or step in a workflow. The workbook and Watchtower tools are explicitly paired by step and publication, while Bible tools clearly separate book search, plain text, study content, and URL generation. No two tools appear to do the same thing.
The tool names mix camelCase (getWorkbookLinks) and snake_case (search_bible_books) conventions, and use both 'get' and 'search' as verbs. The pattern is evident but not uniformly applied, making it a mixed convention that remains readable.
With 11 tools, the set is well-scoped for the server's purpose of accessing JW.org resources. Each tool covers a distinct function within the overall workflow, and the count feels appropriate without being excessive or too thin.
The server covers the primary workflows: retrieving CLM workbook weeks and content, Watchtower articles and detailed content, Bible book lookup, plain and study-enhanced verses, verse URLs, lesson lists/content, and video captions. No obvious gaps hamper the intended use cases.
Maintenance
Related MCP Connectors
Scripture-cited answers to any Bible question, plus verse text and study pages, for AI agents.
Search and read the Claude Platform documentation and API reference.
Your docs site. No editor to open. Just ask Claude.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to the Watchtower Online Library (WOL) with advanced search capabilities, document retrieval, and multilingual support. Enables users to search and browse Jehovah's Witnesses publications through natural language interactions.5MIT
- AlicenseAqualityBmaintenanceProvides access to JW.org content including Christian Life and Ministry workbook materials, Watchtower study articles, and video captions with subtitles across multiple languages.9245 npm43MIT
- FlicenseAqualityDmaintenanceProvides controlled, verifiable access to jw.org content for AI applications, enabling search, article retrieval, and scripture lookup while preventing hallucinations.4-
- AlicenseNot gradedqualityDmaintenanceEnables Claude.ai to access and retrieve Bible verses, passages, chapters, and lists of books or translations from public domain versions like KJV, using the free bible-api.com.MIT