Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

jDocmunch MCP

PYPI · JDOCMUNCH-MCP · SCANNED SEP 20

Section-level doc search for .md, .rst, .adoc, .ipynb, .html, .yaml, .json, and OpenAPI specs.

Available components

−1 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 0 of 32 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency35
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10047 tokens (~154/item across 65 items; 64 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 74% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_index" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 66 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the jDocmunch MCP server?

jDocmunch MCP runs locally as a PyPI package, launched with uvx jdocmunch-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · jdocmunch-mcp

# add to Claude Code
claude mcp add jgravelle-jdocmunch-mcp -- uvx jdocmunch-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "jgravelle-jdocmunch-mcp": {
      "command": "uvx",
      "args": [
        "jdocmunch-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "jgravelle-jdocmunch-mcp": {
      "command": "uvx",
      "args": [
        "jdocmunch-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add jgravelle-jdocmunch-mcp -- uvx jdocmunch-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jgravelle-jdocmunch-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "jdocmunch-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jgravelle-jdocmunch-mcp --command uvx --arg jdocmunch-mcp
# ~/.hermes/config.yaml
mcp_servers:
  jgravelle-jdocmunch-mcp:
    command: "uvx"
    args: ["jdocmunch-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "jgravelle-jdocmunch-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "jdocmunch-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add jgravelle-jdocmunch-mcp -t stdio -c uvx -a jdocmunch-mcp
// mcp.json
{
  "mcpServers": {
    "jgravelle-jdocmunch-mcp": {
      "command": "uvx",
      "args": [
        "jdocmunch-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −1
    • Stability: pass → 0.90 functional
  • 19 Sept 26 +15
    • Stability: 0.97 → unverified security
    • Tool safety: pass → unverified security
    • Malware scan: unverified → pass security
    • Stability: 0.97 → pass security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 1.141.0 → 1.143.0 functional
    • Package version: 1.141.0 → 1.142.0 functional
  • 18 Sept 26 −15
    • Malware scan: pass → unverified security
    • Package version: 1.139.1 → 1.141.0 functional
    • Package version: 1.139.1 → 1.140.0 functional
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 −2
    • Stability: pass → 0.90 functional
  • 15 Sept 26 +16
    • Malware scan: unverified → pass security
    • Stability: 0.97 → pass security
  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 −1
    • Stability: pass → 0.93 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/jdocmunch-mcp@1.143.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 32 packages
Packages resolved 32
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 64 exposed · ~9,770 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze_perf ~143

Per-tool latency analysis. window='session' reads the in-memory ring (last 512 calls per tool ��� always available); window='1h'|'24h'|'7d'|'all' reads the persistent SQLite sink at ~/.doc-index/telemetry.db (opt-in via JDOCMUNCH_PERF_TELEMETRY=1). Returns {window, telemetry_enabled, source, per_tool:{tool:{count,p50_ms,p95_ms,max_ms,errors,error_rate}}}.

NameTypeReqDescription
windowstringTime window. 'session' uses the in-memory ring; longer windows require JDOCMUNCH_PERF_TELEMETRY=1.

No output schema declared.

No examples provided.

check_embedding_drift ~143

Embedding-drift canary. Without args, re-embeds the saved CANARY_STRINGS and reports per-canary cosine drift; alarm fires when max_drift > threshold (default 0.05 ≈ cosine<0.95). Pass capture=true to seed the snapshot first (idempotent unless force=true). Catches silent provider model upgrades that would otherwise corrupt index recall without changing dim.

NameTypeReqDescription
capturebooleanEmbed CANARY_STRINGS and persist the snapshot.
forcebooleanWith capture=true, overwrite an existing snapshot.
thresholdnumberMax allowed drift (1 - cosine). Default 0.05.

No output schema declared.

No examples provided.

check_section_delete_safe ~163

Composite preflight: is this section safe to delete? Fuses tutorial-path membership, anchor-specific backlinks, transitive doc-level backlinks, and recent-edit recency into a single verdict (safe_to_delete, tutorial_path_blocking, anchor_referenced, backlinks_blocking, recently_edited_blocking) plus up to 5 ranked blockers and a one-line recommended_action. Read-only — never mutates the index.

NameTypeReqDescription
recent_edit_daysintegerDays within which a recent edit becomes a soft blocker. Default 14.
repostringyes
section_idstringyesStable section ID, format owner/repo::doc_path::slug#level
transitive_depthintegerBacklink BFS depth. Default 3.

No output schema declared.

No examples provided.

count_sections ~171

v1.59+ — count sections matching the same filter set as search_sections (path_glob, role/roles/exclude_roles, tags/exclude_tags, min/max_level, min/max_byte_length) but skip ranking. Use for UI counters or 'does anything match?' probes. Returns the count only, never the matching sections.

NameTypeReqDescription
doc_pathstring
exclude_rolesarray
exclude_tagsarray
max_byte_lengthinteger
max_levelinteger
min_byte_lengthinteger
min_levelinteger
path_globstring
repostringyes
rolestring
rolesarray
tagsarray

No output schema declared.

No examples provided.

define_repo_group ~65

Create, replace, or delete a repo group (v1.26+). Empty repos list deletes the group. Persisted to ~/.doc-index/_groups.jsonc (JSONC — hand-edits welcome).

NameTypeReqDescription
namestringyes
reposarrayyes

No output schema declared.

No examples provided.

delete_index ~58

Remove a repo index and its cached raw files. Deletes the index and its cached files, never your source documents. There is no undo; re-index to restore.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

describe_section ~84

v1.54+ — consolidated handle bundle: full metadata + ancestor breadcrumb + prev/next/parent/first_child neighbors for one section in a single call. Saves three round-trips vs calling get_section_summary + get_section_path + section_neighbors separately. No content reads.

NameTypeReqDescription
repostringyesRepository identifier
section_idstringyesTarget section ID

No output schema declared.

No examples provided.

diff_doc_health_radar ~94

Diff two doc_health_radar payloads. Pure function — pass the `radar` sub-field from two doc_health_radar responses (e.g. yesterday vs today). Returns per-axis deltas, composite delta, grade change, regression and improvement lists (threshold: 3 points), one-line verdict.

NameTypeReqDescription
baselineobjectyesBaseline radar payload.
currentobjectyesCurrent radar payload.

No output schema declared.

No examples provided.

doc_health_radar ~120

Six-axis health radar for a doc repo: freshness, link_integrity, orphan_health, embedding_coverage, role_coverage, drift_health (omitted when no canary). Each axis is 0-100, plus composite + A-F grade. Pairs with diff_doc_health_radar for snapshot deltas. Mirrors jcm's and jData's health-radar shape — third leg of the suite-wide pattern. Grades the index, not the prose; none of the six axes read the writing itself.

NameTypeReqDescription
repostringyes

No output schema declared.

No examples provided.

doc_index_repo ~327

Index a GitHub repository's documentation. Fetches .md/.txt files, parses sections, and saves to local storage. Embeddings auto-enable when a provider is configured (GOOGLE_API_KEY, OPENAI_API_KEY, openai-compatible + JDOCMUNCH_OPENAI_COMPAT_URL + JDOCMUNCH_OPENAI_COMPAT_MODEL, or sentence-transformers). Indexes .md and .txt only; every other file in the repo is ignored.

NameTypeReqDescription
incrementalbooleanWhen true (default), skip all HTTP fetches if the selected GitHub ref's commit SHA is unchanged; otherwise only re-index changed files. Set to false to force a full re-index.
namestringOptional stored index name override. If omitted, the GitHub repo name is used. Must be a safe storage component: letters, numbers, dot, underscore, and hyphen only.
refstringOptional GitHub branch, tag, or commit-ish to index. If omitted, HEAD is used. The ref is resolved to a commit SHA before fetching content; repo@sha remains the durable lookup handle.
urlstringyesGitHub repository URL or owner/repo string
use_ai_summariesbooleanUse AI to generate section summaries.
use_embeddingsGenerate semantic embeddings for each section. true/false/"auto". "auto" (default) enables embeddings when an embedding provider is configured, including openai-compatible + JDOCMUNCH_OPENAI_COMPAT_U…

No output schema declared.

No examples provided.

doc_list_repos ~81

List every indexed documentation repo with its identifier and storage location. Call it first to find out whether the docs you need are already indexed, and to get the repo id every other tool needs. Lists only indexes under the active storage_path, so an empty list means nothing is indexed there. Each row has has_embeddings: false means that index matches words only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doc_resolve_repo ~161

Resolve a filesystem path (index root, subfolder, or file) to its indexed documentation repo handle via stored source_root metadata — O(1)-sized response, use instead of doc_list_repos when the path is known. Exact root match wins, then the most specific containing root; equally-specific duplicates return ambiguous:true with a bounded candidates list (max 5) plus total_matches. GitHub-indexed corpora (no source_root) never match. Read-only: never creates, refreshes, or deletes an index. Prefer absolute paths; relative paths resolve against the server CWD (echoed as _meta.resolved_path).

NameTypeReqDescription
pathstringyesFilesystem path — index root, subfolder, or file (absolute preferred)

No output schema declared.

No examples provided.

finalize_handoff ~308

Finalize one canonical Markdown handoff for a completed documentation audit/analysis (jdocmunch.handoff/v1; suite parity with jCodeMunch). The server assembles YOUR sections deterministically, validates every evidence_refs entry against what this session actually retrieved (section ids or doc paths served by search_sections / search_titles / get_section / get_sections — unknown refs fail closed), persists the result session-scoped, and returns a compact receipt {handoff_id, resource_uri, sha256, length, canonical:true}. Read the immutable body via the munch://handoff/<id> resource; repeated reads are byte-identical. Appendices are included exactly once; no character limit; never writes to the documentation corpus.

NameTypeReqDescription
appendicesarrayOptional named appendices, each {name, content, content_type?}; names must be unique.
evidence_refsarrayyesSection ids or doc paths retrieved this session; validated against the session retrieval record.
profilestringHandoff profile label (e.g. doc_audit).
repostringyesDoc repo identifier the handoff is about.
sectionsarrayyesOrdered report sections, each {heading, content} (markdown). The caller authors these; the server only assembles. Optional per-section claims[] bind evidence to an individual claim instead of one glo…
taskstringyesThe task/question this handoff answers (becomes the title).

No output schema declared.

No examples provided.

find_code_examples ~197

Search fenced code blocks across the indexed docs by BM25 over the block content. Returns one row per block with {block_id, section_id, doc_path, title, lang, byte_start, byte_end, snippet, _score}. Optional lang filter (e.g. 'python', 'bash') and doc_path/path_glob scope filters (applied before scoring, same contract as search_sections). Use after index_local; requires INDEX_VERSION>=3.

NameTypeReqDescription
doc_pathstringOptional exact-document scope: only blocks in the section with this doc_path
langstringOptional case-insensitive language filter
max_resultsinteger
path_globstringOptional fnmatch glob (e.g. 'docs/api/**') scoping blocks to matching document paths
querystringyesFree-form code-content query
repostringyesjdocmunch repo identifier

No output schema declared.

No examples provided.

find_endpoint ~122

Find OpenAPI operations by path glob, method, and/or tag. All filters AND'd. Returns one row per match with {section_id, doc_path, method, path, operationId, summary, tags, deprecated}. Requires the spec to have been indexed under v1.18+ so structured metadata is present.

NameTypeReqDescription
methodstringHTTP method; case-insensitive
pathstringfnmatch glob (e.g. '/pets/*'); case-sensitive
repostringyes
tagstringExact tag match

No output schema declared.

No examples provided.

find_operations_using_schema ~75

Return every operation whose request body or any response references the given schema. Each row gets a referenced_in list of all schema names that operation pulls in (so you can see the broader dependency cluster). Resolves references inside the indexed OpenAPI document only.

NameTypeReqDescription
repostringyes
schema_namestringyes

No output schema declared.

No examples provided.

find_similar_sections ~196

Multi-signal section dedup detection. Fuses embedding cosine (when available) with lexical Jaccard over the section title and its ACTUAL body bytes, clusters via union-find, ranks each cluster's canonical by backlink_count + size. Verdict tiers: near_duplicate, overlapping_topic, parallel_tutorial. Each cluster and variant carries signal=body|title_only; a title_only comparison had no body evidence and is never near_duplicate. Read-only.

NameTypeReqDescription
exclude_same_docbooleanSkip pairs in the same doc. Useful for long pages with repeated structure.
max_clustersinteger
max_sectionsintegerHard cap on sections examined. Default 1000.
min_scorenumberPairwise score floor for clustering. Default 0.7.
near_duplicate_thresholdnumberScore at/above which a cluster is flagged near_duplicate.
repostringyes

No output schema declared.

No examples provided.

get_all_roles ~102

v1.50+ — list every distinct role classification across the repo with per-role section counts and id samples. Companion to v1.46 get_all_tags. Sections without metadata.role are bucketed under 'unknown'. Use to discover what roles exist before constructing a `role=` or `profile=` query.

NameTypeReqDescription
repostringyesRepository identifier
sample_sizeintegerHow many section_ids to surface per role. 0 omits samples.

No output schema declared.

No examples provided.

get_all_tags ~120

v1.46+ — list every unique #hashtag across the repo with per-tag section counts. Companion to the v1.45 `tags` filter on search_sections — use this to discover what tag namespaces exist before constructing a tag-filtered query. Lowercase-normalized. Aggregates the tags the index stored on each section, so a tag added since the last index is missing.

NameTypeReqDescription
min_section_countintegerDrop tags appearing in fewer than this many sections (filter out typos).
repostringyesRepository identifier

No output schema declared.

No examples provided.

get_backlinks ~116

Find all sections that link TO a given document (inverse reference graph). Useful for the LLM Wiki pattern: when a source changes, find which wiki pages reference it. Output: list of {source_file, source_section, source_section_id, link}. Counts links found inside indexed docs only.

NameTypeReqDescription
doc_pathstringyesTarget document path to find backlinks for (e.g., 'raw/article.md' or 'wiki/concepts/auth.md')
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

get_broken_links ~106

Scan indexed doc files for internal cross-references that no longer resolve. Checks markdown links, RST :ref:/:doc: directives, and anchor-only links (#heading). External links (http/https) are skipped. Output: list of {source_file, source_section, target, reason} where reason is 'file_not_found', 'section_not_found', or 'anchor_not_found'.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

get_doc ~86

v1.58+ — single-doc detail view. Pairs with list_docs (cross-doc inventory). Returns section list (handles), role_distribution, tag_distribution, byte_size, format, indexed_at for one doc. No content reads.

NameTypeReqDescription
doc_pathstringyesDocument path within the repo, e.g. 'api/auth.md'
repostringyesRepository identifier

No output schema declared.

No examples provided.

get_doc_coverage ~122

Check which jcodemunch symbols have matching documentation in this doc index. Given a list of jcodemunch symbol IDs, reports which symbols are mentioned in section titles (documented) vs absent (undocumented). Bridges jcodemunch <-> jdocmunch. symbol_ids capped at 200. Output: {documented, undocumented, coverage_pct}.

NameTypeReqDescription
repostringyesDoc repo identifier (owner/repo or just repo name)
symbol_idsarrayyesList of jcodemunch symbol IDs to check coverage for

No output schema declared.

No examples provided.

get_doc_health ~72

One-shot index health diagnostics. Returns section_count, doc_count, role_distribution, freshness counts, broken_link_count, drift status, BM25 corpus sanity, and embedding coverage. Diagnoses the index, not the writing; a healthy report says nothing about whether the docs are correct.

NameTypeReqDescription
repostringyes

No output schema declared.

No examples provided.

get_doc_pr_risk_profile ~158

Composite doc-PR risk profile. Fuses volume + blast_radius + backlink_burden + tutorial_disruption + role_weight signals over a caller-supplied list of changed sections into a 0-1 risk_score with risk_level (low/medium/high/critical), top-5 blockers, and a one-line recommended_action. Caller computes the change list from a git diff or pairs with get_recent_changes. Mirrors jcm's get_pr_risk_profile.

NameTypeReqDescription
changed_sectionsarrayyesList of changed sections. Each entry can be a bare section_id (str, kind defaults to 'modified') or {section_id, kind} where kind in {added, modified, deleted}.
repostringyes

No output schema declared.

No examples provided.

get_document_outline ~67

Get the section hierarchy for a single document file, without content. Headings only, no content. Read a section with get_section.

NameTypeReqDescription
doc_pathstringyesPath to the document within the repository (e.g., 'README.md')
repostringyesRepository identifier

No output schema declared.

No examples provided.

get_index_overview ~135

v1.56+ — single-call repo snapshot: doc_count, section_count, total_byte_size, format_breakdown, top_tags, top_roles, indexed_at. Composition of v1.46/v1.50/v1.55 aggregations. Use for 'what is this repo at a glance?'. Counts come from the index, so they are only as fresh as the last index run.

NameTypeReqDescription
repostringyesRepository identifier
top_nintegerTop-N tags and roles to surface. 0 omits both lists; full distributions still available via get_all_tags / get_all_roles.

No output schema declared.

No examples provided.

get_orphan_sections ~133

v1.39+ — list sections whose doc_path receives zero inbound references from any other doc. Companion to get_broken_links and get_stale_pages: documentation that exists but nobody links to. Inbound links are counted across indexed docs only, so a link from code or an external site does not rescue a section.

NameTypeReqDescription
include_same_docbooleanIf true, count intra-document anchor links as inbound (e.g. a TOC at the top of a page). Default false — only cross-document references count.
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

get_recent_changes ~214

v1.47+ — list sections that have drifted from index state (edited_uncommitted or stale_index buckets via the v1.16 FreshnessProbe). By default compares the index against the cached raw-content mirror, NOT live workspace files; pass live_source=true to read the live files under the index's source_root. _meta.drift_layer reports which layer ran. Pre-flight check before deciding whether to re-index. Handle-only — no content reads.

NameTypeReqDescription
include_editedbooleanInclude sections in edited_uncommitted bucket (file changed but this section's range still matches).
include_stalebooleanInclude sections in stale_index bucket (byte range no longer hashes the same).
live_sourcebooleanRead the live workspace files under the index's source_root instead of the cached mirror. Falls back to the cached mirror (drift_layer='cached_mirror', live_source_available=false) when no usable sou…
repostringyesRepository identifier

No output schema declared.

No examples provided.

get_related_sections ~102

v2.0+ related-section graph. Returns structural neighbors (siblings, children, parent, optional cousins) and semantic neighbors (top-N cosine over stored embeddings, score >= min_score). mode: structural | semantic | both.

NameTypeReqDescription
max_per_kindinteger
min_scorenumber
modestring
repostringyes
section_idstringyes
top_ninteger

No output schema declared.

No examples provided.

get_schema_graph ~79

BFS walk of the schema reference graph from a root schema name. Returns {root, nodes:{name:{type, properties, required, refs}}, edges:[[from, to]], unresolved}. max_depth bounds the walk (default 5).

NameTypeReqDescription
max_depthinteger
repostringyes
schema_namestringyes

No output schema declared.

No examples provided.

get_section ~173

Retrieve the full content of a specific section using byte-range reads. Use after identifying section IDs via search_sections or get_toc. Returns this section's own bytes; nested child sections are not included.

NameTypeReqDescription
compress_codebooleanv1.35+ — when true, drop blank lines and full-line comments inside fenced code blocks before returning. _meta.code_compressed_bytes reports bytes saved.
repostringyesRepository identifier
section_idstringyesSection ID from get_toc, search_sections, or get_document_outline
strip_boilerplatebooleanv1.24+ — when true, suppress repeated cross-section fragments (footers, nav, license headers) before returning content.
verifybooleanVerify content hash matches stored hash (detects source drift)

No output schema declared.

No examples provided.

get_section_blast_radius ~138

Transitive impact of rewriting / restructuring a section. Walks the inbound reference graph to max_depth (default 3), classifies each hit as anchor / doc / tutorial, and returns direct_impact, transitive_impact, a summary, and a normalised blast_score in [0, 1]. Companion to get_backlinks (which is depth 1 only). Read-only.

NameTypeReqDescription
max_depthintegerBFS depth over the inbound reference graph. Default 3.
repostringyes
section_idstringyesStable section ID, format owner/repo::doc_path::slug#level

No output schema declared.

No examples provided.

get_section_context ~192

Retrieve a section with its full hierarchy context: ancestor headings (root → parent) for orientation, the target section's content, and immediate child summaries. Prevents 'section too thin' without falling back to whole-file reads.

NameTypeReqDescription
include_childrenbooleanInclude immediate child section summaries (no content reads). Default true.
include_relatedbooleanv1.20+ adaptive context: append structural + semantic neighbor summaries.
max_tokensintegerApproximate token budget for the target section's content (bytes/4 estimate). Ancestors and child summaries are always included.
repostringyesRepository identifier (owner/repo or just repo name)
section_idstringyesTarget section ID from get_toc, search_sections, etc.
strip_boilerplatebooleanv1.24+ — strip repeated cross-section fragments before returning the target section content.

No output schema declared.

No examples provided.

get_section_descendants ~123

v1.43+ — return every descendant of a section (BFS over parent_id) in document order with depth offset. Pairs with get_section_path (ancestors). Optional max_depth caps the walk; max_depth=1 returns immediate children only. Handles only — no content.

NameTypeReqDescription
max_depthintegerOptional cap on traversal depth. None = full subtree. 1 = immediate children only.
repostringyesRepository identifier
section_idstringyesTarget section. Its descendants are returned; target itself is not included.

No output schema declared.

No examples provided.

get_section_diff ~59

Unified diff between the indexed snapshot and the current on-disk byte range for a section. Returns hashes + diff text; identical=true when the section is in sync with disk.

NameTypeReqDescription
repostringyes
section_idstringyes

No output schema declared.

No examples provided.

get_section_excerpt ~123

v1.41+ — return a short content preview (default 500 bytes) for one section. Trimmed to last newline before the cap so it ends on a paragraph boundary. Use to peek at content before paying for a full get_section read. _meta.tokens_saved reports the byte-savings vs full content.

NameTypeReqDescription
max_bytesintegerSoft cap on excerpt size in UTF-8 bytes. Default 500.
repostringyesRepository identifier (owner/repo or just repo name)
section_idstringyesTarget section ID

No output schema declared.

No examples provided.

get_section_excerpts ~119

v1.49+ — batch counterpart to get_section_excerpt. Resolves N previews in one call against a single index load. Per-id errors reported in-line. _meta.tokens_saved aggregates byte savings across the batch. Previews are truncated by design; read full content with get_sections.

NameTypeReqDescription
max_bytesintegerPer-section soft cap in UTF-8 bytes.
repostringyesRepository identifier
section_idsarrayyesList of section IDs. Order preserved; each entry carries `requested_id` for correlation.

No output schema declared.

No examples provided.

get_section_path ~95

v1.40+ — return the breadcrumb chain (root → ... → target) for a section_id. Walks parent_id upward; cycle-protected. Handles only ({id, title, level, doc_path}) per step plus depth.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)
section_idstringyesTarget section ID from get_toc, search_sections, etc.

No output schema declared.

No examples provided.

get_section_summaries ~96

v1.48+ — batch version of get_section_summary. Resolve metadata for many ids in one call against a single index load. Per-id errors are reported in-line on the corresponding result entry rather than aborting the batch.

NameTypeReqDescription
repostringyesRepository identifier
section_idsarrayyesList of section IDs to look up. Order preserved in response; each entry carries `requested_id` for correlation.

No output schema declared.

No examples provided.

get_section_summary ~106

v1.38+ — return full indexed metadata (title, summary, role, tags, metadata, parent_id, children, content_hash, byte_start/end, byte_length) for one section without fetching content. Use to inspect role/tags before deciding whether to read the content via get_section.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)
section_idstringyesTarget section ID from get_toc, search_sections, etc.

No output schema declared.

No examples provided.

get_sections ~136

Batch content retrieval for multiple sections in one call. Content only for the ids you pass; unknown ids come back as per-id errors, not a failed call.

NameTypeReqDescription
compress_codebooleanv1.35+ — drop blank lines and full-line comments inside fenced code blocks before returning. _meta.code_compressed_bytes reports total bytes saved.
repostringyesRepository identifier
section_idsarrayyesList of section IDs to retrieve
strip_boilerplatebooleanv1.24+ — strip repeated cross-section fragments per section before returning.
verifybooleanVerify content hashes

No output schema declared.

No examples provided.

get_session_stats ~59

Session self-monitor: returns {latency_per_tool, total_tokens_saved}. Lightweight; reads the in-memory latency ring + persistent savings counter. For windowed analysis use analyze_perf. The latency ring lives in memory, so a server restart clears it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_stale_pages ~134

Find wiki pages whose declared sources have been modified on disk. Convention: wiki pages include YAML frontmatter with a 'sources' list of relative paths to raw source files. This tool checks whether those source files have changed since the page was last indexed. Output: list of {doc_path, title, stale_sources} where each stale source has a reason: 'modified', 'missing', or 'untracked'.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)
sources_dirstringBase directory for resolving relative source paths. If omitted, uses the index's source_root.

No output schema declared.

No examples provided.

get_toc ~119

Get a flat table of contents for all sections in a repo, sorted by document order. Content is excluded — use get_section to retrieve content. Scope with path_glob; for a SINGLE document use get_document_outline (this tool has no doc_path parameter).

NameTypeReqDescription
path_globstringv1.36+ — fnmatch glob restricting results to matching doc_paths (e.g. 'api/**/*.md', 'reference/*'). Default: no filter.
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

get_toc_tree ~77

Get a nested table of contents tree per document. Shows parent/child heading relationships. Content is excluded.

NameTypeReqDescription
path_globstringv1.36+ — fnmatch glob restricting results to matching doc_paths. Default: no filter.
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

get_tutorial_path ~107

Reconstruct an ordered tutorial chain starting from section_id. Detects frontmatter next:/prev: keys, inline 'Next:' / 'Previous:' markdown links, or ordered numeric filename prefixes (01-intro.md). Returns chain[] of {section_id, doc_path, title} plus the strategy used. Follows only the three conventions above, so a tutorial wired up any other way returns a short chain.

NameTypeReqDescription
repostringyes
section_idstringyes

No output schema declared.

No examples provided.

get_undocumented_symbols ~89

Best-effort inverse coverage: enumerate symbols in the jcodemunch code_repo and return those whose name (or qualified name) does not appear anywhere in this doc index. _meta.bridge_available=false when jcodemunch-mcp is not importable in this environment.

NameTypeReqDescription
code_repostringyes
max_symbolsinteger
repostringyes

No output schema declared.

No examples provided.

get_watch_status ~124

Doc-watcher coverage + login-service state. Reports whether the `jdocmunch-watch` background service is active and, per locally-indexed doc repo, whether its source_root still exists on disk (watchable). Returns {service, watchable_repo_count, local_repo_count, repos[], hint}. Run `jdocmunch-mcp watch` (foreground) or `watch-install` (login service) to keep indexes fresh on any on-disk doc change. Covers locally-indexed repos only; a GitHub-indexed repo has no source_root to watch.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_wiki_stats ~73

Wiki health dashboard. Returns: orphan pages (zero inbound internal links), most-linked pages (top 10), tag distribution, total internal link count, and sections-per-doc min/max/avg. Use for periodic wiki lint checks.

NameTypeReqDescription
repostringyesRepository identifier (owner/repo or just repo name)

No output schema declared.

No examples provided.

Common questions

What is the jDocmunch MCP server?

jDocmunch MCP is listed in the public MCP registry as io.github.jgravelle/jdocmunch-mcp. Section-level doc search for .md, .rst, .adoc, .ipynb, .html, .yaml, .json, and OpenAPI specs. This page covers its PyPI package (jdocmunch-mcp).

Is the jDocmunch MCP server safe to use?

jDocmunch MCP scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the jDocmunch MCP server expose?

jDocmunch MCP exposes 64 tools: index_local, doc_index_repo, doc_list_repos, get_index_overview, get_doc, and 59 more. Their descriptions and schemas cost roughly 9,770 tokens of context every time the server is loaded.

Is the jDocmunch MCP server still maintained?

jDocmunch MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.