{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:53:50.606Z","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp","markdownUrl":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp.md","server":{"slug":"qingchejun-mindlm-mcp","name":"io.github.qingchejun/mindlm-mcp","registryName":"io.github.qingchejun/mindlm-mcp","description":"Turn text, web pages and PDFs into interactive mind maps. MCP server + CLI, no API key.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"mindlm-mcp","type":"npm","identifier":"mindlm-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T04:01:44.758Z"},"score":{"total":90,"tier":"high trust","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":90},{"date":"2026-11-04","total":90},{"date":"2026-11-03","total":89},{"date":"2026-11-02","total":88},{"date":"2026-11-01","total":88},{"date":"2026-10-31","total":87},{"date":"2026-10-30","total":87},{"date":"2026-10-29","total":86},{"date":"2026-10-28","total":86},{"date":"2026-10-27","total":85},{"date":"2026-10-26","total":85},{"date":"2026-10-25","total":84},{"date":"2026-10-24","total":84},{"date":"2026-10-23","total":84},{"date":"2026-10-22","total":83},{"date":"2026-10-21","total":80},{"date":"2026-10-20","total":80},{"date":"2026-10-19","total":80},{"date":"2026-10-18","total":80},{"date":"2026-10-17","total":80},{"date":"2026-10-16","total":80},{"date":"2026-10-15","total":80}]},"categories":[{"name":"Supply Chain Security","score":97,"verdict":"fail","reasons":["No malware found by supply-chain analysis.","CVE check failed: a known low-severity CVE affects katex 0.16.47, reached via markmap-lib > katex. A fixed version is available.","No install/post-install scripts declared.","14 of 104 dependencies flagged as unhealthy (1 deprecated)."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.transitive","args":{"path":"markmap-lib > katex","package":"katex","version":"0.16.47","severity":"low"}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"104","unhealthy":"14","deprecated":"1"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to qingchejun/mindlm-io).","Clear OSI-approved license (MIT).","Actively maintained (last published 21 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"qingchejun/mindlm-io"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"21"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":74,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1371 tokens (~342/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"342","items":"4","tools":"4","tokens":"1371","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":70,"verdict":"partial","reasons":["Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"21"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"mindlm-mcp","type":"npm","identifier":"mindlm-mcp","withdrawn":false,"score":90,"current":true,"url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp","markdownUrl":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"mindlm-mcp"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"text_to_mindmap","title":"Text to mind map","description":"Turn text or Markdown into a mind-map outline. Use this for content you already have — a draft, notes, a transcript, a chunk of a document. Returns a Markdown outline; pass export: true, or call export_mindmap afterwards, to get an HTML file.","inputs":[{"name":"export","type":"boolean","required":false,"description":"Also render the outline to a standalone HTML file and return its path."},{"name":"language","type":"string","required":false,"description":"Language for the node labels, e.g. \"English\" or \"中文\". Defaults to the source language."},{"name":"maxChildren","type":"integer","required":false,"description":"Children kept per node before the rest collapse into \"…(+N)\" (default 8)."},{"name":"maxDepth","type":"integer","required":false,"description":"Levels including the root (default 4)."},{"name":"mode","type":"string","required":false,"description":"auto (default): use a configured API key if there is one, otherwise \"client\". client: get a draft plus the source text back and write the outline yourself. llm: the server calls the model configured…"},{"name":"outputPath","type":"string","required":false,"description":"Where to write the HTML when export is true. A directory gets a generated file name. Defaults to $MINDMAP_OUTPUT_DIR or ./mindmaps/."},{"name":"text","type":"string","required":true,"description":"The text or Markdown to map. Capped by MINDMAP_MAX_INPUT_CHARS (200k by default)."},{"name":"title","type":"string","required":false,"description":"Root node title. Derived from the source if omitted."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":312},{"name":"url_to_mindmap","title":"URL to mind map","description":"Fetch an http(s) page (or a PDF served over http) and turn its main content into a mind-map outline. Article text is extracted with Readability; navigation and boilerplate are dropped. Pages that render entirely in JavaScript will come back empty — paste the text into text_to_mindmap instead.","inputs":[{"name":"export","type":"boolean","required":false,"description":"Also render the outline to a standalone HTML file and return its path."},{"name":"language","type":"string","required":false,"description":"Language for the node labels, e.g. \"English\" or \"中文\". Defaults to the source language."},{"name":"maxChildren","type":"integer","required":false,"description":"Children kept per node before the rest collapse into \"…(+N)\" (default 8)."},{"name":"maxDepth","type":"integer","required":false,"description":"Levels including the root (default 4)."},{"name":"mode","type":"string","required":false,"description":"auto (default): use a configured API key if there is one, otherwise \"client\". client: get a draft plus the source text back and write the outline yourself. llm: the server calls the model configured…"},{"name":"outputPath","type":"string","required":false,"description":"Where to write the HTML when export is true. A directory gets a generated file name. Defaults to $MINDMAP_OUTPUT_DIR or ./mindmaps/."},{"name":"title","type":"string","required":false,"description":"Root node title. Derived from the source if omitted."},{"name":"url","type":"string","required":true,"description":"An http(s) page or PDF. Server-rendered pages only — a JS-only SPA will come back empty."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":319},{"name":"pdf_to_mindmap","title":"PDF to mind map","description":"Read a local PDF and turn it into a mind-map outline, using its bookmarks as the skeleton when it has them. Scanned PDFs with no text layer are rejected — there is no OCR. Use pages to limit long documents.","inputs":[{"name":"export","type":"boolean","required":false,"description":"Also render the outline to a standalone HTML file and return its path."},{"name":"language","type":"string","required":false,"description":"Language for the node labels, e.g. \"English\" or \"中文\". Defaults to the source language."},{"name":"maxChildren","type":"integer","required":false,"description":"Children kept per node before the rest collapse into \"…(+N)\" (default 8)."},{"name":"maxDepth","type":"integer","required":false,"description":"Levels including the root (default 4)."},{"name":"mode","type":"string","required":false,"description":"auto (default): use a configured API key if there is one, otherwise \"client\". client: get a draft plus the source text back and write the outline yourself. llm: the server calls the model configured…"},{"name":"outputPath","type":"string","required":false,"description":"Where to write the HTML when export is true. A directory gets a generated file name. Defaults to $MINDMAP_OUTPUT_DIR or ./mindmaps/."},{"name":"pages","type":"string","required":false,"description":"Page selection, 1-based, e.g. \"1-20\", \"3\" or \"1-5,9\". All pages by default."},{"name":"path","type":"string","required":true,"description":"Path to a local PDF file. \"~\" is expanded."},{"name":"title","type":"string","required":false,"description":"Root node title. Derived from the source if omitted."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":328},{"name":"export_mindmap","title":"Export a mind map","description":"Render a Markdown outline into a standalone HTML mind map — interactive, single file, no network needed. Call this after you have written or refined an outline. Returns the file path; it does not overwrite an existing file unless you ask it to.","inputs":[{"name":"branding","type":"boolean","required":false,"description":"Add a small \"Made with mindlm-mcp\" footer link (default false)."},{"name":"colorFreezeLevel","type":"integer","required":false,"description":"Stop changing branch colour below this level."},{"name":"initialExpandLevel","type":"integer","required":false,"description":"Levels expanded on open; -1 expands everything."},{"name":"markdown","type":"string","required":true,"description":"The Markdown outline to render: one \"# \" root, \"##\"/\"###\", then \"-\" bullets."},{"name":"maxWidth","type":"integer","required":false,"description":"Maximum node width in pixels; 0 means unlimited."},{"name":"offline","type":"boolean","required":false,"description":"Inline every script so the file works with no network (default true)."},{"name":"outputPath","type":"string","required":false,"description":"Output file or directory. Defaults to $MINDMAP_OUTPUT_DIR or ./mindmaps/."},{"name":"overwrite","type":"boolean","required":false,"description":"Replace the file if it already exists (default false)."},{"name":"returnHtml","type":"boolean","required":false,"description":"Include the full HTML in the result. Only useful for small maps (default false)."},{"name":"title","type":"string","required":false,"description":"Page title. Defaults to the outline root."},{"name":"toolbar","type":"boolean","required":false,"description":"Show the zoom / fit / expand toolbar (default true)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":280}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:01:44.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[{"id":"GHSA-238p-pmpm-9mq7","cve":"CVE-2026-103923","severity":"low","fixAvailable":true}],"vulnerabilitiesTotal":1,"dependencies":{"nodes":104,"partial":false,"deprecated":1,"stale":14,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-15","recent":[{"id":"chg_01a1a4b6-f151-7cd3-a02d-f1da62510e2d","kind":"check.measure","summary":"Dependency health (0.78 → 0.94)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a1a4b6-f151-7cd3-a02d-f1da62510e2d"},{"id":"chg_01a1a4b6-f156-7f10-921a-e44fefd9a701","kind":"score.total_changed","summary":"Trust score (89 → 90)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a1a4b6-f156-7f10-921a-e44fefd9a701"},{"id":"chg_01a19f90-a343-7158-be61-2c3f16d949ed","kind":"score.total_changed","summary":"Trust score (88 → 89)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a19f90-a343-7158-be61-2c3f16d949ed"},{"id":"chg_01a19543-ff29-7c05-8d44-0181cdb6904f","kind":"score.total_changed","summary":"Trust score (87 → 88)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a19543-ff29-7c05-8d44-0181cdb6904f"},{"id":"chg_01a18af7-187e-78d7-aa08-6d5c94bb6863","kind":"score.total_changed","summary":"Trust score (86 → 87)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a18af7-187e-78d7-aa08-6d5c94bb6863"},{"id":"chg_01a180aa-61fb-72d7-8b4c-01205a374c8a","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a180aa-61fb-72d7-8b4c-01205a374c8a"},{"id":"chg_01a1765d-a68a-7f00-8e90-a0a41e98acda","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a1765d-a68a-7f00-8e90-a0a41e98acda"},{"id":"chg_01a166ea-b176-72db-af08-ba85296aec68","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a166ea-b176-72db-af08-ba85296aec68"},{"id":"chg_01a161c4-5572-76d8-8d35-c08a822feb70","kind":"check.reverified","summary":"Stability (unverified → 0.23)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a161c4-5572-76d8-8d35-c08a822feb70"},{"id":"chg_01a161c4-5573-7613-877e-1c19c22691ff","kind":"score.total_changed","summary":"Trust score (80 → 83)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a161c4-5573-7613-877e-1c19c22691ff"},{"id":"chg_01a13fce-6914-735b-8267-58f2e6510423","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-15","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a13fce-6914-735b-8267-58f2e6510423"},{"id":"chg_01a13f02-09de-7f20-97d3-5a033a392733","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-15","url":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp#chg-chg_01a13f02-09de-7f20-97d3-5a033a392733"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp","markdown":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp.md","changelogJson":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/qingchejun-mindlm-mcp/mindlm-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/mindlm-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/mindlm-mcp"},{"label":"Repository","href":"https://github.com/qingchejun/mindlm-io"},{"label":"Website","href":"https://qingchejun.github.io/mindlm-io/"}]}}