mcpField
D
Deckforge

Deckforge

本地服务
landing-two-beta-63.vercel.app开发工具79 周前更新

关于 Deckforge

DeckForge 可根据结构化幻灯片规范或自然语言提示生成演示文稿,面向个人和 AI Agent。它支持输出 PPTX 和 Google Slides,并提供财务专用布局与自动质量检查。

主要功能

  1. 01根据提示词或结构化 IR 生成幻灯片
  2. 02输出为 PPTX 或 Google Slides
  3. 03提供 32 种幻灯片类型和 24 种图表
  4. 04包含财务类幻灯片布局
  5. 05检查并自动修正布局质量
  6. 06估算渲染成本

适用场景

  1. 01根据提示词制作高管演示文稿
  2. 02将财务数据转为主题幻灯片
  3. 03渲染提供的幻灯片规范
  4. 04交付前检查演示文稿质量

MCP 相关

DeckForge 内置 MCP 服务,提供六种工具,用于渲染和生成演示文稿、查询主题与幻灯片类型、估算成本及查看定价。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

DeckForge

面向人类和 AI Agent 的 API 优先演示文稿生成

持续集成 Python 3.12 MIT 许可证 npm @lukastan/deckforge API 在线 32 种幻灯片类型 24 种图表类型 15 种主题 MCP 服务


只需一次 API 调用,即可生成适合高管使用的幻灯片。发送 JSON 中间表示(IR)或自然语言提示词,即可获得 .pptx 文件或 Google Slides 演示文稿,并具备专业布局、一致的品牌风格和经过验证的质量。


🚀 正在生产环境中使用 DeckForge,或想要更高的限额、优先支持或特定的幻灯片/图表功能? 告诉我您的使用场景 → — 我会阅读每一条消息。


解决的问题

  • 您的 Agent 需要将结构化的幻灯片规范转换为真正的 PowerPoint,而无需安装无头版 Office 或手写 python-pptx 代码。 将演示文稿 IR(幻灯片、元素、主题)发送给 render,即可获得带主题的 .pptx(或 Google Slides)演示文稿,以及质量评分和布局/QA 问题数量。
  • 您的 Agent 需要根据一句提示词生成演示文稿,而无需自行设计叙事结构。 generate 运行一个包含 4 个阶段的内容流水线(意图 → 大纲 → 扩展 → 优化),用于选择幻灯片类型并编写内容,然后返回结构化 IR,供您随后传给 render。
  • 您需要带有金融特色的幻灯片,而无需每次都重新构建 DCF、可比公司表、瀑布图或回报布局。 9 种金融幻灯片类型和面向金融的图表类型(瀑布图、龙卷风图、足球场图、敏感性分析表)都是一等 IR,因此模型输出的数字可以转化为可审计、带主题的幻灯片。
  • 您的 Agent 必须在运行时选择有效的 slide_type、theme 和图表值,而不是靠猜测。 themes(15 种)和 slide_types(32 种:23 种通用类型 + 9 种金融类型,包含必需/可选元素)是发现工具,可返回准确的标识符和元素要求,帮助构建正确的 IR。
  • 您需要在支付渲染费用前获得确定的成本估算,而无需试探性调用。 cost_estimate 根据 ceil(slides/10) 加上每张金融幻灯片和每个图表的额外费用计算点数,并返回费用明细和美元等值金额,让自主 Agent 能在执行前做好预算。
  • 您希望演示文稿风格一致并经过机器检查,而无需人工进行设计审核。 每次渲染都会运行带有自动修复功能的 QA 流程,检查对比度、溢出和对齐情况,并向调用方返回 quality_score 和 qa_issues 数量。

功能

  • 32 种幻灯片类型 -- 标题、议程、项目符号、对比、时间线、流程图、组织结构图、数据亮点、表格、图表、矩阵、漏斗、地图等
  • 9 种金融专用幻灯片 -- DCF 摘要、可比公司表、瀑布图、交易概览、回报分析、资本结构、市场格局、风险矩阵、投资论点
  • 24 种图表类型 -- 柱状图、折线图、面积图、饼图、环形图、散点图、气泡图、组合图、瀑布图、漏斗图、树状图、雷达图、龙卷风图、足球场图、敏感性表、热力图、桑基图、甘特图、旭日图等
  • 15 种内置主题 -- corporate-blue、executive-dark、finance-pro、modern-gradient、minimal-light、tech-neon,以及另外 9 种(另支持自定义品牌套件)
  • 原生 PPTX 输出 -- 使用 python-pptx 渲染,可逐元素控制、添加切换效果并嵌入图表
  • Google Slides 输出 -- 通过 Google Slides API 直接导出(包含 OAuth 流程)
  • AI 内容生成 -- 通过 Claude、OpenAI、Gemini 或 Ollama 将自然语言转为幻灯片(四阶段流水线:意图、提纲、扩展、润色)
  • 五轮 QA 流水线 -- 自动质量检查,配备自动修复引擎,可处理对比度、溢出、对齐等问题
  • 基于约束的布局 -- kiwisolver 约束求解器、12 列网格、自适应溢出处理(缩小字体、重新排版、拆分)
  • MCP 服务 -- 提供 6 种工具,供 AI Agent 集成(render、generate、themes、slide_types、cost_estimate、pricing)
  • x402 支付中间件 -- 为可自托管部署提供可选的按调用 USDC 支持(Base L2);默认禁用
  • 计费基础设施 -- 为可自托管部署提供 Stripe 订阅和积分系统支持(目前尚未提供付费托管方案)
  • TypeScript SDK -- @lukastan/deckforge,采用流畅构建器模式,提供完整类型安全和 SSE 流式传输

快速开始

不到 5 分钟,即可从零开始生成并渲染第一份幻灯片。

前提条件
步骤
# 1. Clone the repo
git clone https://github.com/Whatsonyourmind/deckforge && cd deckforge

# 2. Copy environment config (works out of the box for local dev)
cp .env.example .env

# 3. Start all services (API, workers, PostgreSQL, Redis, MinIO)
docker compose up -d

# 4. Initialize the database (runs migrations, seeds test user + API key)
bash scripts/bootstrap-db.sh

# 5. Verify the API is running
curl http://localhost:8000/v1/health
# => {"status":"healthy"}

引导脚本会输出一个测试 API 密钥(dk_test_...)。请保存该密钥,以便用于以下示例。

API 示例

从 IR 渲染幻灯片
curl -X POST http://localhost:8000/v1/render \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q4 Board Update",
    "theme": "corporate-blue",
    "slides": [
      {
        "slide_type": "title_slide",
        "elements": [
          {"type": "title", "content": "Q4 2026 Board Update"},
          {"type": "subtitle", "content": "Acme Corp -- Confidential"}
        ]
      },
      {
        "slide_type": "stats_callout",
        "elements": [
          {"type": "title", "content": "Key Metrics"},
          {"type": "metric", "content": "$4.2M", "label": "ARR"},
          {"type": "metric", "content": "142%", "label": "YoY Growth"},
          {"type": "metric", "content": "94%", "label": "Retention"}
        ]
      }
    ]
  }' \
  --output board-update.pptx
从自然语言生成幻灯片
curl -X POST http://localhost:8000/v1/generate \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Create a 10-slide pitch deck for a B2B SaaS startup in the cybersecurity space, Series A, $2M ARR",
    "theme": "executive-dark",
    "output_format": "pptx"
  }' \
  --output pitch-deck.pptx

注意: /v1/generate 端点至少需要在 .env 中配置一个 LLM API 密钥(Anthropic、OpenAI、Gemini 或 Ollama)。

查看可用主题和幻灯片类型
# List all 15 themes
curl http://localhost:8000/v1/themes

# List all 32 slide types with example IR
curl http://localhost:8000/v1/slide-types

# Estimate credit cost before rendering
curl -X POST http://localhost:8000/v1/estimate \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"slides": [{"slide_type": "title_slide"}, {"slide_type": "chart_slide"}]}'

TypeScript SDK

从 npm 安装:

npm install @lukastan/deckforge

采用流畅构建器,提供完整类型安全:

import { DeckForge, Presentation, Slides } from "@lukastan/deckforge";

const client = new DeckForge({ apiKey: "dk_test_YOUR_KEY_HERE" });

const deck = Presentation.create("Q4 Board Update", "corporate-blue")
  .addSlide(
    Slides.titleSlide({
      title: "Q4 2026 Board Update",
      subtitle: "Acme Corp -- Confidential",
    })
  )
  .addSlide(
    Slides.statsCallout({
      title: "Key Metrics",
      metrics: [
        { value: "$4.2M", label: "ARR" },
        { value: "142%", label: "YoY Growth" },
        { value: "94%", label: "Retention" },
      ],
    })
  );

const pptx = await client.render(deck);
// => Buffer containing .pptx file

通过提示词生成幻灯片并使用 SSE 流式传输:

const stream = client.generate({
  prompt: "Create a PE deal memo for a $500M LBO of a healthcare platform",
  theme: "finance-pro",
});

for await (const event of stream) {
  console.log(`${event.stage}: ${event.message}`);
}
// intent: Analyzing prompt for presentation structure...
// outline: Creating 12-slide deal memo outline...
// expand: Generating slide content...
// refine: Running QA pipeline (5 passes)...
// complete: Deck ready for download

架构

                        +------------------+
                        |    Clients       |
                        |  (curl/SDK/MCP)  |
                        +--------+---------+
                                 |
                        +--------v---------+
                        |  FastAPI (uvicorn)|
                        |  /v1/* routes     |
                        |  Auth + Rate Limit|
                        |  Credit Billing   |
                        +--+-----+------+--+
                           |     |      |
               +-----------+     |      +----------+
               |                 |                  |
      +--------v------+  +------v--------+  +------v--------+
      | Content Worker |  | Render Worker |  |   Sync Path   |
      | (ARQ + Redis)  |  | (ARQ + Redis) |  | (< 10 slides) |
      | NL -> IR       |  | IR -> PPTX    |  | Direct return  |
      +--------+------+  +------+--------+  +------+--------+
               |                 |                  |
               v                 v                  v
      +--------+------+  +------+---------+  +-----+--------+
      | LLM Adapters  |  | PPTX Renderer  |  | Google Slides|
      | Claude/GPT/   |  | Layout Engine  |  | Renderer     |
      | Gemini/Ollama  |  | Theme Resolver |  | (OAuth)      |
      +---------------+  | Chart Renderer |  +--------------+
                          | QA Pipeline    |
                          +------+---------+
                                 |
                          +------v---------+
                          |    Storage     |
                          | MinIO (dev)    |
                          | R2/S3 (prod)   |
                          +----------------+

      +----------------+  +----------------+
      |   PostgreSQL   |  |     Redis      |
      |   Users, Keys  |  |  Queue, Cache  |
      |   Jobs, Decks  |  |  Rate Limits   |
      |   Billing      |  |  SSE Pub/Sub   |
      +----------------+  +----------------+

API 路由

所有路由均挂载在 /v1 前缀下。交互式文档请访问 http://localhost:8000/docs。

端点方法身份验证说明
/v1/healthGET否健康检查
/v1/renderPOSTAPI 密钥将 IR 渲染为 PPTX/Google Slides
/v1/generatePOSTAPI 密钥根据自然语言生成幻灯片
/v1/previewPOSTAPI 密钥生成 PNG 缩略图
/v1/estimatePOSTAPI 密钥估算积分费用
/v1/jobs/{id}GETAPI 密钥查看异步任务状态
/v1/themesGET否列出可用主题
/v1/slide-typesGET否列出幻灯片类型及示例
/v1/decksGET/POST/DELETEAPI 密钥幻灯片的 CRUD 操作
/v1/batchPOSTAPI 密钥批量渲染多份幻灯片
/v1/webhooksGET/POST/DELETEAPI 密钥管理 webhook 订阅
/v1/billing/*VariousAPI 密钥Stripe 订阅管理
/v1/pricingGET否当前定价和套餐信息
/v1/onboard/signupPOST否创建账户和 API 密钥
/v1/analytics/*GET管理员使用情况分析和指标
/v1/auth/google/*GETAPI 密钥用于 Slides 的 Google OAuth 流程

环境变量

所有变量均以 DECKFORGE_ 为前缀。完整参考(含注释和示例值)请参阅 .env.example。

变量默认值描述
DECKFORGE_DATABASE_URLpostgresql+psycopg://...localhostPostgreSQL 连接字符串
DECKFORGE_REDIS_URLredis://localhost:6379/0Redis 连接(队列、缓存、发布/订阅)
DECKFORGE_S3_ENDPOINT_URLhttp://localhost:9000兼容 S3 的存储端点
DECKFORGE_S3_ACCESS_KEYminioadminS3 访问密钥(MinIO 开发环境默认值)
DECKFORGE_S3_SECRET_KEYminioadminS3 秘密密钥
DECKFORGE_S3_BUCKETdeckforgeS3 存储桶名称
DECKFORGE_API_HOST0.0.0.0API 绑定地址
DECKFORGE_API_PORT8000API 端口
DECKFORGE_DEBUGtrue调试模式(生产环境中请禁用)
DECKFORGE_ENVIRONMENTdevelopmentdevelopment / staging / production
DECKFORGE_LLM_DEFAULT_PROVIDERclaude内容生成的默认 LLM
DECKFORGE_LLM_FALLBACK_CHAINclaude,openai,geminiLLM 回退顺序
DECKFORGE_ANTHROPIC_API_KEY--Claude 的 Anthropic API 密钥
DECKFORGE_OPENAI_API_KEY--OpenAI API 密钥
DECKFORGE_GEMINI_API_KEY--Google Gemini API 密钥
DECKFORGE_OLLAMA_BASE_URLhttp://localhost:11434Ollama 本地服务 URL
DECKFORGE_STRIPE_SECRET_KEY--Stripe 秘密密钥
DECKFORGE_STRIPE_WEBHOOK_SECRET--Stripe webhook 签名密钥
DECKFORGE_STRIPE_STARTER_PRICE_ID--Starter 套餐的 Stripe 价格 ID
DECKFORGE_STRIPE_PRO_PRICE_ID--Pro 套餐的 Stripe 价格 ID
DECKFORGE_GOOGLE_CLIENT_ID--Google OAuth 客户端 ID(用于 Slides)
DECKFORGE_GOOGLE_CLIENT_SECRET--Google OAuth 客户端密钥
DECKFORGE_GOOGLE_REDIRECT_URIhttp://localhost:8000/v1/auth/google/callbackOAuth 重定向 URI
DECKFORGE_UNKEY_ROOT_KEY--Unkey 根密钥(生产环境身份验证)
DECKFORGE_UNKEY_API_ID--Unkey API ID
DECKFORGE_X402_ENABLEDfalse启用 x402 USDC 支付
DECKFORGE_X402_WALLET_ADDRESS--Base 上用于接收 USDC 的钱包地址
DECKFORGE_X402_FACILITATOR_URLhttps://x402.org/facilitatorx402 协调器端点
DECKFORGE_X402_NETWORKeip155:8453Base 主网链 ID

部署

Render(推荐)

托管的生产 API 运行在 Render 上,地址为 https://deckforge-api.onrender.com。DeckForge 提供 render.yaml 蓝图:

  1. 在 Render 控制面板中选择 New → Blueprint,并指定此仓库 — Render 会读取 render.yaml(Web 服务 + Worker + 托管的 Postgres + Redis)。
  2. 在服务的 Environment 选项卡中设置生产环境密钥(Stripe / Anthropic / S3),然后启动首次部署。
# Verify
curl https://deckforge-api.onrender.com/v1/health
Fly.io(替代方案)

DeckForge 还提供可用于生产环境的 fly.toml 和多阶段 Dockerfile。

# 1. Install Fly CLI
curl -L https://fly.io/install.sh | sh

# 2. Login and launch
fly auth login
fly launch --name deckforge-api --region iad

# 3. Provision PostgreSQL
fly postgres create --name deckforge-db --region iad
fly postgres attach deckforge-db

# 4. Provision Redis (via Upstash or Fly Redis)
fly redis create --name deckforge-redis
# Copy the REDIS_URL from output

# 5. Set production secrets
fly secrets set \
  DECKFORGE_ENVIRONMENT=production \
  DECKFORGE_DEBUG=false \
  DECKFORGE_DATABASE_URL="postgres://..." \
  DECKFORGE_REDIS_URL="redis://..." \
  DECKFORGE_S3_ENDPOINT_URL="https://..." \
  DECKFORGE_S3_ACCESS_KEY="..." \
  DECKFORGE_S3_SECRET_KEY="..." \
  DECKFORGE_S3_BUCKET="deckforge" \
  DECKFORGE_STRIPE_SECRET_KEY="sk_live_..." \
  DECKFORGE_STRIPE_WEBHOOK_SECRET="whsec_..." \
  DECKFORGE_ANTHROPIC_API_KEY="sk-ant-..."

# 6. Deploy
fly deploy

# 7. Run database migrations
fly ssh console -C "alembic upgrade head"

# 8. Verify
curl https://<your-app>.fly.dev/v1/health

Fly.io 配置要点:

  • 每个 VM 配备 2 个共享 CPU、1 GB RAM
  • 自动停止/启动以节省成本(至少运行 1 台机器)
  • 强制使用 HTTPS,并设置并发限制(软限制 200 / 硬限制 250)
  • 多进程:api(uvicorn)+ worker(ARQ)
Docker Compose(本地开发)
# Start all 6 services
docker compose up -d

# Services:
#   api             - FastAPI + uvicorn (port 8000)
#   content-worker  - ARQ worker for NL-to-IR generation
#   render-worker   - ARQ worker for IR-to-PPTX rendering
#   postgres        - PostgreSQL 16 (port 5432)
#   redis           - Redis 7 (port 6379)
#   minio           - MinIO S3-compatible storage (port 9000, console 9001)

# Check service health
docker compose ps

# View API logs
docker compose logs -f api

# Tear down (preserves data volumes)
docker compose down

# Full reset (removes data)
docker compose down -v
S3 存储选项
环境提供商配置
本地开发MinIO(通过 Docker Compose).env.example 默认值
生产环境Cloudflare R2设置 S3_ENDPOINT_URL、S3_ACCESS_KEY、S3_SECRET_KEY
生产环境AWS S3将 S3_ENDPOINT_URL 设置为 AWS 端点
Fly.ioFly Tigrisfly storage create,自动配置

定价

目前尚未提供定价——今天没有可供购买的付费方案。 想要托管版或商业版、更高的限额或优先支持?加入早期访问 →

此代码库中的计费代码(Stripe 订阅、积分系统、x402 USDC 中间件)是为可自托管部署准备的基础设施,默认处于禁用状态。

积分消耗(引擎机制)

每次 API 调用都会根据复杂程度消耗积分:

  • 简单渲染(少于 5 张幻灯片):1 积分
  • 标准渲染(5-20 张幻灯片):2-3 积分
  • 复杂渲染(图表、财务幻灯片):3-5 积分
  • 内容生成(NL-to-IR):+2 积分(大模型用量)

演示文稿

demos/ 中有 5 份达到生产质量的演示 IR:

演示文稿幻灯片数主题用例
McKinsey Strategy12corporate-blue战略咨询演示文稿
PE Deal Memo10finance-pro私募股权投资委员会
Startup Pitch12modern-gradientA 轮融资
Board Update8executive-dark季度董事会会议
Product Launch10tech-neon产品发布公告

渲染任意演示文稿:

curl -X POST http://localhost:8000/v1/render \
  -H "Authorization: Bearer dk_test_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d @demos/mckinsey-strategy/ir.json \
  --output mckinsey-strategy.pptx

集成

MCP 服务(AI Agent)

DeckForge 包含一个 模型上下文协议 服务,提供 6 个工具:

{
  "mcpServers": {
    "deckforge": {
      "command": "python",
      "args": ["-m", "deckforge.mcp.server"]
    }
  }
}

工具:render、generate、themes、slide_types、cost_estimate、pricing

Agent 框架支持
  • LangChain —— 渲染和生成工具类
  • CrewAI —— 带有 action 参数的统一工具
  • AutoGen —— 使用 Annotated 类型的普通函数工具

集成示例请参阅 demos/。

链接

贡献

  1. Fork 此代码库
  2. 创建功能分支(git checkout -b feature/my-feature)
  3. 运行测试(Python 使用 pytest,TypeScript 使用 cd sdk && npm test)
  4. 提交并推送
  5. 发起 Pull Request

许可证

MIT


DeckForge —— 只需一次 API 调用,即可生成适合高管使用的幻灯片。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。