🚀 Re:port Flow MCP

一個 MCP(Model Context Protocol)服務器,可將你在 Re:port Flow 中設計的模板 —— 發票、合同、對賬單,以及任何你親手設計的版式 —— 直接轉換為 PDF 報告,並可從 Claude 或任何兼容 MCP 的 AI 代理中調用。
📛 官方顯示名稱:Re:port Flow MCP
📦 包與實現標識符:reportflow-mcp
🔍 舊版搜索別名:ReportFlow MCP Server、ReportFlow
✨ 主要特性
- 📝 自然語言生成 PDF —— 例如對 AI 說:"為 Acme Corp 創建一張金額為 $300 的發票"
- 🔌 設計即資源 —— 將你的 Re:port Flow 設計及其參數 schema 作為 MCP Resources 直接暴露給 AI
- 📦 批量生成 —— 一次性批量生成多份 PDF,並打包為單個 ZIP 下載
- 💾 自動保存 —— 將輸出保存到用戶當前所在的工作區文件夾(支持 Claude Desktop / Claude Code / Cursor / VS Code)
📦 安裝指南
Re:port Flow MCP 提供兩種運行方式,可根據你的客戶端選擇其一。
☁️ 遠程服務器(claude.ai / Web 客戶端)—— Streamable HTTP
將 Re:port Flow 作為**自定義連接器(custom connector)**添加到託管端點:
https://mcp.re-port-flow.com/mcp
在 Claude(claude.ai)中進入 Settings → Connectors → Add custom connector,粘貼上述 URL 即可。身份驗證通過應用內的 OAuth 完成(詳見身份驗證)—— 本地無需安裝任何內容。
💻 本地服務器(Claude Desktop / Claude Code / Cursor)—— 通過 npx 使用 stdio
在配置文件中添加以下內容(.mcp.json、claude_desktop_config.json、~/.cursor/mcp.json 等):
{
"mcpServers": {
"reportflow": {
"command": "npx",
"args": ["-y", "reportflow-mcp"]
}
}
}
配置到此結束 —— 沒有環境變量、沒有 API key、沒有需要管理的密鑰。
VS Code(支持 MCP 的版本)
在 .vscode/mcp.json 中寫入相同的 JSON 即可。
📋 環境要求
| 部署方式 |
要求 |
| ☁️ 遠程 |
支持自定義 HTTP 連接器的 MCP 客戶端(如 claude.ai);無需本地安裝 |
| 💻 本地(stdio) |
Node.js 22+(由 npx 自動獲取),且首次登錄時需要可用瀏覽器 |
| 👤 賬號 |
生效的 Re:port Flow 賬號(兩種方式均需) |
🔧 支持的協議版本
兩種傳輸方式(stdio / Streamable HTTP)均可從單一端點同時服務兩代 MCP 協議:
2026-07-28(當前版本)—— 無狀態的按請求協議。現代客戶端通過 server/discover 發現它;無會話頭(session header),請求在 _meta 中攜帶各自的協議版本。
- 2025 年代的修訂版本(
2025-11-25、2025-06-18、2025-03-26、2024-11-05、2024-10-07)—— 經典的 initialize 握手流程,為兼容現有客戶端而保留(Claude Desktop、claude.ai 自定義連接器、Cursor、ChatGPT、n8n 等)。
版本選擇在兩種傳輸方式上均自動完成:現代客戶端通過 server/discover 探測,舊版客戶端繼續發送 initialize —— 雙方均無需任何配置,現有連接可無感持續工作。
🔐 身份驗證
☁️ 遠程(claude.ai)
添加連接器時,Claude 會自動為你執行 OAuth 流程:登錄 → 選擇工作區 → 授權。Token 由客戶端持有,本地無需管理鑰匙串或瀏覽器步驟。
💻 本地(stdio)
重新加載 MCP 客戶端後,向 AI 說:
Authenticate with Re:port Flow
瀏覽器窗口會自動打開。完成 登錄 → 選擇工作區 → 授權 即可。Token 存儲於操作系統鑰匙串(macOS Keychain / Windows Credential Manager / Linux libsecret),並以 chmod-0600 文件作為後備方案,同時會自動刷新。
💻 使用示例
以下每個示例都是可直接粘貼使用的提示語,AI 會自動選用合適的工具。
1️⃣ 生成單份 PDF(列出 → schema → 生成)
Using the invoice template, create a PDF for Acme Corp totalling $330.
AI 會通過 list_templates 列出設計,使用 get_design_parameters 獲取參數 schema,填入具體值,然後調用 generate_pdf_sync。
- 遠程:返回下載鏈接(
fileUrl)。
- 本地:同時保存文件並返回其絕對路徑。
2️⃣ 批量生成多份 PDF
From the statement template, generate one PDF per customer
(Acme $100, Globex $250, Initech $80) and give them to me together.
- 本地(stdio):
generate_pdfs_sync 會在工作區中寫入一個 ZIP 文件。
- 遠程:
generate_pdfs_async 執行批處理,並返回一個請求 ID 及下載鏈接。
3️⃣ 異步生成後下載(本地)
Kick off the contract PDF in the background, then download it once it's ready.
AI 會調用 generate_pdf_async(立即返回 requestId),隨後調用 download_file 保存已完成的 PDF。批量操作的等價流程為 generate_pdfs_async → download_zip。這些下載工具僅在 stdio 模式下可用;在遠程服務器上,同步/異步工具本身已返回 fileUrl。
💡 提示 —— 自然語言參數
在支持 Sampling 的客戶端上,你可以直接說 "draft the params for a $1,000 invoice to A社",AI 會調用 suggest_params 將該簡述轉換為合法的 params 對象,再進行生成。
4️⃣ 從零模板開始(圖庫 → 複製 → 生成)
I don't have any templates yet — create an invoice PDF for Acme Corp.
當 list_templates 為空時,AI 會通過 search_gallery_templates 搜索公共模板圖庫,向你展示候選模板,使用 copy_gallery_template 將你選中的模板複製到工作區,然後繼續正常流程(get_design_parameters → generate_pdf_sync)。複製操作始終落在你在 OAuth 授權頁面選擇的工作區中 —— AI 無法指定其他工作區。
⚡ 斜槓命令
| 命令 |
用途 |
/generate_pdf |
生成單份 PDF 的分步配方 |
/generate_pdfs |
批量生成 PDF 的配方 |
/reportflow_help |
快速功能導覽 |
📁 文件保存位置(本地模式)
輸出位置按以下順序解析:
- 用戶的明確指令(例如 "save to my Desktop")
- 當前打開的工作區根目錄(Claude Code / Cursor / VS Code)
- 操作系統臨時目錄(作為後備方案)
📚 參考文檔
🛠️ 工具(由 AI 調用)
| 工具 |
用途 |
authenticate |
首次 / 重新身份驗證 |
list_templates |
列出可用設計 |
get_design_parameters |
獲取某個設計的參數 schema |
generate_pdf_sync / _async |
生成單份 PDF(同步返回路徑;異步返回請求 ID) |
generate_pdfs_sync / _async |
生成多份 PDF(返回一個 ZIP) |
download_file / download_zip |
下載由異步工具生成的產物 |
suggest_params |
通過 MCP Sampling 將自然語言簡述轉換為 params JSON(需要支持 Sampling 的客戶端) |
search / fetch |
ChatGPT 連接器約定工具(單一字符串參數),封閉世界(openWorldHint: false)—— 僅讀取你自己工作區的內部模板目錄,絕不訪問網絡。search 按名稱解析模板;fetch 按 id 返回模板的參數 schema。它們是 list_templates / get_design_parameters 的輕量包裝,以便 ChatGPT(含 Plus/Pro 無 Developer Mode)能夠發現並檢視模板。 |
search_gallery_templates |
按關鍵詞/分類搜索公共模板圖庫(無需身份驗證)。返回尚未存在於你工作區中的候選模板 —— 在複製之前,其 slug 無法用於 PDF 生成。 |
get_gallery_template |
按 slug 獲取某個公共圖庫模板的完整詳情(無需身份驗證) |
copy_gallery_template |
寫入工具。 將圖庫模板複製到你已授權的工作區(目標工作區由訪問 Token 固定,無法作為參數傳入)。返回可用於 get_design_parameters / generate_pdf_sync 的 designId + version。每次調用都會創建一個新設計 —— 絕不會複用先前的副本。 |
📎 資源(可作為 AI 上下文附加)
| URI |
內容 |
reportflow://designs |
可用設計列表 |
reportflow://designs/{designId}/parameters |
某個設計的參數 schema |
reportflow://errors |
來自 Content Service 的錯誤信息目錄 |
reportflow://server-info |
服務器功能概覽 |
📝 提示詞(斜槓命令配方卡片)
/generate_pdf、/generate_pdfs、/reportflow_help —— 傳入參數後,AI 會依照預製的工作流執行。
🔧 故障排查
| 症狀 |
解決方案 |
錯誤信息包含 re-authentication required |
對 AI 說:"re-authenticate with Re:port Flow" |
npx 無法找到該包 |
先執行 npm cache clean --force,然後重試 |
| Linux 上沒有可用的鑰匙串 |
自動回退到 $XDG_STATE_HOME/reportflow-mcp/ 下的 chmod-0600 文件 |
| SSH / 遠程 shell 下無法打開瀏覽器 |
先在本地機器上完成一次身份驗證;之後緩存的 Token 即可在遠程主機上使用 |
🔒 隱私
Re:port Flow MCP 是一個輕量客戶端:它只將你的請求轉發至你自己的 Re:port Flow 賬號,並返回生成的 PDF。它不會向第三方出售或共享你的數據。身份驗證 Token 存儲在本地(操作系統鑰匙串,或 chmod-0600 文件後備方案),且僅發送給 Re:port Flow 自身的服務 —— 在 OAuth 登錄過程中,以及每次已認證 API 調用(列出模板、生成或下載 PDF)時作為 Bearer 憑據發送。這些 Token 絕不會與任何第三方共享。
關於完整的隱私政策 —— 收集了哪些信息、保留多長時間、如何處理 —— 請參見:lp.re-port-flow.com
🛡️ 安全性
託管端點會校驗 Host 頭(DNS 重綁定防護),並依據 MCP Streamable HTTP 規範的安全要求,以 403 Forbidden 拒絕結構性無效的 Origin 頭。身份驗證僅使用 Bearer Token —— 無 Cookie,且 CORS 永不接受憑據。完整政策及其威脅模型記錄於 docs/security.md(日文)。
💬 支持
需要幫助、發現 bug,或有目錄審核相關疑問?
- 📖 Re:port Flow(隱私與支持):https://lp.re-port-flow.com
- 🐛 GitHub Issues:https://github.com/re-port-flow/reportflow-mcp/issues
📄 許可證
MIT —— 詳見 LICENSE。
🔗 相關鏈接
- 🌐 Re:port Flow:https://re-port-flow.com
- 🔒 隱私與支持:https://lp.re-port-flow.com
- 📦 npm:https://www.npmjs.com/package/reportflow-mcp
- 🐛 Issues:https://github.com/re-port-flow/reportflow-mcp/issues