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
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
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
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
claude mcp add jgravelle-jdocmunch-mcp -- uvx jdocmunch-mcp
{
"mcpServers": {
"jgravelle-jdocmunch-mcp": {
"command": "uvx",
"args": [
"jdocmunch-mcp"
]
}
}
} {
"servers": {
"jgravelle-jdocmunch-mcp": {
"command": "uvx",
"args": [
"jdocmunch-mcp"
]
}
}
} codex mcp add jgravelle-jdocmunch-mcp -- uvx jdocmunch-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jgravelle-jdocmunch-mcp": {
"type": "local",
"command": [
"uvx",
"jdocmunch-mcp"
],
"enabled": true
}
}
} openclaw mcp add jgravelle-jdocmunch-mcp --command uvx --arg jdocmunch-mcp
mcp_servers:
jgravelle-jdocmunch-mcp:
command: "uvx"
args: ["jdocmunch-mcp"] {
"McpServers": {
"jgravelle-jdocmunch-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"jdocmunch-mcp"
]
}
}
} assistant mcp add jgravelle-jdocmunch-mcp -t stdio -c uvx -a jdocmunch-mcp
{
"mcpServers": {
"jgravelle-jdocmunch-mcp": {
"command": "uvx",
"args": [
"jdocmunch-mcp"
]
}
}
} 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
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 →
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 →
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}}}.
| Name | Type | Req | Description |
|---|---|---|---|
| window | string | – | Time 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.
| Name | Type | Req | Description |
|---|---|---|---|
| capture | boolean | – | Embed CANARY_STRINGS and persist the snapshot. |
| force | boolean | – | With capture=true, overwrite an existing snapshot. |
| threshold | number | – | Max 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.
| Name | Type | Req | Description |
|---|---|---|---|
| recent_edit_days | integer | – | Days within which a recent edit becomes a soft blocker. Default 14. |
| repo | string | yes | – |
| section_id | string | yes | Stable section ID, format owner/repo::doc_path::slug#level |
| transitive_depth | integer | – | Backlink 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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc_path | string | – | – |
| exclude_roles | array | – | – |
| exclude_tags | array | – | – |
| max_byte_length | integer | – | – |
| max_level | integer | – | – |
| min_byte_length | integer | – | – |
| min_level | integer | – | – |
| path_glob | string | – | – |
| repo | string | yes | – |
| role | string | – | – |
| roles | array | – | – |
| tags | array | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| repos | array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier |
| section_id | string | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| baseline | object | yes | Baseline radar payload. |
| current | object | yes | Current 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| incremental | boolean | – | When 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. |
| name | string | – | Optional 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. |
| ref | string | – | Optional 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. |
| url | string | yes | GitHub repository URL or owner/repo string |
| use_ai_summaries | boolean | – | Use AI to generate section summaries. |
| use_embeddings | – | – | Generate 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).
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | Filesystem 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.
| Name | Type | Req | Description |
|---|---|---|---|
| appendices | array | – | Optional named appendices, each {name, content, content_type?}; names must be unique. |
| evidence_refs | array | yes | Section ids or doc paths retrieved this session; validated against the session retrieval record. |
| profile | string | – | Handoff profile label (e.g. doc_audit). |
| repo | string | yes | Doc repo identifier the handoff is about. |
| sections | array | yes | Ordered 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… |
| task | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc_path | string | – | Optional exact-document scope: only blocks in the section with this doc_path |
| lang | string | – | Optional case-insensitive language filter |
| max_results | integer | – | – |
| path_glob | string | – | Optional fnmatch glob (e.g. 'docs/api/**') scoping blocks to matching document paths |
| query | string | yes | Free-form code-content query |
| repo | string | yes | jdocmunch 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.
| Name | Type | Req | Description |
|---|---|---|---|
| method | string | – | HTTP method; case-insensitive |
| path | string | – | fnmatch glob (e.g. '/pets/*'); case-sensitive |
| repo | string | yes | – |
| tag | string | – | Exact 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | – |
| schema_name | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| exclude_same_doc | boolean | – | Skip pairs in the same doc. Useful for long pages with repeated structure. |
| max_clusters | integer | – | – |
| max_sections | integer | – | Hard cap on sections examined. Default 1000. |
| min_score | number | – | Pairwise score floor for clustering. Default 0.7. |
| near_duplicate_threshold | number | – | Score at/above which a cluster is flagged near_duplicate. |
| repo | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier |
| sample_size | integer | – | How 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.
| Name | Type | Req | Description |
|---|---|---|---|
| min_section_count | integer | – | Drop tags appearing in fewer than this many sections (filter out typos). |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc_path | string | yes | Target document path to find backlinks for (e.g., 'raw/article.md' or 'wiki/concepts/auth.md') |
| repo | string | yes | Repository 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'.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc_path | string | yes | Document path within the repo, e.g. 'api/auth.md' |
| repo | string | yes | Repository 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}.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Doc repo identifier (owner/repo or just repo name) |
| symbol_ids | array | yes | List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| changed_sections | array | yes | List 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}. |
| repo | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| doc_path | string | yes | Path to the document within the repository (e.g., 'README.md') |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier |
| top_n | integer | – | Top-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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_same_doc | boolean | – | If 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. |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_edited | boolean | – | Include sections in edited_uncommitted bucket (file changed but this section's range still matches). |
| include_stale | boolean | – | Include sections in stale_index bucket (byte range no longer hashes the same). |
| live_source | boolean | – | Read 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… |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_per_kind | integer | – | – |
| min_score | number | – | – |
| mode | string | – | – |
| repo | string | yes | – |
| section_id | string | yes | – |
| top_n | integer | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| max_depth | integer | – | – |
| repo | string | yes | – |
| schema_name | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| compress_code | boolean | – | v1.35+ — when true, drop blank lines and full-line comments inside fenced code blocks before returning. _meta.code_compressed_bytes reports bytes saved. |
| repo | string | yes | Repository identifier |
| section_id | string | yes | Section ID from get_toc, search_sections, or get_document_outline |
| strip_boilerplate | boolean | – | v1.24+ — when true, suppress repeated cross-section fragments (footers, nav, license headers) before returning content. |
| verify | boolean | – | Verify 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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_depth | integer | – | BFS depth over the inbound reference graph. Default 3. |
| repo | string | yes | – |
| section_id | string | yes | Stable 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_children | boolean | – | Include immediate child section summaries (no content reads). Default true. |
| include_related | boolean | – | v1.20+ adaptive context: append structural + semantic neighbor summaries. |
| max_tokens | integer | – | Approximate token budget for the target section's content (bytes/4 estimate). Ancestors and child summaries are always included. |
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
| section_id | string | yes | Target section ID from get_toc, search_sections, etc. |
| strip_boilerplate | boolean | – | v1.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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_depth | integer | – | Optional cap on traversal depth. None = full subtree. 1 = immediate children only. |
| repo | string | yes | Repository identifier |
| section_id | string | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | – |
| section_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_bytes | integer | – | Soft cap on excerpt size in UTF-8 bytes. Default 500. |
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
| section_id | string | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_bytes | integer | – | Per-section soft cap in UTF-8 bytes. |
| repo | string | yes | Repository identifier |
| section_ids | array | yes | List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
| section_id | string | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier |
| section_ids | array | yes | List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
| section_id | string | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| compress_code | boolean | – | v1.35+ — drop blank lines and full-line comments inside fenced code blocks before returning. _meta.code_compressed_bytes reports total bytes saved. |
| repo | string | yes | Repository identifier |
| section_ids | array | yes | List of section IDs to retrieve |
| strip_boilerplate | boolean | – | v1.24+ — strip repeated cross-section fragments per section before returning. |
| verify | boolean | – | Verify 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'.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
| sources_dir | string | – | Base 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).
| Name | Type | Req | Description |
|---|---|---|---|
| path_glob | string | – | v1.36+ — fnmatch glob restricting results to matching doc_paths (e.g. 'api/**/*.md', 'reference/*'). Default: no filter. |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path_glob | string | – | v1.36+ — fnmatch glob restricting results to matching doc_paths. Default: no filter. |
| repo | string | yes | Repository 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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | – |
| section_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code_repo | string | yes | – |
| max_symbols | integer | – | – |
| repo | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| repo | string | yes | Repository identifier (owner/repo or just repo name) |
No output schema declared.
No examples provided.
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.