Jw Org Mcp Pof7 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Jw Org Mcp Pof7 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that provides controlled, verifiable access to content from jw.org for AI applications and LLM integrations.
The JW.Org MCP Tool ensures that scriptural and doctrinal information comes exclusively from official jw.org sources, eliminating the risk of hallucinations or external contamination when handling religious queries. This tool acts as a trusted intermediary between AI applications and jw.org content.
# Clone the repository
git clone https://github.com/yourusername/jw-org-mcp.git
cd jw-org-mcp
# Install dependencies
uv sync
# Install with development dependencies
uv sync --group devuv run jw-org-mcpThe server runs in stdio mode and communicates via the Model Context Protocol.
To use this MCP server with Claude Desktop, add it to your Claude configuration file:
Location:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonConfiguration:
{
"mcpServers": {
"jw-org": {
"command": "uv",
"args": [
"--directory",
"E:\\Projects\\Python\\jw-org-mcp",
"run",
"jw-org-mcp"
]
}
}
}Note: Replace E:\\Projects\\Python\\jw-org-mcp with the actual path to your project directory. On Windows, use double backslashes (\\) in the path.
After saving the configuration:
search_content, get_article, and get_scriptureConfiguration is done via environment variables with the prefix JWORG_MCP_:
# Cache settings
export JWORG_MCP_CACHE_TTL_SECONDS=900 # 15 minutes (default)
export JWORG_MCP_ENABLE_CACHE=true
# Request settings
export JWORG_MCP_REQUEST_TIMEOUT=30
export JWORG_MCP_MAX_RETRIES=3
# Search settings
export JWORG_MCP_DEFAULT_LANGUAGE=E # English
export JWORG_MCP_DEFAULT_SEARCH_LIMIT=10
# Logging
export JWORG_MCP_LOG_LEVEL=INFOSearch JW.Org content across multiple types.
Parameters:
query (required): Search query - can be natural languagefilter (optional): Content type - all, publications, videos, audio, bible, indexes (default: all)language (optional): Language code - E for English, S for Spanish, etc. (default: E)limit (optional): Maximum results (default: 10)Example:
{
"query": "What does the Bible say about love?",
"filter": "all",
"limit": 5
}The query parser automatically extracts "love" as the search term.
Retrieve full article content from a jw.org URL.
Parameters:
url (required): Article URL from wol.jw.orgExample:
{
"url": "https://wol.jw.org/en/wol/d/r1/lp-e/1985720"
}Get scripture text by reference.
Parameters:
reference (required): Scripture reference (e.g., "John 3:16", "1 Thessalonians 5:3")translation (optional): Bible translation code (default: "nwtsty")Example:
{
"reference": "John 3:16"
}Get cache statistics including hit rate and entry count.
Parameters: None
# Install with development dependencies
uv sync --group dev
# Install pre-commit hooks (optional)
uv run pre-commit install# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=jw_org_mcp --cov-report=html
# Run specific test file
uv run pytest tests/test_parser.py# Run linter
uv run ruff check .
# Format code
uv run ruff format .
# Type checking
uv run mypy src/jw_org_mcpjw-org-mcp/
├── src/
│ └── jw_org_mcp/
│ ├── __init__.py # Entry point
│ ├── auth.py # Authentication & CDN discovery
│ ├── cache.py # Caching layer
│ ├── client.py # JW.Org API client
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── models.py # Data models
│ ├── parser.py # Content parsers
│ └── server.py # MCP server implementation
├── tests/ # Test suite
├── docs/ # Documentation
├── pyproject.toml # Project configuration
└── README.mdAll responses include metadata for verification:
{
"data": {
// Response-specific data
},
"metadata": {
"source_domain": "jw.org",
"source_url": "https://...",
"timestamp": "2024-01-01T00:00:00Z",
"query_params": {},
"cache_hit": false
}
}The tool provides graceful error handling with specific exception types:
AuthenticationError: JWT token issuesCDNDiscoveryError: CDN discovery failuresSearchError: Search operation failuresContentRetrievalError: Content fetch failuresParseError: Content parsing failuresAll errors are logged and returned with descriptive messages.
[Add your license here]
For issues and questions:
docs/ folder~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.