@dannadori/marp-mcp-node
v1.0.7
Published
A Model Context Protocol (MCP) server that generates presentations from Markdown using Marp, supporting HTML, PDF, and PPTX output formats
Maintainers
Readme
Marp MCP Node
Marp MCP Node は、Marpを使用して Markdown からプレゼンテーションを生成し、Model Context Protocol (MCP) サーバーとして動作する Node.js パッケージです。
✨ 主な機能
- 📝 Markdown からプレゼンテーション生成: Marp を使用して Markdown ファイルを美しいスライドに変換
- 🎨 複数出力形式対応: HTML、PDF、PPTX 形式での出力 (現在は HTML のみ。)
- 🎯 高度なナビゲーション: スライド間の移動、フルスクリーン、キーボードショートカット
- 📱 タッチデバイス対応: スワイプジェスチャーでスライド操作
- 🎭 テーマサポート: カスタムテーマの適用可能
- 🔌 MCP 統合: Model Context Protocol サーバーとして外部ツールとの連携
🚀 インストール
npm install @dannadori/marp-mcp-nodeまたは
pnpm add @dannadori/marp-mcp-node📖 使用方法
MCP サーバーとして使用
# サーバーを起動
npx @dannadori/marp-mcp-node🔧 提供されるツール
この MCP サーバーは以下の 2 つのツールを提供します:
1. marp.render
機能: Markdown 文字列を直接受け取って、Marp でスライドに変換します。
パラメータ:
md(必須): 変換する Markdown 文字列format(オプション): 出力形式 (html,pdf,pptx) - デフォルトはhtmltheme(オプション): カスタムテーマファイルのパス
戻り値:
- HTML 形式の場合: インラインリソースとして結果を返す
- PDF/PPTX 形式の場合: ファイルリンクとして結果を返す
使用例:
// HTML形式で出力
marp.render({
md: "# タイトル\n\n内容",
format: "html",
});
// PDFで出力(テーマ付き)
marp.render({
md: "# タイトル\n\n内容",
format: "pdf",
theme: "/path/to/custom-theme.css",
});2. marp.convert
機能: Markdown ファイルを読み込んで、Marp でスライドに変換し、指定された拡張子のファイルに出力します。
パラメータ:
inputPath(必須): 変換する Markdown ファイルのパスoutputExtension(必須): 出力ファイルの拡張子 (html,pdf,pptx)theme(オプション): テーマファイルのパス
戻り値:
- 成功時: 出力ファイルのパスを返す
- エラー時: エラーメッセージを返す
使用例:
// presentation.md を presentation.html に変換
marp.convert({
inputPath: "./presentation.md",
outputExtension: "html",
});
// カスタムテーマでPDF出力
marp.convert({
inputPath: "./slides.md",
outputExtension: "pdf",
theme: "./custom-theme.css",
});🎨 出力形式
HTML 出力
- インタラクティブなスライドナビゲーション
- プログレスバー
- フルスクリーン対応
- キーボードショートカット
- モバイルデバイスでのスワイプ対応
PDF 出力 (未実装)
- 高品質な PDF 生成
- 印刷可能なフォーマット
- Puppeteer を使用した正確なレンダリング
PPTX 出力 (未実装)
- Microsoft PowerPoint 互換
- 編集可能なスライド
- テキストベースの変換
⌨️ キーボードショートカット(HTML 出力時)
| キー | 機能 |
| ------------- | ---------------------- |
| → / Space | 次のスライド |
| ← | 前のスライド |
| Home | 最初のスライド |
| End | 最後のスライド |
| F / F11 | フルスクリーン切り替え |
📱 タッチ操作
- 左スワイプ: 次のスライド
- 右スワイプ: 前のスライド
🎭 テーマサポート
カスタムテーマを適用できます:
// テーマファイルを指定
const result = await marpTool.render({
md: "# Your Presentation\n\nSlide content here",
format: "html",
theme: "/path/to/your/theme.css",
});🔧 技術仕様
- Node.js: 18.0.0 以上
- TypeScript: 5.8.3
- 主要依存関係:
@marp-team/marp-core: Marp コア機能@modelcontextprotocol/sdk: MCP プロトコルpuppeteer: PDF 生成pptxgenjs: PowerPoint 生成jsdom: HTML 操作
📝 Markdown サンプル
---
theme: default
paginate: true
---
# タイトルスライド
プレゼンテーションの開始
---
## 第 2 スライド
- ポイント 1
- ポイント 2
- ポイント 3
---
## 第 3 スライド
**重要な内容**をここに記述🤝 貢献
- このリポジトリをフォーク
- 機能ブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチをプッシュ (
git push origin feature/amazing-feature) - Pull Request を作成
📄 ライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。
🔗 関連リンク
- Marp - Markdown Presentation Ecosystem
- Model Context Protocol - MCP 仕様
- Puppeteer - ヘッドレス Chrome API
📞 サポート
問題や質問がございましたら、GitHub Issuesでお知らせください。
Created by w-okada
