mcpField
P
Pdf Generator Api

Pdf Generator Api

Local
github.com/pdfgeneratorapiDeveloper Tools1Updated 2w ago

About Pdf Generator Api

An MCP server generated from the PDF Generator API v4 specification. It provides stdio and HTTP transports for local client use or deployment with multiple clients.

Key features

  1. 01Generated from the OpenAPI v4 specification
  2. 02Stdio and HTTP transports
  3. 03JWT-based API authentication
  4. 04Configurable API URL and HTTP settings
  5. 05Health-check endpoint in HTTP mode

Use cases

  1. 01Connect a local MCP client to PDF Generator API
  2. 02Deploy an HTTP MCP endpoint for multiple clients
  3. 03Regenerate the server after API specification changes

MCP support

Exposes PDF Generator API capabilities to MCP clients over stdio or Streamable HTTP. Requests authenticate with a JWT.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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 build

MCP 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.json
  • Cline/Roo-Codeium: .vscode/mcp_config.json
  • Continue: ~/.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/health

Docker:

docker compose -f deploy/docker-compose.yml up -d
# MCP endpoint: http://localhost:3001/mcp

Authentication

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 (iss claim) — your numeric workspace identifier
  • Workspace Identifier (sub claim) — your workspace email or unique key
  • Secret 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. "[email protected]"
  },
  '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 24h
Token Expiration (TTL)

Choose a TTL that matches your use case:

Use caseRecommended TTLWhy
Local MCP (stdio)24h or longerMCP sessions can be long-lived; avoids mid-session expiration
Production (HTTP)1hShorter-lived tokens reduce risk if leaked
CI/CD or scripts5m – 15mMinimal 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_JWT
  • Rotate 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

VariableModeDefaultDescription
API_BASE_URLBothhttps://us1.pdfgeneratorapi.com/api/v4PDF Generator API base URL
BEARER_TOKEN_JWTStdio—JWT token for authentication
PORTHTTP3000Server port
LOG_LEVELBothinfoLogging level (debug, info, warn, error)
SESSION_TTL_MINUTESHTTP30Session idle timeout in minutes
CORS_ORIGINHTTP* (all origins)Comma-separated allowed origins

Create a .env file in the repo root:

cp .env.example .env

Regenerating

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.json

Note: After regeneration, custom patches may need to be re-applied.

Testing

npm run build
npm test

Test stdio mode manually:

BEARER_TOKEN_JWT="your-token" echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npm run start:stdio

Test HTTP mode:

npm run start:http
curl http://localhost:3000/health

Resources

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.