使用说明
PDF生成器API-MCP服务器
模型上下文协议(MCP)服务器 PDF生成器API,由OpenAPI v4规范生成。
概述
此服务器支持 两者 stdio和HTTP传输:
- 标准模式 (默认):用于本地MCP客户端集成(Claude Desktop、Claude Code、Cline等)
- HTTP模式:适用于生产部署、市场和多个客户
快速开始
地方发展(标准模式)
安装和构建:
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生成器API JWT令牌(请参阅 JWT令牌生成 在......下面
常见配置位置:
- 克劳德桌面:设置>开发人员>编辑配置
- 克劳德代码(CLI):
~/.claude/mcp_config.json - Cline/Roo Codeium:
.vscode/mcp_config.json - 继续:
~/.continue/config.json
远程MCP服务器(可流式HTTP)
如果您部署了MCP服务器(例如。 https://mcp.example.com),您可以直接从MCP客户端连接到它,而无需在本地运行任何东西。
克劳德代码 (~/.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_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 compose -f deploy/docker-compose.yml up -d
# MCP endpoint: http://localhost:3001/mcp
认证
标准模式:通过以下方式传递JWT令牌 BEARER_TOKEN_JWT MCP客户端配置中的环境变量。
HTTP模式:将JWT令牌传递到 Authorization 每个请求的标头:
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令牌生成
您需要JWT令牌才能通过PDF生成器API进行身份验证。从获取您的凭据 PDF生成器API面板 在...之下 帐户设置>API集成.
你需要三个值:
- 工作区ID (
issclaim)--您的数字工作区标识符 - 工作区标识符 (
subclaim)--您的工作区电子邮件或唯一密钥 - 密钥 --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. "user@example.com"
},
'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生成器API对每个请求验证令牌。如果令牌在会话中期过期,则随后的API调用将返回 401 Unauthorized --生成新令牌并重新启动MCP客户端。
安全最佳实践
- 切勿提交令牌或密钥 到版本控制
- 使用 环境变量 或者一个秘密管理器来存储你的
BEARER_TOKEN_JWT - 旋转密钥 定期在PDF生成器API面板中
- 对于HTTP模式,请使用 超文本传输安全协议 在生产中保护运输中的代币
请参阅: PDF生成器API验证文档
环境变量
| 变量 | 模式 | 默认值 | 描述 |
|---|---|---|---|
API_BASE_URL |
两者皆有 | https://us1.pdfgeneratorapi.com/api/v4 |
PDF生成器API基础URL |
BEARER_TOKEN_JWT |
用于身份验证的Stdio | -- | JWT令牌 |
PORT |
HTTP | 3000 |
服务器端口 |
LOG_LEVEL |
两者皆有 | info |
日志记录级别(debug, info, warn, error) |
SESSION_TTL_MINUTES |
HTTP | 30 |
会话空闲超时(分钟) |
CORS_ORIGIN |
HTTP | * (所有来源) |
允许使用逗号分隔的来源 |
创建一个 .env repo根目录中的文件:
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
