PaperFrame PPT Agent

PaperFrame PPT Agent

MCP server for generating and editing PowerPoint-native framework diagrams from paper descriptions. Supports spec-based generation, incremental edits, snapshot rollback, and structure validation while preserving manual modifications.

Category
访问服务器

README

PaperFrame PPT Agent

面向科研人员的 PowerPoint 原生框架图生成与编辑 Agent。输入论文/方法描述,输出可在 PowerPoint 中继续手工编辑的原生框架图(模块、文字、箭头、分组均为原生对象),支持自然语言增量修改、人工修改保护、快照回滚和真实渲染验收。

使用场景

情景 推荐做法
论文方法章节刚写完,想要一张能放进论文、且每个模块还能继续编辑的架构图 1) 把方法描述整理成 framework_spec.json(可参考 fixtures/transformer_pipeline.json,或让 AI 先帮你规划好结构)<br>2) python scripts\generate_framework.py --spec <spec.json> --task myfig --out-dir projects\myfig<br>3) 打开 projects\myfig\myfig.pptx,在 PowerPoint 里直接拖动、改字、改色
手头有手绘草图、PDF 截图或别的工具导出的静态图,想在 PowerPoint 里逐块编辑,而不是整张当图片 1) 先把图做成一张 sketch.pptx(哪怕是很糙的原生对象)<br>2) 反向导入成 spec: python -m paperframe.cli import --pptx sketch.pptx --out sketch.spec.json<br>3) 基于 spec 重新生成: python scripts\generate_framework.py --spec sketch.spec.json --task sketch --out-dir projects\sketch<br>4) 打开结果逐模块调整
图基本满意,只有一个模块的名字写错了或想换个颜色,只想改这一处 直接在 PowerPoint 里选中该模块改文字、改填充色即可——生成的就是原生对象,秒级完成
想调整两个模块的位置或顺序,希望箭头跟着模块走,不断开、不穿乱 直接在 PowerPoint 里拖动模块,粘附到形状连接点的连接线会自动重路由
在 PowerPoint 里手工挪过模块、改过标题,还想让 AI 继续加一个 Loss 模块,最怕手工调整被冲掉 1) 先感知当前状态: python scripts\inspect_framework.py --pptx <current.pptx> --spec <myfig.spec.json>,确认哪些是人工改动<br>2) 写只含「加 Loss 模块」的增量 edit_plan<br>3) edit 执行后再次 inspect 复查,未受指令影响的组件(含你的手工调整)保持原样
连续改了好几版,最新一版不满意,想退回某个修改前的状态 1) 列出快照: python -m paperframe.cli snapshots --task myfig-edit<br>2) 恢复: python scripts\edit_framework.py --rollback <snapshot_id> --task myfig-edit --out-dir projects\myfig-restored

小修小改(改字、改色、拖动)在 PowerPoint 里直接做最快;从论文出图、转静态图为原生对象、多步连续编辑则用上面的命令或 MCP(见下文「交付给消费 Agent」)让 AI 连续完成。每次写操作前系统会自动创建快照(snapshots/),所以总能回到任意修改前版本。

快速开始

环境搭建

独立 conda 环境,安装步骤见 SETUP.md。

手动使用

# 激活环境
conda activate paperframe
# 烟雾测试(COM 最小闭环)
python scripts\smoke_test.py
# 首稿生成: 示例 Transformer 架构图
python scripts\generate_framework.py --spec fixtures\transformer_pipeline.json --task transformer --out-dir projects\transformer

其中

  • --spec: framework_spec JSON 文件路径(结构规格,见 fixtures/ 示例)
  • --task: 任务 id,作为输出文件名前缀(默认取 spec.project_id)
  • --out-dir: 输出目录(生成 <task>.pptx / <task>_preview.png / <task>.spec.json / <task>.run.json)
# 增量编辑: 移动/改字(需先生成 edit_plan,见 fixtures\edit_move_decoder.json)
python scripts\edit_framework.py --pptx projects\transformer\transformer.pptx --plan fixtures\edit_move_decoder.json `
    --task transformer-edit --out-dir projects\transformer-edit --spec projects\transformer\transformer.spec.json

其中

  • --pptx: 目标 .pptx 绝对路径
  • --plan: edit_plan JSON 文件路径(操作计划,见 fixtures/ 示例)
  • --task: 任务 id,用于快照与输出命名
  • --out-dir: 新版本输出目录(保存为 vNNN,不覆盖原文件)
  • --spec: 生成时的 spec 文件(可选,供结构 QA 对比)
  • --confirm: 高风险操作(删除节点/整页重建/覆盖原文件)需加上此参数确认
# 回滚
python scripts\edit_framework.py --rollback <snapshot_id> --task transformer-edit --out-dir projects\transformer-edit\restored

其中

  • --rollback: snapshot_id(可用 --task 对应的快照列表查看,见下)
  • --task: 快照所属任务
  • --out-dir: 恢复目标目录

查看任务快照:

python -m paperframe.cli snapshots --task transformer-edit

无 PowerPoint 的环境用 --no-export 跳过预览导出与视觉 QA。

Agent自动化(MCP + Skill)

本项目可交付给agent 直接使用: LLM 做语义规划(产出 framework_spec.json / edit_plan.json),MCP server 做确定性执行

conda activate paperframe
python -m pip install -e .           # 安装包 + paperframe / paperframe-mcp 命令
python -m paperframe.mcp_server      # 启动 MCP server(stdio,默认)
# 远端: python -m paperframe.mcp_server --transport streamable-http --host 127.0.0.1 --port 8765
  • 工具(9 个):
    • generate: 从 spec 生成原生 PPTX + QA
    • edit: 增量编辑(快照→原子操作→新版本 vNNN)
    • inspect: 感知人工改动 / 同步当前状态回 spec
    • validate: 结构 QA(校验 PPTX 与 spec 一致性)
    • import_pptx: 反向导入任意 PPTX 为 spec
    • validate_spec: 校验 framework_spec JSON(语义规划后自检)
    • validate_plan: 校验 edit_plan JSON(编辑计划自检)
    • rollback: 从快照恢复文件
    • list_snapshots: 列出任务的全部快照
  • 资源(8 个):
    • paperframe://schema/framework_spec: framework_spec JSON Schema
    • paperframe://schema/edit_plan: edit_plan JSON Schema
    • paperframe://design_tokens: 默认样式令牌(字体/配色/线型)
    • paperframe://prompt/planner: 语义规划 prompt(论文→spec)
    • paperframe://prompt/edit_plan: 增量编辑 prompt(自然语言→edit_plan)
    • paperframe://skill: PaperFrame 使用总览(触发/路由/门槛/交付物)
    • paperframe://templates/components: framework_spec 组件模板库(节点/边/分组写法)
    • paperframe://templates/edit_ops: edit_plan 操作模板库(22 个 op 写法)
  • 消费 agent 的触发/路由/门槛说明见 skill/paperframe-ppt/SKILL.md

约定

  • 对象命名: node_<semantic_id> / edge_<from>_<to> / group_<semantic_id> / label_<semantic_id>
  • 所有写操作前创建快照(snapshots/),失败可回滚
  • 交付前必须真实 PowerPoint 渲染 + 视觉 QA;阻断性问题不得交付
  • 高风险操作(整页重建、删除节点、覆盖原文件等)必须向用户确认
  • 增量编辑默认保留人工修改;连接线优先粘附到形状连接点,移动节点后跟随重路由

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选