PDF Generator API MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PDF Generator API MCP Servergenerate an invoice PDF using the standard template and my order data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PDF Generator API — MCP Server
Model Context Protocol (MCP) server for the PDF Generator API, generated from the OpenAPI v4 specification.
Overview
This server supports both stdio and HTTP transports:
Stdio mode (default): For local MCP client integration (Claude Desktop, Claude Code, Cline, etc.)
HTTP mode: For production deployment, marketplaces, and multiple clients
Quick Start
Local Development (Stdio Mode)
Install and build:
npm install
npm run buildMCP Client Configuration Example:
{
"mcpServers": {
"pdf-generator-api": {
"command": "node",
"args": ["/path/to/mcp-server/build/index.js"],
"env": {
"API_BASE_URL": "https://us1.pdfgeneratorapi.com/api/v4",
"BEARER_TOKEN_JWT": "your-jwt-token-here"
}
}
}
}Note: Replace /path/to/mcp-server with your actual path and your-jwt-token-here with your PDF Generator API JWT token (see JWT Token Generation below).
Common config locations:
Claude Desktop: Settings > Developer > Edit Config
Claude Code (CLI):
~/.claude/mcp_config.jsonCline/Roo-Codeium:
.vscode/mcp_config.jsonContinue:
~/.continue/config.json
Remote MCP Server (Streamable HTTP)
If you have a deployed MCP server (e.g. https://mcp.example.com), you can connect to it directly from your MCP client without running anything locally.
Claude Code (~/.claude/mcp_config.json):
{
"mcpServers": {
"pdf-generator-api": {
"type": "streamable-http",
"url": "https://mcp.pdfgeneratorapi.com/mcp",
"headers": {
"Authorization": "Bearer your-jwt-token-here"
}
}
}
}Claude Desktop (claude_desktop_config.json):
Claude Desktop does not support streamable-http directly. Use mcp-remote as a bridge:
{
"mcpServers": {
"pdf-generator-api": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.pdfgeneratorapi.com/mcp",
"--header",
"Authorization: Bearer your-jwt-token-here"
]
}
}
}Note: For remote servers, use a long-lived JWT token (e.g. --expiresIn 30d) to avoid mid-session expiration. See JWT Token Generation for how to create one. Restart your MCP client after updating the config.
Production Deployment (HTTP Mode)
Run locally:
npm install
npm run start:http
# Server runs on http://localhost:3000
# MCP endpoint: http://localhost:3000/mcp
# Health check: http://localhost:3000/healthDocker:
docker compose -f deploy/docker-compose.yml up -d
# MCP endpoint: http://localhost:3001/mcpAuthentication
Stdio Mode: Pass the JWT token via the BEARER_TOKEN_JWT environment variable in your MCP client config.
HTTP Mode: Pass the JWT token in the Authorization header with each request:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your-jwt-token-here" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'JWT Token Generation
You need a JWT token to authenticate with the PDF Generator API. Get your credentials from the PDF Generator API dashboard under Account Settings > API Integration.
You'll need three values:
Workspace ID (
issclaim) — your numeric workspace identifierWorkspace Identifier (
subclaim) — your workspace email or unique keySecret Key — the signing key for your JWT (keep this secret)
See: https://docs.pdfgeneratorapi.com/v4#section/Authentication/Creating-a-JWT
Node.js
const jwt = require('jsonwebtoken');
const token = jwt.sign(
{
iss: 'YOUR_WORKSPACE_ID', // e.g. "12345"
sub: 'YOUR_WORKSPACE_IDENTIFIER' // e.g. "user@example.com"
},
'YOUR_SECRET_KEY',
{
algorithm: 'HS256',
expiresIn: '24h' // Token lifetime — see notes below
}
);
console.log(token);Quick one-liner (npx)
npx jsonwebtoken-cli -- sign \
'{"iss":"YOUR_WORKSPACE_ID","sub":"YOUR_WORKSPACE_IDENTIFIER"}' \
'YOUR_SECRET_KEY' \
--algorithm HS256 \
--expiresIn 24hToken Expiration (TTL)
Choose a TTL that matches your use case:
Use case | Recommended TTL | Why |
Local MCP (stdio) |
| MCP sessions can be long-lived; avoids mid-session expiration |
Production (HTTP) |
| Shorter-lived tokens reduce risk if leaked |
CI/CD or scripts |
| Minimal exposure window for automated tasks |
The PDF Generator API validates the token on every request. If the token expires mid-session, subsequent API calls will return 401 Unauthorized — generate a new token and restart the MCP client.
Security Best Practices
Never commit tokens or secret keys to version control
Use environment variables or a secrets manager to store your
BEARER_TOKEN_JWTRotate secret keys periodically in the PDF Generator API dashboard
For HTTP mode, use HTTPS in production to protect tokens in transit
See: PDF Generator API Authentication Docs
Environment Variables
Variable | Mode | Default | Description |
| Both |
| PDF Generator API base URL |
| Stdio | — | JWT token for authentication |
| HTTP |
| Server port |
| Both |
| Logging level ( |
| HTTP |
| Session idle timeout in minutes |
| HTTP |
| Comma-separated allowed origins |
Create a .env file in the repo root:
cp .env.example .envRegenerating
To regenerate after OpenAPI spec changes:
# Place the updated spec at docs/apiv4.json, then:
./scripts/generate-mcp.sh
# Or specify a custom input:
./scripts/generate-mcp.sh --input /path/to/apiv4.jsonNote: After regeneration, custom patches may need to be re-applied.
Testing
npm run build
npm testTest stdio mode manually:
BEARER_TOKEN_JWT="your-token" echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npm run start:stdioTest HTTP mode:
npm run start:http
curl http://localhost:3000/healthResources
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pdfgeneratorapi/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server