Miyami PDF工具
](https://www.npmjs.com/package/@ankush_thxkur/miyami-pdf-tool-mcp-server) 
一个生产就绪的SaaS平台,用于通过API密钥管理、速率限制和云存储从HTML、Markdown、文本和URL生成PDF。
🚀 MCP快速入门
直接在Claude Desktop中使用Miyami PDF工具:
npx @ankush_thxkur/miyami-pdf-tool-mcp-server看 MCP服务器文档 有关设置说明。
特性
- 🔐 认证:使用电子邮件/密码进行身份验证
- 🔑 API密钥管理:生成、管理和吊销API密钥
- 📄 PDF生成:
- 将HTML、Markdown或纯文本转换为PDF - 从URL生成PDF - 可定制的格式(A4、信纸、法律版) - 边距、页眉、页脚、横向模式
- 🚀 PDF操作:
- 合并多个PDF - 提取页面 - 旋转页面 - 添加水印 - 提取文本内容
- 📊 使用情况分析:跟踪API使用情况并监控费率限制
- ☁️ 云存储:PDF文件的数据库存储
- 🔒 安全:行级安全性(RLS)、HMAC-SHA256 API密钥哈希、Vault支持
- ⚡ 速率限制:可配置的每小时费率限制
- 🤖 MCP集成:Claude Desktop的模型上下文协议服务器
技术栈
- 框架:Next.js 14,带应用路由器
- 语言:TypeScript
- 数据库:Supabase PostgreSQL
- 认证:Supabase认证
- 存储:数据库存储
- PDF生成:木偶
- PDF操作:pdf库
- PDF提取:pdf解析
- 用户界面:顺风CSS v4,shadcn/ui
- 验证:佐德
先决条件
- Node.js 18+和npm/yarn/pnpm
- Supabase帐户(在以下位置创建一个 网站 supabase.com)
入门指南
1.安装依赖项
npm install
# or
yarn install
# or
pnpm install2.建立Supabase项目
- 首选 网站 supabase.com 并创建一个新项目
- 等待项目配置(需要1-2分钟)
- 首选 项目设置 → API
- 复制项目URL和密钥
3.配置环境变量
创建一个 .env.local 根目录中的文件:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Generate a secure encryption secret for API key hashing
# Run: openssl rand -base64 32
API_KEY_ENCRYPTION_SECRET=your-generated-secret-here生成加密密钥:
openssl rand -base64 32复制输出并将其用作 API_KEY_ENCRYPTION_SECRET 在你的 .env.local 文件。
安全说明:API密钥使用具有此机密的HMAC-SHA256进行哈希。永远不要将此秘密提交给版本控制。看 加密_SETUP.md 了解详情。
4.应用数据库迁移
在安装过程中,已通过MCP工具应用了数据库迁移。创建了以下内容:
- 表格:
api_keys,pdfs,api_usage,pdf_templates - 存储:
pdfs具有公共访问权限的bucket - 函数:
get_usage_stats(),check_rate_limit() - RLS政策:所有表都启用了行级安全
通过查看您的Supabase仪表板进行验证→ 表格编辑器.
5.运行开发服务器
npm run dev打开 http://localhost:3000 查看应用程序。
6.创建帐户
- 引导到 http://localhost:3000/signup
- 使用您的电子邮件和密码创建新帐户
- 检查您的电子邮件以获取确认链接
- 登录地址: http://localhost:3000/login
7.生成API密钥
- 首选 仪表盘 → API密钥
- 点击 创建新密钥
- 复制API密钥(您将不会再看到它!)
API使用
从HTML生成PDF
curl -X POST http://localhost:3000/api/pdf/generate \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"html": "
Hello World
",
"options": {"format": "A4"}
}'从URL生成PDF
curl -X POST http://localhost:3000/api/pdf/generate-from-url \
-H "x-api-key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"format": "A4"
}'列出您的PDF
curl -X GET http://localhost:3000/api/pdf/list?page=1&limit=20 \
-H "x-api-key: your-api-key"项目结构
pdf-saas/
├── app/
│ ├── (auth)/ # Authentication pages
│ ├── (dashboard)/ # Protected dashboard
│ └── api/ # API routes
├── lib/
│ ├── supabase/ # Supabase clients
│ ├── pdf/ # PDF generation/manipulation
│ ├── api/ # API utilities
│ └── utils/ # Utility functions (crypto, validation)
├── components/ui/ # shadcn/ui components
├── supabase/migrations/ # Database migrations
├── ENCRYPTION_SETUP.md # Detailed encryption setup guide
├── SETUP_GUIDE.md # Quick start guide
└── PROJECT_SUMMARY.md # Detailed project overview安全
API密钥哈希
API密钥使用 HMAC-SHA256 在存储之前使用秘密加密密钥。这提供了:
- 防止彩虹桌攻击
- 加密强单向散列
- 与数据库的密钥隔离
看 加密_SETUP.md 用于:
- 详细的安全架构
- 保险库集成指南(可选)
- 秘密轮换程序
- 生产安全检查表
Claude桌面版MCP服务器
该平台包括 模型上下文协议(MCP)服务器 这使Claude Desktop能够直接生成和操作PDF。
快速设置
- 构建MCP服务器:
cd mcp-server
chmod +x setup.sh
./setup.sh- 获取API密钥 从仪表板(仪表板→ API密钥)
- 配置Claude桌面 (
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"pdf-saas": {
"command": "node",
"args": ["/absolute/path/to/pdf-saas/mcp-server/dist/index.js"],
"env": {
"PDF_API_BASE_URL": "http://localhost:3000",
"PDF_API_KEY": "your-api-key-here"
}
}
}
}- 重新启动克劳德桌面
可用的MCP工具
generate-pdf-from-html-将HTML转换为PDFgenerate-pdf-from-markdown-将Markdown转换为PDFgenerate-pdf-from-text-将文本转换为PDFgenerate-pdf-from-url-将网页转换为PDFmerge-pdfs-合并多个PDFextract-pages-拉取特定页面rotate-pages-按角度旋转页面add-watermark-添加文本水印extract-text-提取文本内容get-pdf-info-获取PDF元数据list-pdfs-列出您的PDF
看 mcp服务器/README.md 详细文档。
部署
Vercel(推荐)
- 将代码推送到GitHub
- Vercel的进口项目
- 添加环境变量
- 部署
请参阅 文档 了解更多详情。
许可证
麻省理工学院
