ReportFlow MCP Server - PDF report generation for Claude and AI agents (public publish mirror of monepla/report-mcp)
Re:port Flow MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Official display name: **Re:port Flow MCP**. Package and implementation identifier: **reportflow-mcp**. Legacy search aliases: **ReportFlow MCP Server** and **ReportFlow**.
Overview
An MCP (Model Context Protocol) server that turns your Re:port Flow templates into PDF reports — invoices, contracts, statements, anything you've designed — straight from Claude or any other MCP-compatible AI agent.
Features
- Generate PDFs from natural-language requests like *"create an invoice for Acme Corp totalling $300"*
- Expose your Re:port Flow designs and their parameter schemas directly to the AI as MCP **Resources**
- Bulk-generate many PDFs and download them as a single ZIP
- Save outputs to whichever workspace folder the user is currently in (Claude Desktop / Claude Code / Cursor / VS Code all supported)
Agent Skill
Agents that should **follow a procedure** (not just read the protocol) use
skills/re-port-flow/SKILL.md. Copy that
directory into Claude Code / Codex .agents/skills or a Cursor project skill
folder. PDF generation always goes to https://mcp.re-port-flow.com/mcp.
The Hugging Face Space MCP (org card)
is gallery-only — add it from the Space **MCP** badge → **Add to MCP tools**,
not as a substitute for the product endpoint.
Setup
Re:port Flow MCP runs in two ways — pick whichever matches your client.
Remote server (claude.ai / web clients) — Streamable HTTP
Add Re:port Flow as a **custom connector** pointing at the hosted endpoint:
In Claude (claude.ai) go to **Settings → Connectors → Add custom connector**
and paste the URL above. Authentication is handled in-app via OAuth (see
Authentication) — nothing to install locally.
Local server (Claude Desktop / Claude Code / Cursor) — stdio via npx
Add the following to your config file (.mcp.json, claude_desktop_config.json, ~/.cursor/mcp.json, etc.):
That's the whole setup. No env vars, no API keys, no secrets to manage.
VS Code (MCP-enabled builds)
Same JSON in .vscode/mcp.json.
Requirements
- **Remote**: an MCP client that supports custom HTTP connectors (e.g. claude.ai). No local install.
- **Local (stdio)**: Node.js 22+ (auto-fetched by npx) and a browser available during the first login.
- A Re:port Flow account (either way).
Supported protocol revisions
Both transports (stdio / Streamable HTTP) serve two MCP protocol generations from a single endpoint:
- **2026-07-28** (current) — stateless per-request protocol. Modern clients discover it via server/discover; no session header, requests carry their protocol version in _meta.
- **2025-era revisions** (2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07) — classic initialize handshake, kept for backwards compatibility with existing clients (Claude Desktop, claude.ai custom connectors, Cursor, ChatGPT, n8n, …).
Version selection is automatic on both transports: modern clients probe with server/discover, legacy clients keep sending initialize — no configuration is required on either side, and existing connections keep working unchanged.
Either handshake also returns MCP instructions: a short brief telling the connected AI what Re:port Flow does and how to reach a first PDF (gallery search → copy → parameters → generate), so it can offer to create a document right after you connect instead of waiting to be asked. How closely a client follows those instructions is up to that client.
A2A (Agent2Agent)
The remote server also speaks A2A **v1.0** over the JSON-RPC binding:
- Agent Card: https://mcp.re-port-flow.com/.well-known/agent-card.json
- Endpoint: POST https://mcp.re-port-flow.com/a2a (SendMessage)
Each A2A skill is one of the MCP tools above (the skill id is the tool name). Send a message with a data part {"skill": " ", "arguments": {...}}; the arguments follow that tool's input schema, and the call runs through the same authorization and workspace permissions as MCP. Authorize with the same OAuth flow (the MCP access token works as-is). Streaming, push notifications and task retrieval are not supported: every SendMessage returns a finished task.