توثيق API - MD-2-PDF v2.0

نظرة عامة

MD-2-PDF هي أداة لتحويل نصوص Markdown إلى ملفات PDF مع دعم كامل للغة العربية (RTL) والمعادلات الرياضية (LaTeX).

الرابط الأساسي: https://md-2-pdf.pages.dev/api

تنسيق الطلبات: JSON مع Content-Type: application/json

المصادقة

معظم نقاط النهاية تعمل بدون مصادقة. لحفظ السجلات، يمكنك:

  • تسجيل الدخول: إرسال JWT token عبر Authorization: Bearer <token>
  • ضيف: إرسال معرف الجلسة عبر X-Guest-Session: <id>

المميزات

  • ✅ دعم كامل للغة العربية واتجاه RTL
  • ✅ معادلات LaTeX الرياضية ($x^2$ و $$\frac{1}{2}$$)
  • ✅ تلوين الأكواد البرمجية (Syntax Highlighting)
  • ✅ YAML Frontmatter لبيانات المستند
  • ✅ صفحة غلاف تلقائية
  • ✅ ثيمات متعددة (blue, red, green, purple, gold)
  • ✅ أدوات MCP للذكاء الاصطناعي
  • ✅ تحويل مزدوج: خادم (Puppeteer) + عميل (html2pdf)

GET /api/health GET

فحص صحة الخادم والتحقق من أنه يعمل.

مثال الطلب

curl https://md-2-pdf.pages.dev/api/health

مثال الاستجابة

{
  "status": "ok",
  "service": "md-2-pdf",
  "version": "2.0.0",
  "timestamp": "2026-01-01T00:00:00.000Z"
}

POST /api/convert POST

تحويل نص Markdown إلى ملف PDF. يعيد PDF بصيغة base64 داخل JSON.

المعاملات

المعاملالنوعمطلوبالوصف
markdownstringنعمنص Markdown للتحويل
options.titlestringلاعنوان المستند
options.pageSizestringلاA4 | Letter | Legal (افتراضي: A4)
options.orientationstringلاportrait | landscape
options.cssstringلاCSS مخصص يُحقن في PDF
options.fontSizenumberلاحجم الخط (افتراضي: 10)
options.fontFamilystringلاعائلة الخط
options.themestringلااسم الثيم (blue, red, green, purple, gold)
options.rtlbooleanلااتجاه RTL (افتراضي: true)

مثال الطلب

curl -X POST https://md-2-pdf.pages.dev/api/convert \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# مرحباً بالعالم\nهذا **نص** تجريبي.\n\nمعادلة: $E = mc^2$", "options": {"title": "مستندي"}}'

مثال الاستجابة

{
  "success": true,
  "message": "Conversion successful",
  "metadata": { "title": "مستندي", "createdAt": "..." },
  "pdf": "JVBERi0xLjQK..."
}

POST /api/parse POST

تحليل Markdown واستخراج البيانات الوصفية مع معاينة HTML.

مثال الطلب

curl -X POST https://md-2-pdf.pages.dev/api/parse \
  -H "Content-Type: application/json" \
  -d '{"markdown": "---\ntitle: مستندي\nauthor: أحمد\n---\n# مرحباً"}'

GET /api/history GET

جلب سجلات المستندات المحفوظة. يتطلب مصادقة (JWT أو Guest Session).

المعاملات (Query)

المعاملالنوعالوصف
limitnumberعدد النتائج (افتراضي: 50)
offsetnumberبداية النتائج
searchstringبحث في العناوين

أدوات MCP المتاحة

خادم MCP يوفر الأدوات التالية للذكاء الاصطناعي:

الأداةالوصف
convert-markdown-to-pdfتحويل نص Markdown إلى PDF
convert-markdown-file-to-pdfتحويل ملف Markdown إلى PDF
parse-markdown-metadataاستخراج البيانات الوصفية من Markdown

خادم MCP يعمل محلياً عبر stdio ويحوّل الطلبات تلقائياً إلى https://md-2-pdf.pages.dev/api.

إعداد MCP

إعدادات MCP الجاهزة لكل أداة. انسخ الإعداد المناسب وأضفه لملف إعدادات الأداة.

قبل البدء: ثبّت المشروع محلياً:

git clone https://github.com/your-user/md-2-pdf.git
cd md-2-pdf
npm install
npm run build

A Antigravity (Gemini CLI)

~/.gemini/settings.json
{
  "mcpServers": {
    "md-2-pdf": {
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

C Claude Code

سطر الأوامر أو ~/.config/claude/mcp.json
# عبر الأمر
claude mcp add md-2-pdf -- node <md-2-pdf-path>/dist/mcp/server.js

# أو في ملف الإعدادات ~/.config/claude/mcp.json
{
  "mcpServers": {
    "md-2-pdf": {
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

G Gemini CLI

~/.gemini/settings.json
{
  "mcpServers": {
    "md-2-pdf": {
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

K Kilo Code

~/.config/kilo/kilo.jsonc
{
  "mcp": {
    "md-2-pdf": {
      "type": "stdio",
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

O OpenClaw / OpenCode

~/.config/opencode/opencode.jsonc
{
  "mcp": {
    "md-2-pdf": {
      "type": "stdio",
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

X Codex (OpenAI)

~/.codex/config.toml
[mcp_servers.md-2-pdf]
command = "node"
args = ["<md-2-pdf-path>/dist/mcp/server.js"]

Q Qwen CLI

~/.qwen/mcp_config.json
{
  "mcpServers": {
    "md-2-pdf": {
      "command": "node",
      "args": ["<md-2-pdf-path>/dist/mcp/server.js"]
    }
  }
}

* أي أداة MCP أخرى

{
  "command": "node",
  "args": ["<md-2-pdf-path>/dist/mcp/server.js"],
  "transport": "stdio"
}

ملاحظة: استبدل <md-2-pdf-path> بمسار المشروع على جهازك. خادم MCP يحوّل الطلبات تلقائياً إلى https://md-2-pdf.pages.dev/api — لا حاجة لتشغيل خادم محلي.