MCP 集成
通过模型上下文协议 (MCP) 将 PreviewFile 与 AI 代理集成,实现自动化文件上传和预览 URL 生成。
模型上下文协议 (MCP) 集成
PreviewFile.dev 提供 MCP 服务器,使 AI 代理和助手能够以编程方式上传附件并生成安全的预览 URL。这允许与 Claude、Cursor、Cherry Studio、Windsurf、Chatbox AI 等 MCP 兼容客户端无缝集成。
什么是 MCP? 模型上下文协议 是一个开放标准,使 AI 应用程序能够通过统一接口安全地连接外部数据源和工具。
快速开始
开始使用
您的 AI 代理现在可以通过自然语言提示上传文件并生成预览 URL。
MCP 端点
https://previewfile.dev/api/v1/mcp传输协议: HTTP 流式传输 (MCP 规范修订版 2025-06-18)
认证方式
所有 MCP 请求都需要使用 API 密钥进行认证。您可以在 控制台设置 获取 API 密钥。
支持的认证方式
| 方式 | 请求头格式 | 示例 |
|---|---|---|
| API 密钥请求头 | x-api-key: <key> | x-api-key: apk_abc123... |
| API 密钥请求头 (备选) | X-API-Key: <key> | X-API-Key: apk_abc123... |
| Bearer 令牌 | Authorization: Bearer <key> | Authorization: Bearer apk_abc123... |
配置示例
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"previewfile": {
"command": "npx",
"args": [
"-y",
"@anthropic-ai/mcp-client-http",
"https://previewfile.dev/api/v1/mcp"
],
"env": {
"MCP_BEARER_TOKEN": "your-api-key-here"
}
}
}
}配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
可用工具
PreviewFile MCP 服务器提供 2 个工具 用于文件上传和预览生成:
工具概览
| 工具 | 用途 | 适用场景 |
|---|---|---|
previewfile_upload_from_url | 从 URL 上传文件并创建预览 | 通过 URL 可访问的文件 |
previewfile_request_upload_url | 获取预签名 URL 进行直接上传 | 需要直接上传的大文件 |
previewfile_upload_from_url
通过提供 URL 上传文件。服务器获取文件并创建预览会话。这是从现有文件创建预览链接的主要方法。
参数:
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
url | string | 是 | - | 要下载并创建预览的文件 URL |
fileName | string | 否 | 自动检测 | 覆盖文件名(如未提供,从 URL 或 Content-Disposition 提取) |
ttlMinutes | number | 否 | 60 | 链接有效期(分钟,5-1440) |
watermark | string | 否 | null | 水印文本 |
noDownload | boolean | 否 | false | 禁用下载功能 |
oneTime | boolean | 否 | false | 查看后过期 |
响应示例:
{
"shortUrl": "a1b2c3d4",
"previewUrl": "https://previewfile.dev/p/a1b2c3d4",
"expireAt": "2026-01-28T10:30:00Z",
"status": "READY",
"fileName": "report.pdf",
"fileSize": 245678,
"mimeType": "application/pdf"
}服务器自动从 URL 路径或 Content-Disposition 标头检测文件名。您可以使用 fileName 参数覆盖。
previewfile_request_upload_url
请求预签名 URL 以将文件直接上传到存储。当您需要上传无法通过 URL 访问的文件时使用。
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
fileName | string | 是 | 要上传的文件名 |
mimeType | string | 是 | 文件的 MIME 类型 |
sizeBytes | number | 是 | 文件大小(字节,最大 500MB) |
fileHash | string | 是 | 文件内容的 SHA-256 哈希(十六进制字符串) |
响应示例:
{
"uploadUrl": "https://storage.previewfile.dev/upload/...",
"tempKey": "tmp/space123/abc123.pdf",
"expiresIn": 3600
}收到预签名 URL 后,使用 HTTP PUT 将文件直接上传到返回的 uploadUrl。
建议提示词
以下是一些帮助您开始使用 PreviewFile MCP 服务器的自然语言提示词:
URL 转预览提示词
"将这个 S3 URL 转换为安全预览链接:https://bucket.s3.amazonaws.com/doc.pdf"
"为这个文件 URL 创建一个 2 小时有效期的预览"
"为这个外部文档生成带水印的预览链接"
"为这份合同 URL 创建一个查看后即过期的一次性预览链接"
"禁止下载方式上传这个 URL 的文件:https://example.com/report.pdf"
直接上传提示词
"获取一个预签名 URL,以便我上传大型视频文件"
"我需要上传一个 50MB 的演示文稿 - 给我一个上传 URL"
使用场景
1. AI 辅助文档分享
让您的 AI 编程助手在讨论文档时自动生成安全预览链接:
用户:"分享这份 S3 文档给团队,不要暴露我们的存储桶 URL"
AI:*使用 previewfile_upload_from_url 获取并生成安全链接*
"这是您的安全预览链接:https://previewfile.dev/p/abc123
链接 1 小时后过期。原始 URL 已隐藏。"2. 安全的外部文件分享
将任何可访问的 URL 转换为安全的限时预览:
用户:"为这份客户报告创建预览链接:https://pdfobject.com/pdf/sample.pdf"
AI:*使用 previewfile_upload_from_url 并设置 noDownload=true*
"预览链接已创建:https://previewfile.dev/p/xyz789
下载已禁用。1 小时后过期。"3. 带水印的文档分发
分享带有追踪水印的机密文档:
用户:"分享这份合同给供应商,但要添加水印"
AI:*使用 previewfile_upload_from_url 并设置 watermark 参数*
"已创建带'供应商审阅'水印的预览链接:https://previewfile.dev/p/abc456
水印将显示在所有页面上。"4. 一次性安全链接
为敏感内容创建自毁预览链接:
用户:"为这份机密文档创建一次性链接"
AI:*使用 previewfile_upload_from_url 并设置 oneTime=true*
"一次性预览链接已创建:https://previewfile.dev/p/wire123
链接在首次访问后立即过期。"预签名上传工作流
对于无法通过 URL 访问的文件,使用预签名上传工作流:
请求上传 URL
使用文件元数据调用 previewfile_request_upload_url:
{
"fileName": "large-video.mp4",
"mimeType": "video/mp4",
"sizeBytes": 52428800,
"fileHash": "a1b2c3d4e5f6..."
}返回有效期为 1 小时的预签名上传 URL。
直接上传文件
使用 HTTP PUT 上传文件到预签名 URL:
curl -X PUT "${uploadUrl}" \
-H "Content-Type: video/mp4" \
--data-binary @large-video.mp4文件将被存储并准备好生成预览。
对于大多数用例,推荐使用 previewfile_upload_from_url,因为它在单次调用中处理整个上传过程。
安全功能
MCP 服务器继承了所有 PreviewFile 安全功能:
| 功能 | 描述 |
|---|---|
| TTL 控制 | 设置链接过期时间,从 5 分钟到 24 小时(取决于套餐) |
| 动态水印 | 在预览上叠加自定义文本 |
| 禁止下载 | 阻止文件下载,仅查看模式 |
| 一次性链接 | 首次访问后立即过期 |
| 文件去重 | 相同文件只存储一次(通过 SHA-256 哈希) |
| API 密钥范围 | 密钥限定在您的工作空间/组织范围内 |
错误处理
MCP 服务器返回带有清晰消息的结构化错误:
{
"error": "TTL exceeds plan limit. Maximum allowed: 1440 minutes."
}常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
Authentication required | API 密钥缺失或无效 | 检查您的 API 密钥配置 |
TTL exceeds plan limit | 请求的 TTL 超出套餐限制 | 减少 ttlMinutes 或升级套餐 |
File size exceeds limit | 文件太大(最大 500MB) | 使用较小的文件或拆分 |
Failed to fetch file from URL | URL 无法访问或返回错误 | 验证 URL 是否可公开访问 |
速率限制
MCP 请求计入您的 API 速率限制:
| 套餐 | 请求/天 |
|---|---|
| 免费版 | 10 |
| 专业版 | 1,000 |
| 商业版 | 10,000 |
| 企业版 | 无限制 |
故障排除
连接问题
问题:AI 客户端无法连接到 MCP 服务器
解决方案:
- 验证您的 API 密钥正确且有效
- 检查端点 URL:
https://previewfile.dev/api/v1/mcp - 确保您的客户端支持 HTTP 流式传输
- 检查网络/防火墙限制
上传失败
问题:文件上传失败或超时
解决方案:
- 对于大文件,使用预签名上传工作流
- 验证 base64 编码正确(无 data URL 前缀)
- 检查文件大小是否在 500MB 限制内
- 确保 MIME 类型与实际文件内容匹配
认证错误
问题:"Authentication required" 错误
解决方案:
- 从 控制台设置 生成新的 API 密钥
- 验证密钥传递正确:
- Bearer 令牌:
Authorization: Bearer <key> - 请求头:
x-api-key: <key>
- Bearer 令牌:
- 检查密钥是否已被撤销
常见问题
不使用 API 密钥可以使用 MCP 吗?
不可以,所有 MCP 操作都需要认证。请从 控制台设置 获取您的 API 密钥。
最大文件大小是多少?
每个文件 500MB。
上传的文件是永久的吗?
不是,所有文件根据配置的 TTL 自动过期。最大保留时间取决于您的套餐。
可以通过 MCP 列出所有预览吗?
目前,请使用 控制台 或 REST API 列出预览。MCP 专注于上传和单个预览操作。
文件去重是自动的吗?
是的,具有相同 SHA-256 哈希的文件只存储一次,节省存储和带宽。
后续步骤
- 📖 查看 REST API 文档 了解更多端点
- 🔒 阅读 安全策略 了解数据保护详情
- 💰 访问 定价页面 比较套餐
- 🎨 查看 支持的格式 了解文件兼容性
需要帮助? 联系我们:[email protected]