MDMagic MCP Server
About
Convert Markdown to DOCX, PDF, and HTML using your own Word templates — your letterhead, your branding, your fonts. Plus 15 designer-built templates for when you don't have your own.
Details
- Author
- MDMagic-MCP
- Downloads
- 375
- Categories
- Other, Productivity
Jump to
- Markdown to DOCX, PDF, and HTML conversion
- Custom Word template support (letterhead, branding, fonts)
- 15 built-in designer templates across multiple categories
- Pre-flight validation and cost estimation tools
- Secure, expiring download URLs for output files
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
MDMagic MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install via npm with an API key from your MDMagic account, then configure it in your client's MCP settings (e.g., claude_desktop_config.json). Once connected, you can ask the AI to convert Markdown using commands like "Convert this markdown to a PDF using the Executive_Platinum template."
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.
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').
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).
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.
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.
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
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.
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.
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.
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'.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"mdmagic mcp server": {
"mdmagic": {
"command": "npx",
"args": [
"-y",
"@mdmagic/mcp-server"
],
"env": {
"MDMAGIC_API_KEY": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
}
}
McpServers
{
"mdmagic": {
"command": "npx",
"args": [
"-y",
"@mdmagic/mcp-server"
],
"env": {
"MDMAGIC_API_KEY": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
MDMagic MCP Server
> Convert Markdown to DOCX, PDF, and HTML using your own Word templates — your letterhead, your branding, your fonts. Plus 15 designer-built templates for when you don't have your own.
MDMagic plugs straight into Claude, Cursor, VS Code, and any MCP-compatible AI assistant — giving them direct access to a professional document conversion pipeline (Pandoc + Microsoft Graph + Mammoth.js) and, more importantly, your templates. Upload your existing letterhead, stationery, brand guidelines, contract shells, or proposal templates — anything you already use in Microsoft Word — and your AI assistant can convert any Markdown directly into a polished document carrying your logo, fonts, colours, footers, page numbers, watermarks, and signature blocks. The output looks like it came from your design team, not from a generic AI export.
You: "Take this report and turn it into an Executive_Platinum PDF."
Claude: ✅ Done. Here's your secure download link.
14-page PDF, 2.3 MB, expires in 60 minutes.
Install
You need an MDMagic account (free tier available) and your API key from your account page.
Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"mdmagic": {
"command": "npx",
"args": ["-y", "@mdmagic/mcp-server@latest"],
"env": {
"MDMAGIC_API_KEY": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
}
Config file location:
- macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows — %APPDATA%\Claude\claude_desktop_config.json
- Linux — ~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop. The MDMagic tools will appear in the tool list.
Cursor
Add to ~/.cursor/mcp.json (or via Settings → MCP):
{
"mcpServers": {
"mdmagic": {
"command": "npx",
"args": ["-y", "@mdmagic/mcp-server@latest"],
"env": {
"MDMAGIC_API_KEY": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
}
VS Code (with an MCP extension)
{
"mcp.servers": {
"mdmagic": {
"command": "npx",
"args": ["-y", "@mdmagic/mcp-server@latest"],
"env": {
"MDMAGIC_API_KEY": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
}
Hosted (no install)
Don't want Node on the user's machine? Use the hosted endpoint:
{
"mcpServers": {
"mdmagic": {
"url": "https://api.mdmagic.ai/mcp",
"headers": {
"x-api-key": "mdmagic-xxxxxxxxxxxxxxxx"
}
}
}
}
Same tools, same templates, served over Streamable HTTP. Useful for clients that don't run local processes.
What you can do
Once connected, ask your AI assistant things like:
- "Convert this markdown to a PDF using the Executive_Platinum template."
- "What templates do I have available?"
- "How many credits will it cost to render this 800-word report as DOCX + PDF?"
- "Render this in landscape, US Letter, with the Legal_Burgundy template."
- "Check my credit balance."
The AI picks the right tool and returns a secure, time-limited download link.
Tools
| Tool | What it does |
|---|---|
| convert_document | Convert Markdown → DOCX / PDF / HTML / all three. Returns a secure expiring URL. |
| validate_markdown | Pre-flight check before conversion. Catches malformed tables, unclosed code fences, and other syntax issues that would produce broken output. |
| estimate_conversion_cost | Pre-flight cost estimate based on word count, page count, format, and template type. |
| check_credit_balance | Current credit balance (subscription + purchased pools), plan status. |
| list_all_templates | Full template catalog: 15 built-in templates (grouped by category) + your custom uploads. |
| list_builtin_templates | Only the built-in templates: Business (5), Creative (6), Professional (2), Technical (2). |
| list_custom_templates | Only your custom uploaded templates. |
| get_template_details | Show available variants (page sizes × orientations) for a specific template. |
| recommend_template | Suggest the best built-in template for a described purpose ("Q4 board pack" → Executive_Platinum). |
| show_default_settings | Your default page size, orientation, and template preferences. |
convert_document — input options
Three ways to provide the source:
- content — raw markdown string (most common)
- filePath — absolute path to a .md file (great for IDE workflows)
- fileContent — base64-encoded markdown (for binary-safe transports)
Plus:
- templateName — e.g. Executive_Platinum, Legal_Burgundy, or a custom template UUID
- outputFormat — docx, pdf, html, all, or all-formats
- pageSize — A4, A3, US_Letter, US_Legal, Executive
- orientation — Portrait or Landscape
Config
| Variable | Default | Notes |
|---|---|---|
| MDMAGIC_API_KEY | (required) | Your personal API key from mdmagic.ai/account |
| MDMAGIC_BASE_URL | https://api.mdmagic.ai | Override only for local dev or staging |
| REQUEST_TIMEOUT | 30000 | Request timeout in ms |
| MCP_TRANSPORT | stdio | stdio (default) or http for self-hosted Streamable HTTP |
| MCP_HTTP_PORT | 3001 | Port for HTTP transport mode |
| MCP_HTTP_HOST | 127.0.0.1 | Bind address for HTTP transport mode |
Most users will only ever set MDMAGIC_API_KEY.
Pricing
Conversions cost credits, calculated from page count and output format:
- DOCX: 1 credit per page (base)
- PDF: +1 credit per page
- HTML: +1 credit per page
- Custom templates: +1 credit per page
A 5-page report converted to DOCX + PDF + HTML using a custom template = 5 × (1 + 1 + 1 + 1) = 20 credits.
The estimate_conversion_cost tool returns exact numbers before you spend anything. The MCP also refuses to run if your balance is too low — no surprise bills.
Free-tier credits renew monthly. Paid plans and credit top-ups available at mdmagic.ai.
Privacy
- No permanent storage. Documents pass through Microsoft Graph API for PDF rendering and are deleted within 5–10 seconds. Output files are deleted from MDMagic servers after download or after 60 minutes, whichever comes first.
- Random filenames. Source files use UUIDs, never user-identifiable names.
- Secure download URLs. Each conversion returns a one-time URL with session ID and download token. No public file directories.
- API key isolation. Each user authenticates with their own key. No shared credentials.
Troubleshooting
MDMAGIC_API_KEY environment variable is required
Set the env var in your client config (the env block in the JSON). Don't put it in a shell — npx won't see it.
Invalid API key format
Keys must match mdmagic- followed by exactly 16 digits. Copy it cleanly from your account page.
Failed to connect to MDMagic API
Check https://api.mdmagic.ai/health in a browser. If it's up, the issue is local network or firewall. Confirm MDMAGIC_BASE_URL (default https://api.mdmagic.ai) is reachable from the machine running the MCP.
Tools don't appear in Claude Desktop
Fully quit and relaunch Claude Desktop after editing claude_desktop_config.json — a window close isn't enough.
Insufficient credits
Use check_credit_balance to confirm balance, estimate_conversion_cost to preview costs, or top up at mdmagic.ai/account.
Local development
```bash
git clone https://github.com/MDMagic-MCP/mdmagic-mcp-server.git
cd mdmagic-mcp-server
npm install
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




