PreviewFile IconPreviewFile.dev

MCP 集成

通过模型上下文协议 (MCP) 将 PreviewFile 与 AI 代理集成,实现自动化文件上传和预览 URL 生成。

模型上下文协议 (MCP) 集成

PreviewFile.dev 提供 MCP 服务器,使 AI 代理和助手能够以编程方式上传附件并生成安全的预览 URL。这允许与 Claude、Cursor、Cherry Studio、Windsurf、Chatbox AI 等 MCP 兼容客户端无缝集成。

什么是 MCP? 模型上下文协议 是一个开放标准,使 AI 应用程序能够通过统一接口安全地连接外部数据源和工具。


快速开始

获取 API 密钥

前往 控制台设置 生成 API 密钥。API 密钥是 MCP 认证所必需的。

配置 AI 客户端

将 PreviewFile 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 上传文件。服务器获取文件并创建预览会话。这是从现有文件创建预览链接的主要方法。

参数:

参数类型必填默认值描述
urlstring是-要下载并创建预览的文件 URL
fileNamestring否自动检测覆盖文件名(如未提供,从 URL 或 Content-Disposition 提取)
ttlMinutesnumber否60链接有效期(分钟,5-1440)
watermarkstring否null水印文本
noDownloadboolean否false禁用下载功能
oneTimeboolean否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 访问的文件时使用。

参数:

参数类型必填描述
fileNamestring是要上传的文件名
mimeTypestring是文件的 MIME 类型
sizeBytesnumber是文件大小(字节,最大 500MB)
fileHashstring是文件内容的 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 requiredAPI 密钥缺失或无效检查您的 API 密钥配置
TTL exceeds plan limit请求的 TTL 超出套餐限制减少 ttlMinutes 或升级套餐
File size exceeds limit文件太大(最大 500MB)使用较小的文件或拆分
Failed to fetch file from URLURL 无法访问或返回错误验证 URL 是否可公开访问

速率限制

MCP 请求计入您的 API 速率限制:

套餐请求/天
免费版10
专业版1,000
商业版10,000
企业版无限制

故障排除

连接问题

问题:AI 客户端无法连接到 MCP 服务器

解决方案:

  1. 验证您的 API 密钥正确且有效
  2. 检查端点 URL:https://previewfile.dev/api/v1/mcp
  3. 确保您的客户端支持 HTTP 流式传输
  4. 检查网络/防火墙限制

上传失败

问题:文件上传失败或超时

解决方案:

  1. 对于大文件,使用预签名上传工作流
  2. 验证 base64 编码正确(无 data URL 前缀)
  3. 检查文件大小是否在 500MB 限制内
  4. 确保 MIME 类型与实际文件内容匹配

认证错误

问题:"Authentication required" 错误

解决方案:

  1. 从 控制台设置 生成新的 API 密钥
  2. 验证密钥传递正确:
    • Bearer 令牌:Authorization: Bearer <key>
    • 请求头:x-api-key: <key>
  3. 检查密钥是否已被撤销

常见问题

不使用 API 密钥可以使用 MCP 吗?

不可以,所有 MCP 操作都需要认证。请从 控制台设置 获取您的 API 密钥。

最大文件大小是多少?

每个文件 500MB。

上传的文件是永久的吗?

不是,所有文件根据配置的 TTL 自动过期。最大保留时间取决于您的套餐。

可以通过 MCP 列出所有预览吗?

目前,请使用 控制台 或 REST API 列出预览。MCP 专注于上传和单个预览操作。

文件去重是自动的吗?

是的,具有相同 SHA-256 哈希的文件只存储一次,节省存储和带宽。


后续步骤


需要帮助? 联系我们:[email protected]

On this page