Generate PDFs and fill PDF forms via AI chat. Works with Claude, ChatGPT, Cursor, and MCP clients.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Design a new document layout.
Template name
HTML layout with {{variables}}
Brief description of template purpose
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Design a new document layout.
| Argument | Type | Description |
|---|---|---|
| name* | string | Template name |
| description | string | Brief description of template purpose |
| html_content* | string | HTML layout with {{variables}} |
{
"type": "object",
"required": [
"name",
"html_content"
],
"properties": {
"name": {
"type": "string",
"description": "Template name"
},
"description": {
"type": "string",
"description": "Brief description of template purpose"
},
"html_content": {
"type": "string",
"description": "HTML layout with {{variables}}"
}
}
}Get your finished document.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Completed job ID |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Completed job ID"
}
}
}Extract colors, fonts, and logo from a website.
| Argument | Type | Description |
|---|---|---|
| website* | string | Website URL to analyze |
{
"type": "object",
"required": [
"website"
],
"properties": {
"website": {
"type": "string",
"description": "Website URL to analyze"
}
}
}Create a document. Preview first, then confirm to generate PDF.
| Argument | Type | Description |
|---|---|---|
| data* | object | Template variables as key-value pairs |
| margin | string | Page margin (e.g., '1in', '20mm') |
| confirm | boolean | Set true to generate PDF (preview runs first if false) |
| page_size | string | Paper size |
| orientation | string | Page orientation |
| template_id* | string | Template ID to fill |
{
"type": "object",
"required": [
"template_id",
"data"
],
"properties": {
"data": {
"type": "object",
"description": "Template variables as key-value pairs"
},
"margin": {
"type": "string",
"description": "Page margin (e.g., '1in', '20mm')"
},
"confirm": {
"type": "boolean",
"default": false,
"description": "Set true to generate PDF (preview runs first if false)"
},
"page_size": {
"enum": [
"A4",
"Letter",
"Legal"
],
"type": "string",
"description": "Paper size"
},
"orientation": {
"enum": [
"portrait",
"landscape"
],
"type": "string",
"description": "Page orientation"
},
"template_id": {
"type": "string",
"description": "Template ID to fill"
}
}
}Research a topic and generate a visual deck with charts and visualizations.
| Argument | Type | Description |
|---|---|---|
| topic* | string | What to research and visualize |
| format | string |
{
"type": "object",
"required": [
"topic"
],
"properties": {
"topic": {
"type": "string",
"description": "What to research and visualize"
},
"format": {
"enum": [
"scrollytelling",
"multipage-3d",
"slides"
],
"type": "string",
"default": "scrollytelling"
}
}
}Check if your document is ready.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID from fill_template |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID from fill_template"
}
}
}Browse available document designs.
| Argument | Type | Description |
|---|---|---|
| tags | array | Filter by tags |
| query | string | Search term to filter templates |
| category | string | Filter by category (e.g., invoice, receipt, form) |
{
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by tags"
},
"query": {
"type": "string",
"description": "Search term to filter templates"
},
"category": {
"type": "string",
"description": "Filter by category (e.g., invoice, receipt, form)"
}
}
}See how your document will look.
| Argument | Type | Description |
|---|---|---|
| data* | object | Template variables as key-value pairs |
| accept | string | |
| template_id* | string | Template ID to preview |
{
"type": "object",
"required": [
"template_id",
"data"
],
"properties": {
"data": {
"type": "object",
"description": "Template variables as key-value pairs"
},
"accept": {
"enum": [
"text/html",
"application/pdf"
],
"type": "string",
"default": "text/html"
},
"template_id": {
"type": "string",
"description": "Template ID to preview"
}
}
}Save a presentation deck and get a shareable URL.
| Argument | Type | Description |
|---|---|---|
| html* | string | HTML content to host |
| title* | string | Title for the document |
{
"type": "object",
"required": [
"html",
"title"
],
"properties": {
"html": {
"type": "string",
"description": "HTML content to host"
},
"title": {
"type": "string",
"description": "Title for the document"
}
}
}Upload a .docx file as a template. Pass base64-encoded DOCX content.
| Argument | Type | Description |
|---|---|---|
| name* | string | Human-readable template name |
| description | string | Optional description |
| docx_base64* | string | Base64-encoded .docx file content |
{
"type": "object",
"required": [
"docx_base64",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable template name"
},
"description": {
"type": "string",
"description": "Optional description"
},
"docx_base64": {
"type": "string",
"description": "Base64-encoded .docx file content"
}
}
}