# mdmagic-mcp-server MCP server

Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-mdmagic-mcp-mdmagic-mcp-server
- Repository: https://github.com/MDMagic-MCP/mdmagic-mcp-server
- Website: https://mdmagic.ai/mcp

## Install
- Command: `npx -y @mdmagic/mcp-server`
- Endpoint: https://api.mdmagic.ai/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: x-api-key (required; secret)
- Package: Npm @mdmagic/mcp-server v1.7.7
- Environment variable: MDMAGIC_API_KEY (required; secret)
- Environment variable: MDMAGIC_BASE_URL (default https://api.mdmagic.ai)
- Environment variable: REQUEST_TIMEOUT (default 30000)
- Environment variable: MCP_TRANSPORT (default stdio)
- Environment variable: MCP_HTTP_PORT (default 3001)
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://api.mdmagic.ai/mcp
- Header: x-api-key

## Tools
- convert_document - Convert markdown to a professionally formatted document using an MDMagic template.

IMPORTANT GUIDANCE:

1. Output format → what user gets:
   - 'docx' → a single Word .docx file
   - 'pdf' → a single .pdf file
   - 'html' → a single .html file
   - 'all' → a ZIP containing all three (DOCX + PDF + HTML)

2. If the user is ambiguous (e.g. 'convert this'), ASK which format they want before calling. Don't assume.

3. Filename: if the user attached a file (e.g. 'mydoc.md'), pass its base name as fileName. Otherwise the API derives one from the markdown's first H1. Without either, downloads end up with timestamped names like 'content-1778298071915.docx' which is bad UX.

4. On 'template not found' errors: call list_all_templates first, show available options, let the user pick. Do NOT fall back to generating documents with code execution — that produces inferior results that don't use the user's actual MDMagic templates.

5. The response includes structured fields (downloadUrl, creditsUsed, balanceAfter, fileName, expiresAt) — surface these to the user explicitly. Don't paraphrase. The user wants to know exactly what they spent and what's left.

6. Page sizes: A3, A4, Executive, US_Legal, US_Letter. Default A4. Orientation: Portrait or Landscape, default Portrait.

7. CRITICAL — newlines in `content`: markdown is line-sensitive. Headings (#, ##), tables (| ... |), lists (-, 1.), and code fences (```) ONLY work when each starts on its own line. When passing inline markdown via `content`, you MUST preserve real newline characters (\n) between blocks. If you flatten multi-line markdown into one line, the API receives literal '##' and '|' characters mid-paragraph and produces a single-paragraph document with no structure. Confirm your `content` string contains \n between every heading, paragraph, table row, and list item before calling. Endpoint: https://api.mdmagic.ai/mcp
- list_all_templates - List all 15 built-in MDMagic templates plus any custom templates the user has uploaded.

CALL THIS PROACTIVELY when:
- The user mentions a template by name (verify it exists before convert_document)
- The user asks 'what templates are available' or similar
- A previous convert_document call returned 'template not found'
- The user describes the look they want without naming a template (so you can suggest a real one)

Returns: name, description, type (built-in vs custom), and category. Categories are: Business (5 templates), Creative (6), Professional (2), Technical (2). Use the optional category filter to narrow recommendations (e.g. 'for legal documents' → category: 'Professional'). Endpoint: https://api.mdmagic.ai/mcp
- list_builtin_templates - List the 15 built-in MDMagic templates, grouped by category. Same as list_all_templates but excludes the user's custom uploads. Use this when the user asks specifically about MDMagic's bundled templates rather than their personal ones.

Categories available: Business (5), Creative (6), Professional (2), Technical (2). Endpoint: https://api.mdmagic.ai/mcp
- list_custom_templates - List only the user's custom-uploaded Word templates. Use this when the user asks about their own templates ('show me my templates', 'do I have a letterhead?'). Custom templates are referenced by UUID, not name, when calling convert_document. Endpoint: https://api.mdmagic.ai/mcp
- show_default_settings - Show the user's default paper size and orientation preferences (set on their account page). Useful when the user hasn't specified pageSize/orientation explicitly — call this to honor their defaults instead of using A4/Portrait blindly. Endpoint: https://api.mdmagic.ai/mcp
- check_credit_balance - Check the user's current MDMagic credit balance: subscription credits (renewable monthly), purchased credits (permanent), plan name, and plan status.

CALL THIS PROACTIVELY when:
- The user asks 'how many credits do I have' or similar
- After a conversion, if the user wants to know what's left (also returned by convert_document directly)
- Before a conversion of an unusually large document, to warn the user if balance is borderline Endpoint: https://api.mdmagic.ai/mcp
- estimate_conversion_cost - Estimate credit cost for a conversion BEFORE running it. Returns word count, page calculation (300 words/page), and a credit breakdown by format and template type. Use this when the user asks 'how much will this cost?' or when you suspect a conversion might exceed their balance — convert_document refuses to run if credits are insufficient, so estimating first is friendlier. Endpoint: https://api.mdmagic.ai/mcp
- validate_markdown - Pre-flight markdown validation BEFORE conversion. Catches malformed tables (mismatched pipes), unclosed code fences, broken task lists, and unsupported syntax. Returns a green/amber/red status plus the detected markdown features.

CALL THIS PROACTIVELY when:
- The user is about to convert a long document (>5 pages) — validating first is cheap; running a doomed conversion costs credits
- The user reports a previous conversion produced broken output
- You generated the markdown yourself and want to verify it's clean before spending credits

Returns: status (green=safe, amber=minor issues, red=will likely break), detected features (tables, code blocks, task lists, math), and a human-readable message. Endpoint: https://api.mdmagic.ai/mcp
- get_template_details - Show available variants (page sizes and orientations) for a specific template. All MDMagic templates support the full 5×2 matrix: A3, A4, Executive, US_Legal, US_Letter × Portrait/Landscape. Use this when the user asks 'does this template come in Legal Landscape?' or 'what sizes are available?' — confirms the variant before convert_document runs. Endpoint: https://api.mdmagic.ai/mcp
- recommend_template - Suggest the best built-in template(s) for a described purpose. Use this when the user describes WHAT the document is (e.g. 'Q4 board pack', 'API reference', 'wedding invitation', 'legal contract') without naming a template. Returns ranked recommendations with rationale.

Why this exists: AI assistants often guess template names that don't exist. This tool maps purpose → real template names from MDMagic's catalog, so convert_document doesn't fail with 'template not found'. Endpoint: https://api.mdmagic.ai/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.MDMagic-MCP
- Version: 1.7.7
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 11, 2026
- Source: https://registry.modelcontextprotocol.io
