@pdfgenstudio/mcp
v1.0.2
Published
MCP (Model Context Protocol) server for PDF Gen Studio - Generate PDFs and images from templates, JSON, HTML, or URLs
Downloads
218
Maintainers
Readme
PDF Gen Studio MCP Server
A Model Context Protocol (MCP) server for PDF Gen Studio - 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/mcpUsing npx (No Install)
npx @pdfgenstudio/mcpFrom Source
git clone https://github.com/Majid9287/pdfgenstudio-mcp.git
cd pdfgenstudio-mcp
npm install
npm run buildConfiguration
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-hereOptional Configuration
| Variable | Description | 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)
# Using global install
pdfgenstudio-mcp
# Using npx
npx @pdfgenstudio/mcp
# With explicit transport
pdfgenstudio-mcp --transport stdioAs HTTP Server
# Start HTTP server on port 3100
pdfgenstudio-mcp --transport http --port 3100
# Or with custom port
pdfgenstudio-mcp -t http -p 8080Development & Testing
# Test with fastmcp CLI
npm run test
# Inspect with MCP Inspector
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.
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+,orCmd+,) - 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+Pand 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
# Start HTTP server
npx @pdfgenstudio/mcp --transport http --port 3100Endpoints
- 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_KEYis set in theenvsection - Check for typos in the environment variable name
- Ensure
"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
- Use forward slashes
Debug Mode
Run with debug logging:
DEBUG=* npx @pdfgenstudio/mcpVerify Installation
# Test the server directly
npx @pdfgenstudio/mcp --help
# Test with MCP Inspector
npx fastmcp inspect /path/to/pdfgenstudio-mcp/src/index.tsAvailable 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 |
Example Usage
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 PNGGenerate 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
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Test with MCP CLI
npm run test
# Inspect with MCP Inspector
npm run inspectLicense
MIT License - see LICENSE for details.
