---
schema: "interfacedelta-service-md/1"
target_key: "sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e"
origin: "https://docmorph.dev"
protocols: ["mcp"]
observed_at: "2026-11-12T18:05:30.595Z"
generated_at: "2026-11-13T02:04:50.325Z"
record_url: "https://interfacedelta.com/atlas/sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e"
record_api: "https://interfacedelta.com/api/v1/record/services/sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e"
source: "InterfaceDelta atlas"
license_note: "Use of this record is governed by https://interfacedelta.com/terms."
---

# Service record: https://docmorph.dev

## Identity
- Origin: https://docmorph.dev
- Endpoints: https://docmorph.dev/mcp
- Protocols: mcp
- Registry names: dev.docmorph/docmorph-studio
- First retained observation: 2026-11-12T18:05:30.595Z
- Latest observation: 2026-11-12T18:05:30.595Z

## Tools
- Tool 1: assist\_ocr\_text (mcp); inputs: action, targetLang, text; inputs omitted: 0; annotations: {}
- Tool 2: convert\_markdown\_to\_pdf (mcp); inputs: markdown, pageSize, theme, title; inputs omitted: 0; annotations: {}
- Tool 3: extract\_markdown\_outline (mcp); inputs: content, markdown; inputs omitted: 0; annotations: {}
- Tool 4: image\_ocr\_recognize (mcp); inputs: base64Image, language, mode; inputs omitted: 0; annotations: {}
- Tool 5: inspect\_media\_security (mcp); inputs: base64Data, fileName, mediaType; inputs omitted: 0; annotations: {}
- Tool 6: parse\_pdf\_to\_markdown (mcp); inputs: base64Pdf, fileName; inputs omitted: 0; annotations: {}
- Tool 7: render\_mermaid\_diagram (mcp); inputs: syntax, theme, title; inputs omitted: 0; annotations: {}
- Tool 8: sanitize\_media\_security (mcp); inputs: base64Data, clearDevice, clearGps, clearTimestamps, fileName, mediaType; inputs omitted: 0; annotations: {}
- Tool 9: word\_inspect\_security (mcp); inputs: base64Docx, fileName, password; inputs omitted: 0; annotations: {}
- Tool 10: word\_protect (mcp); inputs: base64Docx, cleanPrivacy, copyrightAuthor, copyrightFooter, copyrightText, currentPassword, fileName, openPassword; inputs omitted: 9; annotations: {}
- Tool 11: word\_remove\_password (mcp); inputs: base64Docx, fileName, password; inputs omitted: 0; annotations: {}
Tools omitted: 0.

## Effect readings (AI)
- Tool 1 purpose: ◇ AI reading; Returns a translated, proofread, or summarized version of OCR-extracted text, depending on the chosen action.; lens: tool-purpose-v1; model: not recorded.
- Tool 2 purpose: ◇ AI reading; Converts supplied Markdown into a themed PDF in A4 or Letter size, with an optional title and automatic page breaks.; lens: tool-purpose-v1; model: not recorded.
- Tool 3 purpose: ◇ AI reading; Returns a heading tree, table of contents, and word and character counts for supplied Markdown text.; lens: tool-purpose-v1; model: not recorded.
- Tool 6 purpose: ◇ AI reading; Converts a base64-encoded PDF into Markdown with tables and formulas using AI vision OCR.; lens: tool-purpose-v1; model: not recorded.
- Tool 7 (render\_mermaid\_diagram): ◇ AI reading; state: counted; none (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 7 purpose: ◇ AI reading; Converts Mermaid flowchart or sequence diagram syntax into styled SVG code with node metadata.; lens: tool-purpose-v1; model: not recorded.
- Tool 8 purpose: ◇ AI reading; Removes GPS, device, timestamp and comment metadata from base64-encoded photo, video or audio files, returning a cleaned copy.; lens: tool-purpose-v1; model: not recorded.
- Tool 9 (word\_inspect\_security): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 10 purpose: ◇ AI reading; Generates an encrypted copy of a Word file with an open password, watermark, cleaned metadata and editing restrictions applied.; lens: tool-purpose-v1; model: not recorded.

## Change history
No changes recorded in the retained history.

## Payment rails
- Protocols observed: none.
- HTTP 402 seen in retained observations: false.

## Not covered
- We don't call tools.
- We don't rate or certify.
- We don't publish prices.
- We cover only what was observed.

## Evidence
- Identity: observed / declared; observation time: 2026-11-12T18:05:30.595Z.
- Tools: declared; observation time: 2026-11-12T18:05:30.595Z.
- Effect readings (AI): AI reading; observation time: 2026-11-12T18:05:30.595Z.
- Change history: observed; observation time: 2026-11-12T18:05:30.595Z; change observation times: none.
- Payment rails: observed; observation time: 2026-11-12T18:05:30.595Z.

```json
{
  "schema": "interfacedelta-service-md/1",
  "target_key": "sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e",
  "origin": "https://docmorph.dev",
  "protocols": [
    "mcp"
  ],
  "observed_at": "2026-11-12T18:05:30.595Z",
  "generated_at": "2026-11-13T02:04:50.325Z",
  "record_url": "https://interfacedelta.com/atlas/sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e",
  "record_api": "https://interfacedelta.com/api/v1/record/services/sha256:af30571de33fa978dae45d66783998317c977bf5f9c962fcc4a8c5145882d26e",
  "source": "InterfaceDelta atlas",
  "license_note": "Use of this record is governed by https://interfacedelta.com/terms.",
  "identity": {
    "origin": "https://docmorph.dev",
    "endpoints": [
      "https://docmorph.dev/mcp"
    ],
    "protocols": [
      "mcp"
    ],
    "registry_names": [
      "dev.docmorph/docmorph-studio"
    ],
    "first_retained_observation": "2026-11-12T18:05:30.595Z",
    "latest_observation": "2026-11-12T18:05:30.595Z"
  },
  "tools": [
    {
      "name": "assist_ocr_text",
      "protocol": "mcp",
      "inputs": [
        "action",
        "targetLang",
        "text"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns a translated, proofread, or summarized version of OCR-extracted text, depending on the chosen action.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "convert_markdown_to_pdf",
      "protocol": "mcp",
      "inputs": [
        "markdown",
        "pageSize",
        "theme",
        "title"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Converts supplied Markdown into a themed PDF in A4 or Letter size, with an optional title and automatic page breaks.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "extract_markdown_outline",
      "protocol": "mcp",
      "inputs": [
        "content",
        "markdown"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns a heading tree, table of contents, and word and character counts for supplied Markdown text.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "image_ocr_recognize",
      "protocol": "mcp",
      "inputs": [
        "base64Image",
        "language",
        "mode"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null
    },
    {
      "name": "inspect_media_security",
      "protocol": "mcp",
      "inputs": [
        "base64Data",
        "fileName",
        "mediaType"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null
    },
    {
      "name": "parse_pdf_to_markdown",
      "protocol": "mcp",
      "inputs": [
        "base64Pdf",
        "fileName"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Converts a base64-encoded PDF into Markdown with tables and formulas using AI vision OCR.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "render_mermaid_diagram",
      "protocol": "mcp",
      "inputs": [
        "syntax",
        "theme",
        "title"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "none",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Converts Mermaid flowchart or sequence diagram syntax into styled SVG code with node metadata.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "sanitize_media_security",
      "protocol": "mcp",
      "inputs": [
        "base64Data",
        "clearDevice",
        "clearGps",
        "clearTimestamps",
        "fileName",
        "mediaType"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Removes GPS, device, timestamp and comment metadata from base64-encoded photo, video or audio files, returning a cleaned copy.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "word_inspect_security",
      "protocol": "mcp",
      "inputs": [
        "base64Docx",
        "fileName",
        "password"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "word_protect",
      "protocol": "mcp",
      "inputs": [
        "base64Docx",
        "cleanPrivacy",
        "copyrightAuthor",
        "copyrightFooter",
        "copyrightText",
        "currentPassword",
        "fileName",
        "openPassword"
      ],
      "inputs_omitted": 9,
      "annotations": {},
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Generates an encrypted copy of a Word file with an open password, watermark, cleaned metadata and editing restrictions applied.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "word_remove_password",
      "protocol": "mcp",
      "inputs": [
        "base64Docx",
        "fileName",
        "password"
      ],
      "inputs_omitted": 0,
      "annotations": {},
      "effects": null
    }
  ],
  "tools_omitted": 0,
  "tools_state": "recorded",
  "changes": [],
  "payment_rails": {
    "protocols": [],
    "http_402_seen": false
  },
  "not_covered": [
    "We don't call tools.",
    "We don't rate or certify.",
    "We don't publish prices.",
    "We cover only what was observed."
  ],
  "evidence": [
    {
      "section": "Identity",
      "classes": [
        "observed",
        "declared"
      ],
      "observed_at": "2026-11-12T18:05:30.595Z"
    },
    {
      "section": "Tools",
      "classes": [
        "declared"
      ],
      "observed_at": "2026-11-12T18:05:30.595Z"
    },
    {
      "section": "Effect readings (AI)",
      "classes": [
        "AI reading"
      ],
      "observed_at": "2026-11-12T18:05:30.595Z"
    },
    {
      "section": "Change history",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T18:05:30.595Z",
      "observation_times": []
    },
    {
      "section": "Payment rails",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T18:05:30.595Z"
    }
  ]
}
```
