Token导航 LogoToken导航TokenDH.com
MCP Media Forge logo
AI代理stdio官方级别未说明来源级核验

MCP Media Forge

MCP Server

mcp-media-forge

一个基于文本DSL生成图表、HTML页面和幻灯片的MCP服务器,专为AI编码代理设计。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
图表生成TypeScriptClaudeClaudeCursorClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

PavelGuzenfeld

提供方

PavelGuzenfeld

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx mcp-media-forge

详细介绍

MCP媒体锻造

](https://www.npmjs.com/package/mcp-media-forge) ![MCP Registry](https://registry.modelcontextprotocol.io) ![License: MIT](LICENSE)

MCP服务器,从文本DSL生成图表、HTML页面和幻灯片,专为AI编码代理嵌入Markdown而设计。

LLM代理调用以下工具 render_mermaid, render_html_page,或 render_slides 使用文本输入,并返回准备嵌入文档的资产的文件路径。

输出图库

美人鱼流程图

美人鱼序列图

D2架构图

Graphviz依赖关系图

Vega Lite条形图

工具

图表渲染器(Docker)

工具输入格式用例
render_mermaidMermaid代码SVG、PNG流程图、序列图、ER、状态图、甘特图、git图
render_d2D2代码SVG、PNG带容器和图标的架构图
render_graphvizDOT代码SVG、PNG依赖关系图、网络图
render_chartVega Lite JSONSVG、PNG条形图、折线图、散点图、面积图、热图

HTML生成器(无Docker)

工具输入输出用例
render_html_pageHTML正文+主题独立HTML技术文档、报告、仪表板
render_slidesJSON幻灯片数组+主题HTML幻灯片演示文稿、状态更新、演练

公用事业

工具说明
get_tool_guide使用示例、反模式、每个工具的复杂性限制
list_assets列出输出目录中生成的所有文件

快速开始

1.启动渲染容器(用于图表工具)

cd docker
docker compose up -d
HTML页面和幻灯片工具可以在没有Docker的情况下工作。

2.安装MCP服务器

选项A--npx(不安装)

npx mcp-media-forge

选项B——克隆和构建

git clone https://github.com/PavelGuzenfeld/mcp-media-forge.git
cd mcp-media-forge
npm install
npm run build

3.向您的MCP客户注册

任何兼容MCP的客户端(Claude Code、Cursor、VS Code+Copilot、Cline等)都可以使用此服务器。标准配置:

{
  "mcpServers": {
    "media-forge": {
      "command": "node",
      "args": ["/path/to/mcp-media-forge/dist/index.js"],
      "env": {
        "PROJECT_ROOT": "/path/to/your/project"
      }
    }
  }
}

在哪里添加取决于您的客户:

  • 克劳德代码: ~/.claude/settings.json
  • 光标:MCP设置面板
  • VS代码(副本): .vscode/mcp.json
  • 克莱恩:MCP服务器配置

4.使用它

让你的AI助手生成图表、页面或演示文稿:

“创建一个显示OAuth2流的序列图,并将其嵌入README中”
“生成一个HTML页面,用KPI卡总结API体系结构”
“用我们的第一季度指标和架构概述制作幻灯片”

代理调用相应的工具,获取文件路径,并将其嵌入到您的markdown中。

运作原理

AI Agent (any MCP client)
    |
    | MCP Protocol (JSON-RPC over stdio)
    v
MCP Media Forge (Node.js on host)
    |
    |--- Diagrams: docker exec (sandboxed, no network)
    |       |
    |       v
    |   Rendering Container
    |     ├── mmdc       (Mermaid CLI + Chromium)
    |     ├── d2         (D2 diagrams)
    |     ├── dot/neato  (Graphviz)
    |     └── vl2svg     (Vega-Lite via vl-convert)
    |
    |--- HTML/Slides: template engine (no Docker)
    |       |
    |       v
    |   CSS Design System (4 themes, depth tiers, components)
    |
    v
docs/generated/
  mermaid-a1b2c3.svg
  d2-7f8e9a.svg
  html_page-d4e5f6.html
  slides-8b9c0d.html

关键设计决策:

  • 文本输入,文件路径输出 --返回相对路径,从不返回base64 blob
  • 内容哈希命名 --相同的输入=相同的文件=免费缓存+git友好
  • 首选SVG --矢量格式,小文件,git中清晰的差异
  • Docker包含 --图表渲染器在沙盒容器中运行 network_mode: none
  • 自包含HTML --页面和幻灯片没有外部依赖(内联CSS/JS)
  • 输入预验证 --在Docker往返之前发现常见错误
  • 结构化错误 --错误响应包括 error_type, error_message,以及 suggestion 启用LLM自校正

工具参考

get_tool_guide

在渲染之前获取任何工具的使用指南。返回示例、要避免的反模式、复杂性限制和提示。

{ "tool_name": "mermaid" }

可用指南: mermaid, d2, graphviz, vegalite, html_page, slides,或 all 总结一下。

render_mermaid

{
  "code": "flowchart TD\n    A[Start] --> B{Decision}\n    B -->|Yes| C[Done]",
  "format": "svg",
  "theme": "default"
}
参数类型默认值说明
codestring必填美人鱼图代码(必须以图类型开头)
formatsvgpngsvg输出格式
themedefaultdarkforestneutraldefault美人鱼主题

预验证捕获: 缺少图表类型、分号、标签中的HTML、>25个节点。

render_d2

{
  "code": "client -> server -> database",
  "format": "svg",
  "layout": "dagre"
}
参数类型默认值说明
codestring必填D2图表代码
formatsvgpngsvg输出格式
themenumber--主题ID(0=默认,1=中性灰色,3=终端)
layoutdagreelktaladagre布局引擎

预验证捕获: Mermaid/D2语法混乱,大括号不平衡,嵌套深度>3。

render_graphviz

{
  "dot_source": "digraph G { A -> B -> C }",
  "engine": "dot",
  "format": "svg"
}
参数类型默认值说明
dot_sourcestring必填Graphviz DOT源代码
enginedotneatofdpsfdptwopicircodot布局引擎
formatsvgpngsvg输出格式

预验证捕获: 缺少图形包装器, -> 在无向图中,不平衡的大括号。

渲染图

{
  "spec_json": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{\"values\":[{\"x\":1,\"y\":10}]},\"mark\":\"bar\",\"encoding\":{\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}}}",
  "format": "svg"
}
参数类型默认值说明
spec_jsonstring必需Vega Lite JSON规范
formatsvgpngsvg输出格式
scalenumber1PNG输出的比例因子

预验证捕获: JSON无效,缺失 $schema/data/mark,>500个内联数据行。

render_html_page

生成一个自包含的主题HTML页面。不需要Docker。

{
  "title": "System Overview",
  "body_html": "

Metrics

...

",
  "theme": "swiss",
  "description": "Q1 architecture overview",
  "nav_sections": ["Metrics", "Architecture", "Roadmap"]
}
参数类型默认值说明
titlestring必填页面标题
body_htmlstring必填HTML正文内容(仅限内部内容,无 `//`)
themeswissmidnightwarmterminalswiss视觉主题
descriptionstring--页面描述(元标记+页眉)
nav_sectionsstring\[\]--浮动IntersectionObserver导航的部分名称

设计系统CSS类:

类别目的
mf-hero主要高亮部分(大阴影)
mf-elevated次要高光(中等阴影)
mf-card带边框的内容卡
mf-recessed弱化内容
mf-grid mf-grid-2响应式双柱网格
mf-grid mf-grid-3响应式3柱网格
mf-split两列相等
mf-kpi + mf-kpi-value + mf-kpi-label关键指标显示
mf-badge-success/warning/error/info身份徽章

主题:

主题风格最适合
swiss白色、几何、蓝色调技术文档
midnight深海军蓝、衬线、金色调演示文稿
warm奶油纸、粗体、赤陶报道
terminal深色、单色、青色调开发者内容

render_slides

生成一个带有键盘/触摸导航的独立HTML幻灯片。不需要Docker。

{
  "title": "Q1 Review",
  "slides": "[{\"title\":\"Q1 Review\",\"content\":\"Engineering update\",\"type\":\"title\"},{\"title\":\"Metrics\",\"content\":\"

99.9% uptime

\",\"type\":\"content\"}]",
  "theme": "midnight",
  "author": "Engineering Team"
}
参数类型默认值说明
titlestring必填演示文稿标题
slidesstring必填幻灯片对象的JSON数组
themeswissmidnightwarmterminalswiss视觉主题
authorstring--作者(显示在标题幻灯片上)

幻灯片类型:

类型布局最适合
title居中的大文本+字幕打开/关闭幻灯片
section居中的标题+描述主题分隔符
content标题+正文(项目符号、文本)大部分内容
split标题+两列前后对比
code标题+代码块代码演练
quote大宗商品报价+归因推荐信、关键报价
kpi标题+自动网格指标仪表板、统计数据
image标题+居中图像截图、图表

导航: 箭头键、空格键、向上翻页/向下翻页、主页/结束。触摸:向左/向右滑动。单击点以跳跃。

list_资产

{ "directory": "" }

返回所有生成文件的JSON数组,包括名称、路径、大小和修改时间。

错误处理

所有工具都返回有助于LLM自我纠正的结构化错误:

{
  "status": "error",
  "error_type": "syntax_error",
  "error_message": "First line must declare diagram type. Got: \"A --> B\"",
  "suggestion": "Start with: flowchart TD, sequenceDiagram, erDiagram, ... See https://mermaid.js.org/syntax/"
}

错误类型: syntax_error, rendering_error, dependency_missing.

预验证 在进入渲染器之前捕获常见的LLM错误:

  • Mermaid:缺少图表类型、分号、HTML标签、遗留问题 graph 语法
  • D2:Mermaid语法混乱(-->, subgraph),不平衡的牙套
  • Graphviz:缺失 digraph/graph 包装, -> 在无向图中
  • Vega Lite:JSON无效,缺少必填字段,内联数据过大

环境变量

变量默认值描述
PROJECT_ROOTcwd()输出路径解析的项目根
OUTPUT_DIRdocs/generated相对于PROJECT_ROOT的输出目录
MEDIA_FORGE_CONTAINERmedia-forge-rendererDocker容器名称

发展

npm install
npm run build          # Build with tsup
npm run dev            # Watch mode
npm test               # Run all tests (95 total)
npm run test:unit      # Unit tests only (no Docker needed)
npm run test:component # Integration tests (Docker tools need container)
npm run lint           # Type-check with tsc

运行集成测试

cd docker && docker compose up -d   # Start renderer (diagram tools only)
cd .. && npm run test:component     # All integration tests
HTML页面和幻灯片集成测试在没有Docker的情况下运行。

例子

示例/ 对于示例输入文件:

文件工具描述
mermaid/flowchart.mmdrender_mermaid决策流程图
mermaid/sequence.mmdrender_mermaid客户端-服务器序列
d2/architecture.d2render_d2带有容器的后端架构
graphviz/dependencies.dotrender_graphviznpm依赖关系图
vegalite/bar-chart.jsonrender_chart工具性能比较

示例/README.md MCP工具调用示例和预期响应。

许可证

麻省理工学院

目录标签

目录标签

图表生成TypeScriptClaude本地部署HTML生成幻灯片生成AI工具集成MCP协议

支持客户端

ClaudeCursorClineVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

mcp-media-forge

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP