mkslides-mcp-server について
mkslidesでMarkdownをHTMLスライドに変換するMCPサーバーです。MCPクライアントからスライドを生成し、テーマやReveal.jsの設定を指定できます。
主な機能
- 01MarkdownからHTMLスライドを生成
- 02スライドとコードのテーマ設定
- 03Reveal.jsオプションの設定
- 04生成スライドのローカル配信
活用シーン
- 01MCPクライアントでMarkdownからプレゼン資料を作成
- 02スライドのテーマとReveal.js設定を指定
MCP 対応
MCPクライアントに`generate_slides`ツールを公開します。Markdownと任意の設定を受け取り、生成したスライドのローカルURLを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mdslides-mcp-server
MCP(Model Context Protocol) サーバーです。mkslides ライブラリを使用して、Markdown コンテンツから HTML スライドを生成します。
機能
このサーバーは、mkslides コマンドラインツールをシンプルなインターフェースで利用できるようにし、Model Context Protocol を介して Markdown 入力から直接プレゼンテーションスライドを生成します。これにより、VSCode の Claude などのツールと連携して、プレゼンテーションを簡単に作成・管理できます。
デモ
特長
- Markdown から HTML スライドを生成します。
- さまざまな mkslides の設定オプション(テーマ、ハイライトテーマ、Reveal.js オプション)をサポートします。
- 一時ファイルを適切に処理します。
- Docker を使用したコンテナー化デプロイに対応しています。
インストール
前提条件
- Python 3.12 以降
- mkslides がインストールされ、PATH から利用できること。
- Model Context Protocol (MCP) クライアント(例:VSCode の Claude)。
- Docker(Docker を使用したインストール方法の場合)。
インストール方法
pip を使用する
- リポジトリをクローンします:
git clone https://github.com/your-repo/mdslides-mcp-server.git cd mdslides-mcp-server - pip と uv を使用してインストールします(推奨):
または、pip を使用します:uv syncpip install .
Docker を使用する
- Docker がインストールされ、実行中であることを確認します。
- リポジトリのルートから、デプロイスクリプトを実行します:
./deploy_mdslides_docker.sh
This script will build the Docker image (if not already built) and start a container instance named `mdslides-mcp-instance`. The server inside the container will be running and ready to accept connections via MCP. The script also handles creating the necessary output directory (`./mkslides_output`) on the host.
### Configuration in MCP Settings
To use the server with your MCP client (like Claude in VSCode), you need to add it to your MCP settings.
If you installed using pip, you can run the server directly:
```json
{
"mcpServers": {
"mdslides-mcp-local": {
"command": "python",
"args": ["src/mdslides_mcp_server/server.py"],
"disabled": false,
"autoApprove": []
}
}
}
スクリプトを使用して Docker でデプロイする場合:
実行中のコンテナーインスタンスに接続するよう、MCP クライアントを設定します:
{
"mcpServers": {
"mdslides-mcp-local": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "docker",
"args": [
"attach",
"mdslides-mcp-instance"
],
"transportType": "stdio"
}
}
}
Claude/VSCode での使用方法
MCP の設定で構成すると、VSCode の Claude チャットインターフェースから generate_slides ツールを直接使用できます。
利用可能なツール:generate_slides
mkslides を使用して Markdown 入力から HTML プレゼンテーションスライドを生成し、ローカル HTTP サーバー経由で配信します。
パラメーター:
markdown_content(文字列、必須):スライドに使用する Markdown の生テキストです。slides_theme(文字列、任意):スライドのテーマ名です(例:black、white、league、beige、night、serif、simple、solarized、moon、dracula、sky、blood)。デフォルトのテーマを上書きします。slides_highlight_theme(文字列、任意):コードブロックのシンタックスハイライトテーマです(highlight.jsに組み込まれているテーマを指定できます)。revealjs_options(オブジェクト、任意):Reveal.js の設定オプションを含む辞書です。デフォルト設定と統合するか、上書きします。
戻り値:
- (文字列):MCP サーバー内蔵の HTTP サーバーで配信される、生成済み HTML スライドを指す URL(例:
http://localhost:8080/latest/index.html)です。この URL をブラウザーで開けます。
使用例:
<use_mcp_tool>
<server_name>mdslides-mcp-local</server_name>
<tool_name>generate_slides</tool_name>
<arguments>
{
"markdown_content": "# My Presentation\n\n---\n\n## Slide 2\n\n- Bullet 1\n- Bullet 2",
"slides_theme": "black",
"revealjs_options": {
"transition": "slide"
}
}
</arguments>
</use_mcp_tool>
これにより、デフォルトの出力ディレクトリ(./mkslides_output)に、「black」テーマと「slide」トランジションを使用してスライドが生成されます。
開発
コントリビューション
コントリビューションを歓迎します。標準的な GitHub の手順に従ってください。リポジトリをフォークし、機能ブランチを作成して、プルリクエストを送信します。
テストの実行
現在、プレースホルダーのテストファイル(tests/test_server.py)があります。テストを実行するには、通常、pytest のようなテストランナーを使用します:
pytest
tests/test_server.py に実際のテストを追加することを忘れないでください。
ソースからのビルド
上記の pip を使用したインストール手順に従い、開発環境をセットアップしてください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。(注:現在、リポジトリに LICENSE ファイルはありません。作成することをお勧めします。)
謝辞
- スライド生成の中核機能を提供する mkslides。
- サーバー連携を可能にする Model Context Protocol。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。