Quarto MCP服务器
支持MCP(Model Context Protocol)的服务器,接收Quarto Markdown(.qmd格式)作为字符串,转换为以PowerPoint(.pptx)格式为中心的Quarto CLI支持的各种输出格式。
主要机能
- 以PowerPoint格式为主轴:将企业演示文稿设计为首选用例
- 支持自定义模板:可为PowerPoint指定企业模板(.pptx)
- 在配置文件中预注册多个模板 - 在工具参数中指定模板ID或URL - 指定URL时自动下载使用(HTTP/HTTPS対応)
- Mermaid验证:在渲染之前验证Mermaid语法
- 多层验证方法(正则表达式+Mermaid CLI) - 非法标记法的检测(拼写错误、代码块外的关键字等) - 详细的错误报告
- 基于字符串的输入:从LLM/MCP客户端接受Quarto Markdown作为纯字符串
- 多形式出力対応:支持除PowerPoint以外的Quarto CLI支持的所有形式
- 文件路径输出:直接在指定路径上生成输出文件
- 仅静态转换:为了确保安全,不执行代码单元格(
--no-execute固定)
必须环境
- Python 3.10以上
- Quarto CLI 1.3以上
使用Mermaid验证功能时(推荐)
- Node.js 14以上
- Mermaid CLI:
npm install -g @mermaid-js/mermaid-cli
安装
使用uvx运行(推荐)
# ローカルディレクトリから実行
uvx --from . quarto-mcp
# Gitリポジトリから直接実行
uvx --from git+https://github.com/notfolder/quarto_mcp quarto-mcp使用pip安装
# ローカルから
pip install .
# Gitから
pip install git+https://github.com/notfolder/quarto_mcp使用方法
MCP客户端配置文件(例如: ~/.config/mcp/settings.json)中添加以下内容:
{
"mcpServers": {
"quarto": {
"command": "uvx",
"args": ["--from", "git+https://github.com/notfolder/quarto_mcp", "quarto-mcp"]
}
}
}交付工具
石英渲染器
将快速标记转换为指定格式。
参数:
content(必须):Quarto Markdown形式の文字列format(必须):出力形式ID(pptx,html,pdf,docx等)output_filename(必需):输出文件的绝对路径template(可选):指定PowerPoint模板
- 模板ID(在template.yaml中定义) - HTTP/HTTPS URL(.pptx文件)-支持自动下载
format_options(可选):特定于输出格式的选项
使用例:
# テンプレートIDを使用
{
"content": "# スライドタイトル\n\n内容",
"format": "pptx",
"output_filename": "/path/to/output.pptx",
"template": "corporate_standard"
}
# HTTP URLからテンプレートをダウンロード
{
"content": "# スライドタイトル\n\n内容",
"format": "pptx",
"output_filename": "/path/to/output.pptx",
"template": "https://example.com/templates/custom.pptx"
}quarto_list_格式
获取支持的输出格式列表。
quarto_validate美人鱼
验证Quarto Markdown中Mermaid图表的语法。建议用于渲染前的预验证。
参数:
content(必须):Quarto Markdown形式の文字列strict_mode(可选)严格模式(将警告视为错误),默认为假
使用例:
{
"content": "# スライド\n\n```{mermaid}\ngraph TD\n A --> B\n```",
"strict_mode": false
}必须要件:
- 必须使用“Mermid CLI(mmdc)”
- 安装方法:
npm install -g @mermaid-js/mermaid-cli - 需要大于等于Node.js14
建议工作流:
quarto_validate_mermaid在中验证Mermaid语法- 如果验证成功
quarto_render执行渲染
模板功能
模板标识
config/templates.yaml可以在中预注册模板:
templates:
corporate_standard:
path: /path/to/corporate_standard.pptx
description: "企業標準テンプレート"HTTP/HTTPS下载
通过直接指定URL,可以自动下载模板:
- 支持的协议:HTTP,HTTPS(推荐HTTPS)
- 文件格式:仅限.pptx格式
- 下载超时: 30秒
- 最大文件大小:50 MB
支持格式
演示文稿格式
pptx:支持模板的Microsoft PowerPointrevealjs:Revial.js HTML演示文稿beamer:LaTeX Beamer
文档格式
html:HTML5pdf:PDFdocx:微软Wordodt:OpenDocument文本epub:EPUB电子书籍
Markdown形式
gfm:GitHub风格的Markdowncommonmark:CommonMarkhugo:雨果docusaurus:博士
此外,支持多种形式。详情quarto_list_formats工具确认。
测试
测试环境设置
# 仮想環境を作成
uv venv
source .venv/bin/activate
# 依存関係をインストール
uv pip install -e ".[dev]"运行测试
# すべてのテストを実行
pytest
# 統合テストのみ実行(Quarto CLIが必要)
pytest tests/test_integration.py -v
# PowerPoint出力テスト(手動確認用)
pytest tests/test_integration.py::test_render_pptx_for_manual_inspection -v -s关于手动验证测试:
test_render_pptx_for_manual_inspection测试将实际的PowerPoint文件test_output/demo_presentation.pptx中所述修改相应参数的值。执行测试后,可以通过以下命令打开文件以查看其内容:
open test_output/demo_presentation.pptx # macOS
# または
xdg-open test_output/demo_presentation.pptx # Linux许可证
CC-BY-4.0
详细仕样
有关详细设计规范,请参见docs/SPEC.md来修改标记元素的显示属性。
