Pdf Generator Api について
PDF Generator API v4 の仕様から生成された MCP サーバーです。stdio と HTTP のトランスポートに対応し、ローカル利用や複数クライアント向けのデプロイができます。
主な機能
- 01OpenAPI v4 仕様から生成
- 02stdio と HTTP のトランスポート
- 03JWT による API 認証
- 04API URL と HTTP 設定の変更
- 05HTTP モードのヘルスチェックエンドポイント
活用シーン
- 01ローカルの MCP クライアントを PDF Generator API に接続
- 02複数クライアント向け HTTP MCP エンドポイントのデプロイ
- 03API 仕様の変更後にサーバーを再生成
MCP 対応
stdio または Streamable HTTP を通じて、MCP クライアントに PDF Generator API の機能を提供します。リクエストの認証には JWT を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PDF Generator API — MCP サーバー
PDF Generator API 向けの Model Context Protocol(MCP)サーバーです。OpenAPI v4 仕様から生成されています。
概要
このサーバーは、stdio と HTTP の両方のトランスポートをサポートしています。
- Stdio モード(デフォルト):ローカルの MCP クライアントとの連携用(Claude Desktop、Claude Code、Cline など)
- HTTP モード:本番環境へのデプロイ、マーケットプレイス、複数のクライアント向け
クイックスタート
ローカル開発(Stdio モード)
インストールとビルド:
npm install
npm run build
MCP クライアント設定の例:
{
"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"
}
}
}
}
注:/path/to/mcp-server を実際のパスに、your-jwt-token-here を PDF Generator API の JWT トークンに置き換えてください(トークンの生成方法は、以下のJWT トークンの生成を参照してください)。
一般的な設定ファイルの場所:
- Claude Desktop:設定 > 開発者 > 設定を編集
- Claude Code(CLI):
~/.claude/mcp_config.json - Cline/Roo-Codeium:
.vscode/mcp_config.json - Continue:
~/.continue/config.json
リモート MCP サーバー(Streamable HTTP)
デプロイ済みの MCP サーバー(例:https://mcp.example.com)がある場合、ローカルで何も実行せずに、MCP クライアントから直接接続できます。
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 は streamable-http を直接サポートしていません。ブリッジとして mcp-remote を使用してください。
{
"mcpServers": {
"pdf-generator-api": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.pdfgeneratorapi.com/mcp",
"--header",
"Authorization: Bearer your-jwt-token-here"
]
}
}
}
注:リモートサーバーでは、セッション中の有効期限切れを避けるため、長期間有効な JWT トークン(例:--expiresIn 30d)を使用してください。作成方法はJWT トークンの生成を参照してください。設定を更新した後は、MCP クライアントを再起動してください。
本番環境へのデプロイ(HTTP モード)
ローカルで実行:
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
認証
Stdio モード:MCP クライアントの設定で、環境変数 BEARER_TOKEN_JWT を介して JWT トークンを渡します。
HTTP モード:各リクエストの Authorization ヘッダーに JWT トークンを渡します。
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 トークンの生成
PDF Generator API の認証には JWT トークンが必要です。PDF Generator API ダッシュボードのアカウント設定 > API 連携から認証情報を取得してください。
次の 3 つの値が必要です。
- ワークスペース ID(
issクレーム)— 数値形式のワークスペース識別子 - ワークスペース識別子(
subクレーム)— ワークスペースのメールアドレスまたは一意のキー - シークレットキー — JWT の署名キー(秘密にしてください)
参照: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);
クイックなワンライナー(npx)
npx jsonwebtoken-cli -- sign \
'{"iss":"YOUR_WORKSPACE_ID","sub":"YOUR_WORKSPACE_IDENTIFIER"}' \
'YOUR_SECRET_KEY' \
--algorithm HS256 \
--expiresIn 24h
トークンの有効期限(TTL)
用途に合わせて TTL を選択してください。
| 用途 | 推奨 TTL | 理由 |
|---|---|---|
| ローカル MCP(stdio) | 24h 以上 | MCP セッションは長期間続く場合があるため、セッション中の有効期限切れを防げます |
| 本番環境(HTTP) | 1h | 有効期間の短いトークンを使うことで、漏えい時のリスクを低減できます |
| CI/CD またはスクリプト | 5m – 15m | 自動化タスクでのトークンの露出時間を最小限にできます |
PDF Generator API は、リクエストごとにトークンを検証します。セッション中にトークンの有効期限が切れると、その後の API 呼び出しは 401 Unauthorized を返します。新しいトークンを生成し、MCP クライアントを再起動してください。
セキュリティのベストプラクティス
- トークンやシークレットキーをバージョン管理にコミットしないでください
BEARER_TOKEN_JWTの保存には、環境変数またはシークレットマネージャーを使用してください- PDF Generator API ダッシュボードで、定期的にシークレットキーをローテーションしてください
- HTTP モードでは、通信中のトークンを保護するため、本番環境でHTTPSを使用してください
参照:PDF Generator API の認証ドキュメント
環境変数
| 変数 | モード | デフォルト | 説明 |
|---|---|---|---|
API_BASE_URL | Both | https://us1.pdfgeneratorapi.com/api/v4 | PDF Generator API のベース URL |
BEARER_TOKEN_JWT | Stdio | — | 認証用の JWT トークン |
PORT | HTTP | 3000 | サーバーのポート |
LOG_LEVEL | Both | info | ログレベル(debug、info、warn、error) |
SESSION_TTL_MINUTES | HTTP | 30 | セッションのアイドルタイムアウト(分) |
CORS_ORIGIN | HTTP | *(すべてのオリジン) | 許可するオリジン(カンマ区切り) |
リポジトリのルートに .env ファイルを作成します:
cp .env.example .env
再生成
OpenAPI 仕様の変更後に再生成するには:
# 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
注: 再生成後、カスタムパッチを再適用する必要がある場合があります。
テスト
npm run build
npm test
stdio モードを手動でテストします:
BEARER_TOKEN_JWT="your-token" echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npm run start:stdio
HTTP モードをテストします:
npm run start:http
curl http://localhost:3000/health
リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。