{"server":{"name":"dev.docmorph/docmorph-studio","title":"DocMorph Studio","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://docmorph.dev/mcp","type":"streamable-http"},{"url":"https://docmorph.dev/mcp/sse","type":"sse"}],"version":"1.0.2","websiteUrl":"https://docmorph.dev","description":"Render Mermaid diagrams, Markdown to PDF and outlines, image OCR, and media metadata cleanup."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-11T15:02:02.014369Z","publishedAt":"2026-10-11T15:02:02.014369Z","statusChangedAt":"2026-10-11T15:02:02.014369Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://docmorph.dev/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-06-18"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.969697,"latency_ms_p50":1068,"consecutive_failures":0,"last_probe_at":"2026-10-19T21:21:14.860Z","last_ok_at":"2026-10-19T21:21:14.860Z"}},{"idx":1,"url":"https://docmorph.dev/mcp/sse","transport":"sse","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2024-11-05"],"stateless":false},"health":{"reachable":false,"uptime_30d":0.93939394,"latency_ms_p50":1023,"consecutive_failures":1,"last_probe_at":"2026-10-19T20:32:11.247Z","last_ok_at":"2026-10-19T14:43:08.047Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"assist_ocr_text","title":null,"description":"AI assistant to translate, proofread, or summarize extracted OCR document text.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"convert_markdown_to_pdf","title":null,"description":"Compile Markdown text into a styled, publication-ready PDF document with automatic pagination and headers.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"extract_markdown_outline","title":null,"description":"Extract hierarchical headings, table of contents, word/character statistics, and document structure outline from Markdown text.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"image_ocr_recognize","title":null,"description":"Extract multilingual text, complex headings, formulas, and tabular data from images using multimodal AI vision.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"inspect_media_security","title":null,"description":"Deeply inspect image, video, or audio files for privacy leaks, including GPS physical coordinates, camera/recorder hardware serials, recording timestamps, and editing software signatures.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"parse_pdf_to_markdown","title":null,"description":"Extract structured Markdown, tables, and mathematical formulas from a base64 encoded PDF using AI vision OCR.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"render_mermaid_diagram","title":null,"description":"Render a Mermaid diagram into styled SVG vector image code and node metadata. Supports flowchart/graph and sequenceDiagram (sequence) types. Other types (ER/gantt/mindmap/pie/state) should be rendered on client-side using mermaid.js.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"sanitize_media_security","title":null,"description":"Permanently wipe and sanitize privacy metadata from image, video, or audio files (strip GPS coordinates, device fingerprints, timestamps, and comments) with zero quality loss.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"word_inspect_security","title":null,"description":"Inspect the security and privacy state of a Word .docx: whether it is password-encrypted and with which algorithm, editing restriction mode and whether it is password-protected, presence of a text watermark, and privacy metadata (author, last modified by, company, manager, timestamps, custom properties, comment/revision author names). For encrypted files, pass the password to also inspect the contents. Max input 20MB base64. Privacy: when called remotely (Streamable HTTP / SSE) the file is uploaded to the DocMorph server and processed in memory only; it is not written to disk or retained after processing, and passwords and file contents are never logged. When the MCP server runs locally over stdio, the file is processed entirely on this machine.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"word_protect","title":null,"description":"Protect a Word .docx document in one call: set an open password (Agile AES-256 encryption, opens in Microsoft Word / WPS / LibreOffice), add a native Word text watermark, add copyright info (author/custom property/footer), clean privacy metadata, and restrict editing (read-only / comments only / tracked changes only / forms, optionally password-protected). Returns the protected .docx as base64 plus a summary of applied operations. Max input 20MB base64. Privacy: when called remotely (Streamable HTTP / SSE) the file is uploaded to the DocMorph server and processed in memory only; it is not written to disk or retained after processing, and passwords and file contents are never logged. When the MCP server runs locally over stdio, the file is processed entirely on this machine.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"},{"name":"word_remove_password","title":null,"description":"Remove the open password from an encrypted Word .docx (Agile encryption, Office 2010+) using the known password, with integrity (HMAC) verification. Returns the decrypted .docx as base64. A wrong password returns a clear WRONG_PASSWORD error; this tool does not crack or guess passwords. Max input 20MB base64. Privacy: when called remotely (Streamable HTTP / SSE) the file is uploaded to the DocMorph server and processed in memory only; it is not written to disk or retained after processing, and passwords and file contents are never logged. When the MCP server runs locally over stdio, the file is processed entirely on this machine.","annotations":null,"source":"probe","observed_at":"2026-10-19T21:21:14.860Z"}],"dev.protogrid/trust":{"score":82,"components":{"hygiene":80,"liveness":99,"freshness":100,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-97%","+updated-8d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-20T01:09:23.032Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":73,"label":"needs work","components":{"auth":null,"hygiene":71,"protocol":75,"stability":75,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones","status":"fail","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: assist_ocr_text (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); render_mermaid_diagram (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); convert_markdown_to_pdf (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 2,532 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"11 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.annotations","-tools.directory_hints","~protocol.modern","~stability.changes"],"flags":[],"tool_count":11,"token_estimate":2532,"tools_hash":"8face57f88e7a6df409cc07ce8b05d74","tools_changed_at":"2026-10-14T18:16:28.309Z","computed_at":"2026-10-20T00:54:40.254Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"dev.docmorph/docmorph-studio","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/dev.docmorph%2Fdocmorph-studio/tools","arguments":{"name":"dev.docmorph/docmorph-studio"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/dev.docmorph%2Fdocmorph-studio/connection?target=mcpServers","arguments":{"name":"dev.docmorph/docmorph-studio","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}