npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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

Readme

Marp MCP Node

npm version License: MIT

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) - デフォルトは html
  • theme (オプション): カスタムテーマファイルのパス

戻り値:

  • 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 スライド

**重要な内容**をここに記述

🤝 貢献

  1. このリポジトリをフォーク
  2. 機能ブランチを作成 (git checkout -b feature/amazing-feature)
  3. 変更をコミット (git commit -m 'Add amazing feature')
  4. ブランチをプッシュ (git push origin feature/amazing-feature)
  5. Pull Request を作成

📄 ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください。

🔗 関連リンク

📞 サポート

問題や質問がございましたら、GitHub Issuesでお知らせください。


Created by w-okada