CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

jDocmunch MCP

jgravelle/jdocmunch-mcp
179STDIOregistry active
Summary

Most agents still burn thousands of tokens dumping entire documentation files into context to find one config block. This server indexes docs once by section hierarchy, then lets you search and retrieve at heading granularity with byte-precise extraction. It parses Markdown, reStructuredText, AsciiDoc, Jupyter notebooks, HTML, YAML, JSON, and OpenAPI specs into stable section IDs that survive re-indexing. Tools cover discovery, structure browsing, semantic search, and single or batch retrieval. Sections include summaries, tags, content hashes, and parent/child wiring. Implements jMRI-Full with local-first storage under `~/.doc-index/`. Built for workflows where you need agents to navigate technical docs structurally instead of grep-and-pray or brute-force file reading.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

You're Wasting Tokens... That Stops NOW

Most AI agents still explore documentation the expensive way:

open file → skim hundreds of irrelevant paragraphs → open another file → repeat

That burns tokens, floods context windows with noise, and forces models to reason through a lot of text they never needed in the first place.

jDocMunch-MCP lets AI agents navigate documentation by section instead of reading files by brute force.
It indexes a documentation set once, then retrieves exactly the section the agent actually needs, with byte-precise extraction from the original file.

TaskTraditional approachWith jDocMunch
Find a configuration section~12,000 tokens~400 tokens
Browse documentation structure~40,000 tokens~800 tokens
Explore a full doc set~100,000 tokens~2,000 tokens

Index once. Query cheaply forever.
Precision context beats brute-force context.


jDocMunch MCP

AI-native documentation navigation for serious agents

License MCP Local-first jMRI DOI PyPI version PyPI - Python Version

Commercial licenses

jDocMunch-MCP is free for non-commercial use.

Commercial use requires a paid license.

jDocMunch-only licenses

  • Builder — $29 — 1 developer
  • Studio — $99 — up to 5 developers
  • Platform — $499 — org-wide internal deployment

Want the full jMunch suite (code + docs + data)?

  • Munch Trio Builder Bundle — $99
  • Munch Trio Studio Bundle — $449
  • Munch Trio Platform Bundle — $2,499

1.x compatibility commitment

Every 1.x license entitles you to every future 1.x release. We will never ship a 1.x version that:

  • removes or renames an MCP tool (deprecated tool names keep their aliases),
  • drops a Section field from the response shape,
  • forces a reindex without auto-migrating your existing index on first load,
  • changes the JSON wire format of any tool response in a way that breaks an existing consumer,
  • or makes a previously-default behavior raise.

Anything that would require breaking these promises is reserved for a future major version (2.x). The full machine-checked contract is enforced via tests/test_server.py (tool-name and required-field invariants) and the replay-fixture gate that runs on every release.

Stop dumping documentation files into context windows. Start navigating docs structurally.

jDocMunch indexes documentation once by heading hierarchy and section structure, then gives MCP-compatible agents precise access to the explanations they actually need instead of forcing them to brute-read files.

It is built for workflows where token efficiency, context hygiene, and agent reliability matter.


Why this exists

Large context windows do not fix bad retrieval.

Agents waste money and reasoning bandwidth when they:

  • open entire documents to find one configuration block
  • repeatedly re-read headings, boilerplate, and unrelated sections
  • lose important explanations inside oversized context payloads
  • consume documentation as flat text instead of structured knowledge

jDocMunch fixes that by changing the unit of access from file to section.

Instead of handing an agent an entire document, it can retrieve exactly:

  • an installation section
  • a configuration section
  • an API explanation
  • a troubleshooting section
  • a specific subtree of related headings

That makes documentation exploration cheaper, faster, and more stable.


What makes it different

Section-first retrieval

Search and retrieve documentation by section, not just file path or keyword match.

Byte-precise extraction

Full content is pulled on demand from exact byte offsets into the original file.

Stable section IDs

Sections retain durable identities across re-indexing when path, heading text, and heading level remain unchanged.

Local-first architecture

Indexes and raw docs are stored locally. No hosted dependency required.

MCP-native workflow

Works with Claude Desktop, Claude Code, Google Antigravity, and other MCP-compatible clients.


What gets indexed

Every section stores:

  • title and heading level
  • one-line summary
  • extracted tags and references
  • SHA-256 content hash for drift detection
  • byte offsets into the original file

This allows agents to discover documentation structurally, then request only the specific section they need.


Why agents need this

Traditional doc retrieval methods all break in different ways:

  • File scanning loads far too much irrelevant text
  • Keyword search finds terms but often loses context
  • Chunking breaks authored hierarchy and separates explanations from examples

jDocMunch preserves the structure the human author intended:

  • heading hierarchy
  • parent/child relationships
  • section boundaries
  • coherent explanatory units

Agents do not need bigger context windows.
They need better navigation.


How it works

jDocMunch implements jMRI-Full — the open specification for structured retrieval MCP servers. jMRI-Full covers the full stack: discover, search, retrieve, and metadata operations with batch retrieval, hash-based drift detection, byte-offset addressing, and a complete _meta envelope on every call.

  1. Discovery GitHub API or local directory walk

  2. Security filtering Traversal protection, secret exclusion, binary detection

  3. Parsing Format-aware section splitting: heading-based (Markdown/MDX/HTML/RST/AsciiDoc), structure-based (OpenAPI tags, JSON keys, XML elements), or cell-based (Jupyter)

  4. Hierarchy wiring Parent/child relationships established

  5. Summarization Heading text → AI batch summaries → title fallback

  6. Storage JSON index + raw files stored locally under ~/.doc-index/

  7. Retrieval O(1) byte-offset seeking via stable section IDs


Stable section IDs

{repo}::{doc_path}::{ancestor-chain/slug}#{level}

The slug is prefixed with the ancestor heading chain, making IDs both readable and stable. A new heading inserted in one branch of a document never renumbers IDs in another branch.

Examples:

  • owner/repo::docs/install.md::installation#1
  • owner/repo::docs/install.md::installation/prerequisites#3
  • owner/repo::README.md::usage/configuration/advanced-configuration#4
  • local/myproject::guide.md::configuration#2

IDs remain stable across re-indexing when the file path, heading text, heading level, and parent heading chain do not change.


Installation

Prerequisites

  • Python 3.10+
  • pip

Install

pip install jdocmunch-mcp

Verify:

jdocmunch-mcp --help

Configure an MCP client

PATH note: MCP clients often run with a restricted environment where jdocmunch-mcp may not be found even if it works in your shell. Using uvx is the recommended approach because it resolves the package on demand without relying on your system PATH. If you prefer pip install, use the absolute path to the executable instead.

Common executable paths

  • Linux: /home/<username>/.local/bin/jdocmunch-mcp
  • macOS: /Users/<username>/.local/bin/jdocmunch-mcp
  • Windows: C:\\Users\\<username>\\AppData\\Roaming\\Python\\Python3xx\\Scripts\\jdocmunch-mcp.exe

Claude Desktop / Claude Code

Config file location:

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Linux~/.config/claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

Minimal config

{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["jdocmunch-mcp"]
    }
  }
}

With optional AI summaries and GitHub auth

{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["jdocmunch-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_...",
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

For Anthropic or Gemini, the base uvx jdocmunch-mcp command is enough once the corresponding API key is present. For OpenAI-compatible providers such as OpenAI, MiniMax, or GLM-5, include the optional dependency in the launcher command:

{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["--with", "openai", "jdocmunch-mcp"],
      "env": {
        "MINIMAX_API_KEY": "mx-...",
        "JDOCMUNCH_SUMMARIZER_PROVIDER": "minimax"
      }
    }
  }
}

After saving the config, restart Claude Desktop / Claude Code.

Claude Code hooks (recommended)

jDocMunch ships enforcement hooks that keep your agent honest:

  • PreToolUse — warns when Claude tries to Read a large doc file, suggesting search_sections + get_section
  • PostToolUse — auto-reindexes doc files after Edit/Write so the index never goes stale
  • PreCompact — injects a session snapshot before context compaction so doc orientation survives

Install everything in one command:

jdocmunch-mcp init

This detects your MCP clients, patches their config, installs a Doc Exploration Policy into CLAUDE.md, sets up enforcement hooks, and indexes your current directory. Use --dry-run to preview, --demo for a benefit summary, or --yes for non-interactive mode.

For hooks only:

jdocmunch-mcp init --hooks

If you also use jCodeMunch, run both:

jcodemunch-mcp init
jdocmunch-mcp init

CLI subcommands

SubcommandPurpose
serve (default)Run the MCP server (stdio)
initOne-command onboarding: detect clients, write config, install policy, hooks, index
claude-mdPrint or install the Doc Exploration Policy (--install global|project)
index-local --path <dir>Index a local folder (CLI, no MCP session needed)
index-file <path>Re-index a single file within an existing index
hook-pretoolusePreToolUse hook handler (reads JSON from stdin)
hook-posttoolusePostToolUse hook handler (reads JSON from stdin)
hook-precompactPreCompact hook handler (reads JSON from stdin)

Google Antigravity

  1. Open the Agent pane
  2. Click the ⋯ menu → MCP Servers → Manage MCP Servers
  3. Click View raw config to open mcp_config.json
  4. Add the entry below, save, then restart the MCP server
{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["jdocmunch-mcp"]
    }
  }
}

OpenClaw

Option A — CLI (one command):

openclaw mcp set jdocmunch '{"command":"uvx","args":["jdocmunch-mcp"]}'

Option B — Edit config directly:

Add the entry to ~/.openclaw/openclaw.json under mcpServers:

{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["jdocmunch-mcp"],
      "transport": "stdio"
    }
  }
}

With optional AI summaries:

{
  "mcpServers": {
    "jdocmunch": {
      "command": "uvx",
      "args": ["jdocmunch-mcp"],
      "transport": "stdio",
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
      }
    }
  }
}

Restart the gateway and verify:

openclaw gateway restart
openclaw mcp list

Per-agent routing (optional):

{
  "agents": {
    "researcher": {
      "mcpServers": ["jdocmunch", "brave-search", "fetch"]
    }
  }
}

Tell your OpenClaw agent to use it

Without explicit instructions, your agent will ignore jDocMunch even though it's connected. Create a system prompt file (e.g. ~/.openclaw/agents/researcher.md) with:

## Documentation Policy
Always use jDocMunch-MCP tools for documentation exploration.
- Before reading a doc file: use search_sections or get_toc
- To retrieve specific content: use get_section with the section ID
- To index local docs: use index_local with the docs folder path
- Never open documentation files directly — navigate by section.

Point your agent at it in ~/.openclaw/openclaw.json:

{
  "agents": {
    "named": {
      "researcher": {
        "systemPromptFile": "~/.openclaw/agents/researcher.md"
      }
    }
  }
}

Usage examples

index_local:          { "path": "/path/to/docs" }
index_repo:           { "url": "owner/repo" }

get_toc:              { "repo": "owner/repo" }
get_toc_tree:         { "repo": "owner/repo" }
get_document_outline: { "repo": "owner/repo", "doc_path": "docs/config.md" }
search_sections:      { "repo": "owner/repo", "query": "authentication" }
get_section:          { "repo": "owner/repo", "section_id": "owner/repo::docs/config.md::authentication#1" }

Tool surface

ToolPurpose
index_localIndex a local documentation folder
index_repoIndex a GitHub repository’s docs
list_reposList indexed documentation sets
get_tocFlat section list in document order
get_toc_treeNested section tree per document
get_document_outlineSection hierarchy for one document
search_sectionsWeighted search returning summaries only
get_sectionFull content of one section
get_sectionsBatch content retrieval
get_section_contextSection + ancestor headings + child summaries
delete_indexRemove a doc index
get_broken_linksDetect internal links/anchors that no longer resolve
get_doc_coverageWhich jcodemunch symbols have matching doc sections

Search and retrieval tools include a _meta envelope with timing, token savings, and cost avoided.

Example:

"_meta": {
  "latency_ms": 12,
  "sections_returned": 5,
  "tokens_saved": 1840,
  "total_tokens_saved": 94320,
  "cost_avoided": { "claude_opus": 0.0276, "gpt5_latest": 0.0184 },
  "total_cost_avoided": { "claude_opus": 1.4148, "gpt5_latest": 0.9432 }
}

total_tokens_saved and total_cost_avoided accumulate across tool calls and persist to ~/.doc-index/_savings.json.

Check your token savings

Every jDocMunch tool response includes a _meta block with tokens_saved (this call) and total_tokens_saved (lifetime). To check your cumulative savings, ask your agent to call any jDocMunch tool (e.g. get_toc or search_sections) and look at the _meta envelope. Lifetime stats persist in ~/.doc-index/_savings.json across sessions.


Supported formats

FormatExtensionsNotes
Markdown.md, .markdownATX (# Heading) and setext headings
MDX.mdxJSX tags, frontmatter, import/export stripped before parsing
Plain text.txtParagraph-block section splitting
reStructuredText.rstAdornment-based heading detection
AsciiDoc.adoc= and == heading hierarchy
Jupyter Notebook.ipynbMarkdown cells used as sections; code cells attached as content
HTML.html<h1>–<h6> headings; boilerplate stripped
OpenAPI / Swagger.yaml, .yml, .json, .jsoncOpenAPI 3.x and Swagger 2.x; operations grouped by tag as sections
JSON / JSONC.json, .jsoncTop-level keys as sections; JSONC comments stripped before parsing
XML / SVG / XHTML.xml, .svg, .xhtmlElement hierarchy used for section structure

See ARCHITECTURE.md for parser details.


Security

Built-in protections include:

  • path traversal prevention
  • symlink escape protection
  • secret file exclusion (.env, *.pem, and similar)
  • binary file detection
  • configurable file size limits
  • storage path injection prevention via _safe_content_path()
  • atomic index writes

See SECURITY.md for details.


Best use cases

  • agent-driven documentation exploration
  • finding configuration and API reference sections
  • onboarding to unfamiliar frameworks
  • token-efficient multi-agent documentation workflows
  • large documentation sets with dozens of files

Not intended for

  • source code symbol indexing (use jCodeMunch for that)
  • real-time file watching
  • cross-repository global search
  • semantic/vector similarity search as a standalone product (hybrid BM25 + semantic fusion is supported when embeddings are enabled — defaults to "auto", on whenever a provider is configured — but the core workflow remains structure-first)

Environment variables

VariablePurposeRequired
GITHUB_TOKENGitHub API authNo
ANTHROPIC_API_KEYSection summaries via Claude HaikuNo
GOOGLE_API_KEYSection summaries via Gemini Flash; also Gemini embeddingsNo
OPENAI_API_KEYOpenAI embeddings (text-embedding-3-small)No
JDOCMUNCH_EMBEDDING_PROVIDERForce provider: gemini, openai, openai-compatible, sentence-transformers, noneNo
JDOCMUNCH_OPENAI_COMPAT_URLEndpoint URL for openai-compatible embeddingsNo
JDOCMUNCH_OPENAI_COMPAT_MODELModel for openai-compatible embeddingsNo
JDOCMUNCH_OPENAI_COMPAT_API_KEYDedicated optional API key for openai-compatible embeddingsNo
JDOCMUNCH_OPENAI_COMPAT_BATCH_SIZEBatch size for openai-compatible embeddings (default: 32)No
JDOCMUNCH_ST_MODELsentence-transformers model (default: all-MiniLM-L6-v2)No
DOC_INDEX_PATHCustom cache pathNo
JDOCMUNCH_SHARE_SAVINGSSet to 0 to disable anonymous community token savings reportingNo

Community savings meter

Each tool call can contribute an anonymous delta to a live global counter at j.gravelle.us. Only two values are sent:

  • tokens saved
  • a random anonymous install ID

No content, file paths, repo names, or identifying material are sent.

The anonymous install ID is generated once and stored in ~/.doc-index/_savings.json.

To disable reporting, set:

JDOCMUNCH_SHARE_SAVINGS=0

Contributing

PRs welcome! All contributors must sign the Contributor License Agreement before their PR can be merged — CLA Assistant will prompt you automatically. See CONTRIBUTING.md for details.


Documentation

  • USER_GUIDE.md
  • ARCHITECTURE.md
  • SPEC.md
  • SECURITY.md
  • TOKEN_SAVINGS.md

License (dual use)

This repository is free for non-commercial use under the terms below. Commercial use requires a paid commercial license.


Works with

jDocMunch plugs into any MCP-compatible agent or IDE. Tested configurations:

PlatformConfig
Claude Code / Claude Desktopjdocmunch-mcp init (auto-detects and patches config)
Cursor / Windsurfjdocmunch-mcp init or manual mcp.json
Hermes AgentAdd to ~/.hermes/config.yaml — see skill
Any MCP clientstdio: jdocmunch-mcp
Hermes Agent config
# ~/.hermes/config.yaml
mcp_servers:
  jdocmunch:
    command: "uvx"
    args: ["jdocmunch-mcp"]

Star History

Star History Chart

Copyright and license text

Copyright (c) 2026 J. Gravelle

1. Non-commercial license grant (free)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to use, copy, modify, merge, publish, and distribute the Software for personal, educational, research, hobby, or other non-commercial purposes, subject to the following conditions:

  1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  2. Any modifications made to the Software must clearly indicate that they are derived from the original work, and the name of the original author (J. Gravelle) must remain intact. He's kinda full of himself.
  3. Redistributions of the Software in source code form must include a prominent notice describing any modifications from the original version.

2. Commercial use

Commercial use of the Software requires a separate paid commercial license from the author.

“Commercial use” includes, but is not limited to:

  • use of the Software in a business environment
  • internal use within a for-profit organization
  • incorporation into a product or service offered for sale
  • use in connection with revenue generation, consulting, SaaS, hosting, or fee-based services

For commercial licensing inquiries: j@gravelle.us https://j.gravelle.us

Until a commercial license is obtained, commercial use is not permitted.

3. Disclaimer of warranty

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.

IN NO EVENT SHALL THE AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Search & Web CrawlingData & Analytics
Registryactive
Packagejdocmunch-mcp
TransportSTDIO
UpdatedMar 21, 2026
View on GitHub

Related Search & Web Crawling MCP Servers

View all →
Google Search

com.mcparmory/google-search

Scrape Google search results with SERP data, ads, and knowledge panels
25
Brave Search

io.github.pipeworx-io/brave-search

Brave Search MCP — independent web index (no Google/Bing dependency)
Serper Search and Scrape

marcopesani/mcp-server-serper

Serper MCP Server supporting search and webpage scraping
154
Brave Search Mcp Server

brave/brave-search-mcp-server

Brave Search MCP Server: web results, images, videos, rich results, AI summaries, and more.
1.2k
Google Search Console

com.mcparmory/google-search-console

Query search analytics, manage sitemaps, and inspect site URLs and status
25
Google Search Console

acamolese/google-search-console-mcp

Google Search Console MCP server: SEO audits, performance queries, URL inspection, indexing checks.
3