๐ PDF Gen Studio MCP Server
A Model Context Protocol (MCP) server for PDF Gen Studio. It can generate PDFs and images from templates, JSON, HTML, or URLs.

โจ Features
- ๐ Template Rendering: Render saved templates with dynamic data injection.
- ๐ง JSON Rendering: Convert JSON design documents to PDF/images.
- ๐ HTML Rendering: Convert HTML/CSS content to PDF/images.
- ๐ธ URL Rendering: Screenshot any website URL as PDF/images.
- ๐ Template Management: List and retrieve your saved templates.
๐ฆ Installation
Using npm (Global)
npm install -g @pdfgenstudio/mcp
Using npx (No Install)
npx @pdfgenstudio/mcp
From Source
git clone https://github.com/Majid9287/pdfgenstudio-mcp.git
cd pdfgenstudio-mcp
npm install
npm run build
Using Docker
docker pull mcp/pdfgenstudio:latest
Or build locally:
docker build -t mcp/pdfgenstudio .
๐ Documentation
Configuration
Environment Variables
Set your PDF Gen Studio API key:
export PDFGENSTUDIO_API_KEY="your-api-key-here"
Or on Windows (PowerShell):
$env:PDFGENSTUDIO_API_KEY = "your-api-key-here"
Or on Windows (Command Prompt):
set PDFGENSTUDIO_API_KEY=your-api-key-here
Optional Configuration
| Property |
Details |
Default |
PDFGENSTUDIO_API_KEY |
Your PDF Gen Studio API key |
Required |
PDFGENSTUDIO_BASE_URL |
API base URL |
https://api.pdfgenstudio.com |
Usage
As stdio Server (Default)
pdfgenstudio-mcp
npx @pdfgenstudio/mcp
pdfgenstudio-mcp --transport stdio
As HTTP Server
pdfgenstudio-mcp --transport http --port 3100
pdfgenstudio-mcp -t http -p 8080
Development & Testing
npm run test
npm run inspect
๐ Client Integrations
Claude Desktop
Add to your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
Using npx (Recommended)
{
"mcpServers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Using Local Installation
{
"mcpServers": {
"pdfgenstudio": {
"command": "node",
"args": ["/absolute/path/to/pdfgenstudio-mcp/dist/index.js"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
After editing, restart Claude Desktop completely.
Docker Desktop (MCP Toolkit)
PDF Gen Studio MCP is available in Docker Desktop's MCP Toolkit catalog.
Option 1: Using Docker Desktop MCP Toolkit UI
- Open Docker Desktop.
- Go to Extensions โ MCP Toolkit.
- Search for "pdfgenstudio" in the catalog.
- Click Install and configure your API key.
Option 2: Manual Configuration
Add to your Claude Desktop configuration to use the Docker image:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pdfgenstudio": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "PDFGENSTUDIO_API_KEY=your-api-key-here",
"mcp/pdfgenstudio:latest"
]
}
}
}
Running Docker Container Directly
docker run -it --rm \
-e PDFGENSTUDIO_API_KEY="your-api-key-here" \
mcp/pdfgenstudio:latest
docker run -it --rm -p 3100:3100 \
-e PDFGENSTUDIO_API_KEY="your-api-key-here" \
mcp/pdfgenstudio:latest node dist/index.js --transport http --port 3100
Using Docker Compose
echo "PDFGENSTUDIO_API_KEY=your-api-key-here" > .env
docker-compose up -d pdfgenstudio-mcp
docker-compose --profile http up -d pdfgenstudio-mcp-http
VS Code (GitHub Copilot)
VS Code supports MCP servers through the GitHub Copilot extension.
Step 1: Enable MCP in VS Code
- Open VS Code Settings (
Ctrl+, or Cmd+,).
- Search for
github.copilot.chat.experimental.mcp.
- Enable the setting.
Step 2: Configure MCP Server
Create or edit .vscode/mcp.json in your workspace:
{
"servers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Or add to your VS Code User Settings (settings.json):
{
"github.copilot.chat.experimental.mcp": true,
"mcp": {
"servers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
}
Using Local Installation in VS Code
{
"servers": {
"pdfgenstudio": {
"command": "node",
"args": ["C:/path/to/pdfgenstudio-mcp/dist/index.js"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Cursor
Cursor has built-in MCP support. Configure it in Cursor settings.
Step 1: Open Cursor Settings
- Open Cursor.
- Go to
Settings โ Cursor Settings โ MCP.
- Or press
Ctrl+Shift+P / Cmd+Shift+P and search "MCP".
Step 2: Add MCP Server
Add the following configuration:
{
"mcpServers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Alternative: Edit Config File Directly
- macOS:
~/.cursor/mcp.json
- Windows:
%USERPROFILE%\.cursor\mcp.json
- Linux:
~/.cursor/mcp.json
{
"mcpServers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Windsurf (Codeium)
Windsurf supports MCP through its configuration.
Configuration File Location
- macOS:
~/.codeium/windsurf/mcp_config.json
- Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
- Linux:
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
Zed Editor
Zed has native MCP support. Configure in Zed settings.
Configuration
Edit ~/.config/zed/settings.json:
{
"language_models": {
"mcp_servers": {
"pdfgenstudio": {
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
}
}
}
Continue (VS Code/JetBrains Extension)
Continue supports MCP servers for enhanced AI capabilities.
Configuration
Edit ~/.continue/config.json:
{
"mcpServers": [
{
"name": "pdfgenstudio",
"command": "npx",
"args": ["-y", "@pdfgenstudio/mcp"],
"env": {
"PDFGENSTUDIO_API_KEY": "your-api-key-here"
}
}
]
}
HTTP/SSE Mode (For Custom Clients)
For clients that support HTTP-based MCP connections:
Start the Server
npx @pdfgenstudio/mcp --transport http --port 3100
Endpoints
- HTTP Streaming:
http://localhost:3100/mcp
- SSE:
http://localhost:3100/sse
- Health Check:
http://localhost:3100/health
Example Client Connection
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("http://localhost:3100/mcp")
);
const client = new Client({
name: "my-client",
version: "1.0.0",
});
await client.connect(transport);
Troubleshooting
Common Issues
- "API key not configured"
- Ensure
PDFGENSTUDIO_API_KEY is set in the env section.
- Check for typos in the environment variable name.
- "Command not found" (npx)
- Make sure Node.js 18+ is installed.
- Try using the full path to npx:
/usr/local/bin/npx.
- Server not connecting
- Restart your IDE/application after configuration changes.
- Check the logs for error messages.
- Verify the path is correct for local installations.
- Windows path issues
- Use forward slashes
/ or escaped backslashes \\ in paths.
- Use absolute paths.
Debug Mode
Run with debug logging:
DEBUG=* npx @pdfgenstudio/mcp
Verify Installation
npx @pdfgenstudio/mcp --help
npx fastmcp inspect /path/to/pdfgenstudio-mcp/src/index.ts
๐ ๏ธ Available Tools
Template Tools
| Tool |
Description |
render_template |
Render a template to PDF/PNG/JPG with data injection. |
render_template_image |
Render template and return viewable image. |
JSON Tools
| Tool |
Description |
render_json |
Convert JSON design document to PDF/image. |
render_json_image |
Render JSON and return viewable image. |
HTML Tools
| Tool |
Description |
render_html |
Convert HTML/CSS to PDF/image. |
render_html_image |
Render HTML and return viewable image. |
URL Tools
| Tool |
Description |
render_url |
Screenshot webpage as PDF/image. |
render_url_image |
Screenshot and return viewable image. |
Management Tools
| Tool |
Description |
list_templates |
List all saved templates. |
get_template |
Get template details. |
get_template_schema |
Get modifiable template elements. |
๐ Resources
The MCP server provides these resources:
| URI |
Description |
pdfgenstudio://templates |
List of all templates. |
pdfgenstudio://templates/{id} |
Specific template details. |
pdfgenstudio://docs/api |
API documentation. |
pdfgenstudio://config |
Current configuration status. |
๐ก Prompts
Pre-built prompts for common tasks:
| Prompt |
Description |
generate-invoice |
Generate invoice PDFs. |
generate-report |
Create report documents. |
capture-webpage |
Screenshot webpages. |
use-template |
Render templates with data. |
html-to-pdf |
Convert HTML to PDF. |
๐ป Usage Examples
Render a Template
Use the render_template tool to generate a PDF from template ID "abc123"
with the following data: {"name": "John Doe", "amount": "$500"}
Screenshot a Webpage
Capture a full-page screenshot of https://example.com as PNG
Generate HTML Report
Convert this HTML to PDF:
<html>
<body>
<h1>Monthly Report</h1>
<p>Content here...</p>
</body>
</html>
๐ API Reference
For detailed API documentation, visit docs.pdfgenstudio.com.
๐ง Development
npm install
npm run build
npm run dev
npm run test
npm run inspect
๐ License
MIT License - see LICENSE for details.
๐ ๏ธ Support