Re:portFlow
OfficialRe:port Flow MCP
공식 표시 이름: Re:port Flow MCP. 패키지 및 구현 식별자: reportflow-mcp. 레거시 검색 별칭: ReportFlow MCP Server 및 ReportFlow.
개요
MCP(Model Context Protocol) 서버로, Re:port Flow 템플릿을 PDF 보고서로 변환합니다 — 인보이스, 계약서, 명세서, 직접 디자인한 모든 것 — Claude 또는 다른 MCP 호환 AI 에이전트에서 바로 사용할 수 있습니다.
Related MCP server: PDF Tools AI MCP
기능
"Acme Corp에 총 $300 규모의 인보이스 작성" 같은 자연어 요청으로 PDF 생성
Re:port Flow 디자인과 해당 파라미터 스키마를 MCP 리소스로 AI에 직접 노출
여러 PDF를 일괄 생성하고 단일 ZIP으로 다운로드
사용자가 현재 있는 작업공간 폴더에 출력 저장 (Claude Desktop / Claude Code / Cursor / VS Code 모두 지원)
설정
Re:port Flow MCP는 두 가지 방식으로 실행됩니다 — 클라이언트에 맞는 방식을 선택하세요.
원격 서버 (claude.ai / 웹 클라이언트) — Streamable HTTP
호스팅된 엔드포인트를 가리키는 사용자 지정 커넥터로 Re:port Flow를 추가하세요:
https://mcp.re-port-flow.com/mcpClaude(claude.ai)에서 설정 → 커넥터 → 사용자 지정 커넥터 추가로 이동하여 위 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 키, 기밀 정보가 없습니다.
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(현재) — 무상태(stateless) 요청별 프로토콜. 최신 클라이언트는server/discover를 통해 이를 발견합니다. 세션 헤더가 없으며, 요청은_meta에 프로토콜 버전을 담습니다.2025년대 개정판 (
2025-11-25,2025-06-18,2025-03-26,2024-11-05,2024-10-07) — 기존 클라이언트(Claude Desktop, claude.ai 사용자 지정 커넥터, Cursor, ChatGPT, n8n 등)와의 하위 호환성을 위해 유지되는 클래식initialize핸드셰이크.
버전 선택은 두 전송 방식 모두에서 자동으로 이루어집니다. 최신 클라이언트는 server/discover로 프로브하고, 레거시 클라이언트는 계속 initialize를 보냅니다. 양쪽 모두 구성이 필요 없으며, 기존 연결은 변경 없이 계속 작동합니다.
인증
원격 (claude.ai)
커넥터를 추가하면 Claude가 OAuth 흐름을 대신 실행합니다: 로그인 → 작업공간 선택 → 동의. 토큰은 클라이언트가 보관하므로 로컬 키체인이나 브라우저 단계를 관리할 필요가 없습니다.
로컬 (stdio)
MCP 클라이언트를 다시 로드한 후 AI에게 요청하세요:
Re:port Flow에 인증
브라우저 창이 열립니다. 로그인 → 작업공간 선택 → 동의하면 끝입니다. 토큰은 OS 키체인(macOS 키체인 / Windows 자격 증명 관리자 / Linux libsecret)에 저장되며, chmod-0600 파일 대체 방식도 있고 자동으로 새로 고쳐집니다.
사용 예시
아래 각 예시는 그대로 붙여 넣을 수 있는 프롬프트입니다. AI가 적절한 도구를 선택합니다.
1. 단일 PDF 생성 (목록 → 스키마 → 생성)
인보이스 템플릿을 사용하여 Acme Corp에 총 $330인 PDF를 만들어 주세요.
AI는 list_templates로 디자인 목록을 가져오고, get_design_parameters로 파라미터 스키마를 가져온 다음, 값을 채워 generate_pdf_sync를 호출합니다.
원격: 다운로드 URL(
fileUrl)을 반환합니다.로컬: 파일을 저장하고 절대 경로를 반환합니다.
2. PDF 일괄 생성
명세서 템플릿에서 고객별로 PDF 하나씩 생성해 주세요 (Acme $100, Globex $250, Initech $80) 그리고 모두 함께 주세요.
로컬(stdio):
generate_pdfs_sync가 작업공간에 단일 ZIP을 작성합니다.원격:
generate_pdfs_async가 일괄 작업을 실행하고 요청 ID와 다운로드 URL을 반환합니다.
3. 비동기 생성 후 다운로드 (로컬)
계약서 PDF를 백그라운드에서 시작한 다음, 준비되면 다운로드하세요.
AI는 generate_pdf_async를 호출하고(즉시 requestId 반환), 완성된 PDF를 저장하기 위해 download_file을 호출합니다. 일괄 버전은 generate_pdfs_async → download_zip입니다. 이 다운로드 도구는 stdio 전용이며, 원격 서버에서는 동기/비동기 도구가 이미 fileUrl을 반환합니다.
팁 — 자연어 파라미터: Sampling을 지원하는 클라이언트에서 *"A社에 $1,000 인보이스에 대한 파라미터 초안을 작성해 줘"*라고 요청하면, AI가
suggest_params를 호출하여 브리프를 생성 전에 유효한params객체로 변환합니다.
4. 템플릿 없이 시작 (갤러리 → 복사 → 생성)
아직 템플릿이 없습니다 — Acme Corp용 인보이스 PDF를 만들어 주세요.
list_templates가 비어 있으면, AI는 search_gallery_templates로 공개 템플릿 갤러리를 검색하고, 후보를 보여 준 다음, copy_gallery_template으로 선택한 템플릿을 작업공간에 복사하고, 일반 흐름(get_design_parameters → generate_pdf_sync)을 진행합니다. 복사본은 항상 OAuth 동의 화면에서 선택한 작업공간에 저장되며, AI는 다른 작업공간을 대상으로 할 수 없습니다.
슬래시 명령
명령 | 용도 |
| 단일 PDF 생성을 위한 단계별 레시피 |
| 일괄 PDF 생성을 위한 레시피 |
| 간단한 기능 둘러보기 |
파일 저장 위치 (로컬 모드)
출력 위치는 다음 순서로 결정됩니다:
사용자의 명시적 지시(예: "내 데스크톱에 저장")
현재 열려 있는 작업공간 루트(Claude Code / Cursor / VS Code)
폴백으로 OS 임시 디렉터리
참조
도구 (AI가 호출)
도구 | 목적 |
| 최초 인증 / 재인증 |
| 사용 가능한 디자인 목록 표시 |
| 디자인의 매개변수 스키마 가져오기 |
| PDF 하나 생성 (동기식은 경로 반환, 비동기식은 요청 ID 반환) |
| 여러 PDF 생성 (ZIP 반환) |
| 비동기 도구가 생성한 아티팩트 다운로드 |
| 자연어 브리프를 MCP 샘플링을 통해 |
| ChatGPT 커넥터 규칙 도구(단일 문자열 인수), 폐쇄 세계( |
| 키워드/카테고리로 공개 템플릿 갤러리를 검색합니다(인증 불필요). 아직 작업 공간에 없는 후보 템플릿을 반환합니다. 해당 템플릿의 |
|
|
| 쓰기 도구. 갤러리 템플릿을 사용자가 승인한 작업 공간으로 복사합니다(대상 작업 공간은 액세스 토큰으로 고정되며 인수로 전달할 수 없습니다). |
리소스(AI 컨텍스트로 첨부 가능)
URI | 내용 |
| 사용 가능한 디자인 목록 |
| 하나의 디자인에 대한 매개변수 스키마 |
| 콘텐츠 서비스의 오류 메시지 카탈로그 |
| 서버 기능 개요 |
프롬프트(슬래시 명령 레시피 카드)
/generate_pdf, /generate_pdfs, /reportflow_help — 인수를 전달하면 AI가 준비된 워크플로를 따릅니다.
문제 해결
증상 | 해결 방법 |
| AI에게: *"Re:port Flow로 재인증"*이라고 요청하세요. |
|
|
Linux에서 키체인 사용 불가 |
|
SSH/원격 셸에서 브라우저를 열 수 없음 | 로컬 머신에서 한 번 인증하세요. 이후에는 캐시된 토큰이 원격 호스트에서 작동합니다. |
개인정보 보호
Re:port Flow MCP는 씬 클라이언트입니다. 사용자의 요청을 사용자 자신의
Re:port Flow 계정으로 전달하고 생성된 PDF를 반환합니다. 제3자에게 데이터를
판매하거나 공유하지 않습니다. 인증 토큰은 로컬(OS 키체인 또는 chmod-0600
파일 폴백)에 저장되며, OAuth 로그인 중 및 각 인증된 API 호출(템플릿 나열,
PDF 생성 또는 다운로드)에서 Bearer 자격 증명으로 Re:port Flow 자체
서비스에만 전송됩니다. 제3자와 절대 공유되지 않습니다.
전체 개인정보 보호정책 — 수집되는 항목, 보존 기간, 처리 방법 — 은 **lp.re-port-flow.com**에서 확인하세요.
보안
호스팅 엔드포인트는 MCP Streamable HTTP 사양의 보안 요구 사항에 따라
Host 헤더를 검증하고(DNS 리바인딩 보호), 구조적으로 유효하지 않은
Origin 헤더를 403 Forbidden으로 거부합니다. 인증은 Bearer 토큰
전용이며, 쿠키가 없고 CORS는 자격 증명을 허용하지 않습니다. 전체 정책과
위협 모델은 docs/security.md(일본어)에 문서화되어
있습니다.
지원
도움이 필요하거나, 버그를 발견했거나, 디렉터리 검토 질문이 있으신가요?
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
Issues: https://github.com/re-port-flow/reportflow-mcp/issues
Available Tools
10 toolsauthenticateAInspect
ReportFlow への OAuth2 認証を行います。ブラウザが起動し、ログイン・ワークスペース選択・consent を経てトークンを keychain (または XDG file) に保存します。他のツールが認証エラーを返したら、まずこのツールを呼んでください。force=true で既存トークンを破棄して再認証します。
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | 既存トークンを破棄して再認証する場合 true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the full authentication flow (browser launch, login, workspace selection, consent, token storage) and aligns with annotations (destructiveHint=false, openWorldHint=true). Adds valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the main action, with no wasted words. Efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description fully covers the authentication process, usage context, and parameter behavior. Complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description's mention of force parameter essentially paraphrases the schema's description. Minimal additional value beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool performs OAuth2 authentication to ReportFlow, including browser launch, token storage, and distinct action from siblings which handle downloads and PDF generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call this tool first when other tools return authentication errors, and explains when to use force=true for re-authentication. Provides clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_fileAIdempotentInspect
generate_pdf_asyncで生成した単一PDFファイルをダウンロードします。requestIdとfileIdを指定し、ローカルファイルパスを返します。outputDir を指定するとそのディレクトリに、未指定の場合は現在の作業ディレクトリに保存します。
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | generate_pdf_asyncで返されたrequestId(UUID) | |
| fileId | Yes | generate_pdf_asyncのfiles[].fileId | |
| fileName | No | 保存ファイル名(省略時はfileId.pdf) | |
| outputDir | No | 出力先ディレクトリ (相対/絶対)。未指定時はクライアントのワークスペース (Roots) または現在の作業ディレクトリに保存。ユーザーが場所を指定した場合のみセットすること。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that files are saved locally, returns the file path, and handles directory selection. Annotations already indicate idempotency, and the description adds context about default behavior. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no extraneous information. Efficient and complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the prerequisite, parameters, output, and directory behavior. No output schema needed; the return value is explained. Complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the default directory behavior (current working directory) not present in schema. All 4 parameters are well-covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads a single PDF file generated by generate_pdf_async, specifying the required parameters and return value. It distinguishes from the sibling download_zip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that this tool is used after generate_pdf_async and describes the optional outputDir. It does not explicitly exclude cases where download_zip might be preferred, but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_zipAIdempotentInspect
generate_pdfs_asyncで生成したZIPファイルをダウンロードします。requestIdを指定し、ローカルのZIPファイルパスを返します。outputDir を指定するとそのディレクトリに、未指定の場合は現在の作業ディレクトリに保存します。
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | generate_pdfs_asyncで返されたrequestId(UUID) | |
| fileName | No | 保存ファイル名(省略時はrequestId.zip) | |
| outputDir | No | 出力先ディレクトリ (相対/絶対)。未指定時はクライアントのワークスペース (Roots) または現在の作業ディレクトリに保存。ユーザーが場所を指定した場合のみセットすること。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and non-destructive nature. The description adds that it saves to a directory and returns a local path, which is useful but not extensive. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool, the description covers how to use it, what to specify, and what it returns. No output schema, but the return is implied. Could mention that it overwrites existing files, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context beyond schema: it explains the behavior of outputDir (saves to current directory if unspecified). This adds value, though fileName is not mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads a ZIP file generated by generate_pdfs_async, specifies requestId, and returns a local path. This distinguishes it from siblings like download_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description ties the tool to a specific prior tool (generate_pdfs_async), giving clear context. However, it does not explicitly mention when not to use or list alternatives beyond that association.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdf_asyncAInspect
デザインIDとパラメータを指定してPDFを非同期生成します。即座にrequestIdとfiles情報を返します。ファイルのダウンロードはdownload_fileツールを使用してください。
【重要】呼び出し前に必ず get_design_parameters でデザインの必要パラメータ構造を確認し、ユーザーから必要な値を聞き出すこと。ユーザーが指定していないパラメータがある場合は、本ツールを呼ぶ前にユーザーに必ず確認すること。プレースホルダー値・架空の値を勝手に生成しないこと。パラメータが一切提供されていない場合も、まずユーザーに値を尋ねること。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | Yes | デザインバージョン番号 | |
| content | Yes | PDF生成コンテンツ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, etc.). Description adds that it's async and returns immediately, but lacks details on side effects, idempotency, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient paragraphs: first states purpose, second gives critical usage guidelines. No redundancy, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Returns requestId and files info are mentioned but not detailed. No output schema, so description could elaborate further on response format or error handling. Links to download_file and get_design_parameters partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with detailed descriptions. Description adds crucial guidance to check parameter structure with get_design_parameters, adding value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool asynchronously generates PDF with design ID and parameters, returns requestId and files info, and distinguishes from sibling tools like download_file and synchronous variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit pre-conditions: must call get_design_parameters, ask user for missing values, avoid placeholder values. Does not mention alternative generation tools (synchronous, batch) that could be compared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdfs_asyncAInspect
複数のパラメータセットでPDFを一括非同期生成します。即座にrequestIdとfiles情報を返します。ZIPダウンロードはdownload_zipツールを使用してください。
【重要】呼び出し前に必ず get_design_parameters でデザインの必要パラメータ構造を確認し、ユーザーから必要な値を聞き出すこと。ユーザーが指定していないパラメータがある場合は、本ツールを呼ぶ前にユーザーに必ず確認すること。プレースホルダー値・架空の値を勝手に生成しないこと。パラメータが一切提供されていない場合も、まずユーザーに値を尋ねること。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | Yes | デザインバージョン番号 | |
| contents | Yes | PDF生成コンテンツの配列(複数ファイル) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds behavioral context: 'Immediately returns requestId and files information,' clarifying the async nature and immediate response. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the primary function, and contains no unnecessary words. The important warning section is separate and clearly marked. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple PDFs async), the description covers key aspects: async behavior, immediate return, prerequisite steps, and referral to another tool for ZIP. It lacks detail on the response structure beyond 'requestId and files information,' but this is adequate given no output schema. Annotations and schema fill remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining that the 'params' field should be structured based on get_design_parameters, and it highlights the required 'fileName' and 'params' fields. This guidance is crucial for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates multiple PDFs asynchronously with multiple parameter sets.' It specifies the verb 'generate', the resource 'multiple PDFs', and the asynchronous mode. It also distinguishes from siblings by explicitly mentioning the download_zip tool for ZIP downloads and implying sync versions exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: before calling, use get_design_parameters to check required parameters, ask the user for missing values, and never generate placeholders. It also directs the user to download_zip for ZIP downloads, offering clear when-to-use versus alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdfs_syncAInspect
複数のパラメータセットでPDFを一括同期生成し、ZIPファイルとして返します。生成完了後にZIPファイルのローカルパスを返します。outputDir を指定するとそのディレクトリに、未指定の場合はクライアントのワークスペース (Roots) または OS 一時ディレクトリに保存します。zipFileName で出力 ZIP のファイル名を指定可能 (デフォルト download.zip)。
【重要】呼び出し前に必ず get_design_parameters でデザインの必要パラメータ構造を確認し、ユーザーから必要な値を聞き出すこと。ユーザーが指定していないパラメータがある場合は、本ツールを呼ぶ前にユーザーに必ず確認すること。プレースホルダー値・架空の値を勝手に生成しないこと。パラメータが一切提供されていない場合も、まずユーザーに値を尋ねること。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | Yes | デザインバージョン番号 | |
| contents | Yes | PDF生成コンテンツの配列(複数ファイル) | |
| outputDir | No | 出力先ディレクトリ (相対/絶対)。未指定時はクライアントのワークスペース (Roots) または現在の作業ディレクトリに保存。ユーザーが場所を指定した場合のみセットすること。 | |
| zipFileName | No | 出力 ZIP のファイル名 (省略時は download.zip) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false), the description details synchronous generation, local path return, output directory logic, and shareType mapping. It also warns about not fabricating parameter values, adding behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs: first explains functionality and output, second is an important usage note. Every sentence adds value, no redundancy, key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core purpose, requirements, output, and configuration options. It could mention potential limitations like file size or error handling, but for its complexity it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining shareType codes and their response mapping, default output directory behavior, and that 'params' should be obtained via get_design_parameters. This goes beyond the raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool generates multiple PDFs synchronously from parameter sets and returns a ZIP file. It distinguishes from siblings like generate_pdf_sync (single) and generate_pdfs_async (async) by specifying '一括同期生成' (batch sync generation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear prerequisites: always call get_design_parameters first and ask the user for missing values. It warns against using placeholder values. However, it does not explicitly contrast with async tools or state when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdf_syncAInspect
デザインIDとパラメータを指定してPDFを生成します。応答にダウンロード URL が含まれるため、本ツール 1 回の呼び出しで結果提示が完結します (別途ダウンロード用ツールを呼ぶ必要はありません)。
stdio モード (Claude Desktop / Code): ローカルに保存し絶対パスも返します。outputDir で保存先を指定できます (未指定時はクライアントのワークスペース Roots または OS 一時ディレクトリ)。
HTTP モード (claude.ai / n8n 等): サーバー側には保存しません。includePreview=true を指定すると inline preview 用のバイナリも併せて返します (claude.ai が PDF preview をサポートしていない現状ではデフォルト false 推奨)。
【重要】呼び出し前に必ず get_design_parameters でデザインの必要パラメータ構造を確認し、ユーザーから必要な値を聞き出すこと。プレースホルダー値・架空の値を勝手に生成しないこと。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | Yes | デザインバージョン番号 | |
| content | Yes | PDF生成コンテンツ | |
| outputDir | No | 出力先ディレクトリ (相対/絶対)。未指定時はクライアントのワークスペース (Roots) または現在の作業ディレクトリに保存。ユーザーが場所を指定した場合のみセットすること。 | |
| includePreview | No | true 指定時のみ EmbeddedResource (application/pdf, base64 blob) を応答に含める。claude.ai は現状 PDF resource を inline 表示しないため、通常は省略 (false) で fileUrl のみを利用するのが効率的。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant behavioral context beyond annotations: synchronous generation, download URL in response, local save for stdio, no server save for HTTP, optional inline preview. No contradictions with annotations (readOnlyHint=false, destructiveHint=false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points for modes and warnings. Front-loaded key info. Slightly verbose but each part adds value. Could be marginally shorter but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all aspects: pre-condition (check parameters), post-condition (download URL, local save), mode-specific details, parameter constraints. No output schema, but response description is sufficient. Comprehensive for a complex tool with nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds critical context: outputDir default behavior, includePreview only when needed, params must come from get_design_parameters, shareType codes mapping. Enhances understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a PDF synchronously with a download URL. It distinguishes from async siblings and download tools, and explains mode-specific behavior (stdio vs HTTP). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call get_design_parameters first, ask user for values, and avoid placeholder/fake data. Also provides when to use includePreview and outputDir. Differentiates from async tools and download tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_design_parametersARead-onlyIdempotentInspect
デザインテンプレートのパラメータ構造を取得します。帳票生成に必要なパラメータの型・構造を確認できます。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | No | バージョン番号(省略時は最新版) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so the description adds context about what specific information is retrieved (types/structures). No additional behavioral traits beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded key information. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two parameters and comprehensive annotations, the description fully covers necessary context. No output schema needed as return is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. Description does not add meaning beyond what the schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves parameter structure of design templates. It specifically uses verb 'get' and resource 'design template parameters', distinguishing it from sibling tools like generate_pdf_* or list_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for inspecting parameter structure before form generation, but does not explicitly state when to use or alternatives. No exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesARead-onlyIdempotentInspect
ワークスペース内のデザイン一覧を取得します。各デザインのID・名称・最新バージョン・サムネイルURLを返します。取得したidをdesignIdとしてPDF生成ツールやget_design_parametersに使用します。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, indicating safe, idempotent behavior. The description adds value by specifying the exact return fields (ID, name, version, thumbnail URL) and the purpose of the output, which is not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise: two sentences, no filler. First sentence states the core function and output, second sentence provides usage guidance. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description fully covers what the tool does, what it returns, and how to use the result. No missing information for an agent to correctly invoke and utilize the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so schema coverage is 100%. Baseline score of 4 applies as the description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves a list of designs in the workspace and specifies the returned fields (ID, name, version, thumbnail URL). It also explains how to use the IDs with downstream tools, differentiating its purpose from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains that the obtained ID should be used as designId for PDF generation and get_design_parameters. It provides clear context for when to use the tool, though it does not explicitly list when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_paramsARead-onlyInspect
自然文の要件と designId からクライアント AI(Sampling)を使って generate_pdf_sync の params JSON を組み立てます。サーバー側 API キー不要。Sampling 未対応クライアントでは利用不可です。生成された params は内容確認のうえユーザーの承認を得てから generate_pdf_sync に渡してください。
| Name | Required | Description | Default |
|---|---|---|---|
| designId | Yes | デザインID(UUID形式) | |
| version | No | バージョン番号(省略時は最新版) | |
| description | Yes | 帳票の内容を自然文で記述(例: "請求書、宛先A社、合計1万円") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true. The description adds context about client-side AI (Sampling), no server API key needed, and the need for user approval, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that conveys essential information efficiently, though it could be slightly more structured for easier parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the output purpose. It covers prerequisites (Sampling), workflow (user approval), and usage context, making it fairly complete for a utility tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. The description does not add significant new semantics beyond implying description is natural language, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assembles params JSON for generate_pdf_sync using natural language and designId via Sampling. It distinguishes from sibling tools like generate_pdf_sync and is specific about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it is not usable on clients without Sampling support and instructs to get user approval before passing to generate_pdf_sync, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
authenticate - First observed
download_file - First observed
download_zip - First observed
generate_pdf_async - First observed
generate_pdf_sync - First observed
generate_pdfs_async - First observed
generate_pdfs_sync - First observed
get_design_parameters - First observed
list_templates - First observed
suggest_params
TDQS
Scored across 10 tools
Each tool has a clear, distinct purpose. Authentication is separate, sync vs async generators are clearly labeled, download tools are paired with async generators, and the helper tools (list_templates, get_design_parameters, suggest_params) are unique. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case. Variations like generate_pdf_async vs generate_pdf_sync are systematic and predictable, making it easy to understand the tool's function from its name.
10 tools is an ideal size for this domain. It covers authentication, template exploration, parameter retrieval, PDF generation (sync/async, single/batch), downloading results, and smart param suggestion—all essential without unnecessary bloat.
The tool set provides a complete workflow for generating PDFs from templates: authenticate, list templates, get parameters, generate (sync or async, single or batch), and download. The inclusion of suggest_params adds convenience. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
DocBase MCP server for AI agents
LLM Orchestration MCP Agent
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that converts Markdown to high-quality PDF documents using LaTeX, enabling AI agents like Claude to generate professional PDFs without requiring sign-ups or credit cards.144 npm11MIT
- AlicenseNot gradedqualityBmaintenancePDF Tools AI - MCP server providing AI-powered tools and automation by MEOK AI Labs7 npmMIT
- AlicenseAqualityFmaintenanceMCP server for BulkRender — generate bulk DOCX and PDF documents from Claude, Cursor, Windsurf, and any MCP-compatible AI assistant1551 npm1MIT
- AlicenseAqualityCmaintenanceMCP server for generating professional PDFs from structured JSON in AI agents like Claude or Cursor, using pure Node.js with embedded fonts and precision text layout.621 npmMIT