关于 File Store MCP Server
File Store MCP Server 通过统一接口将文件上传到云存储,适用于需要在线提供本地文件、剪贴板文件或 URL 文件的应用,并支持多种存储服务及 STDIO、SSE 模式。
主要功能
- 01支持多种云存储服务
- 02上传本地、剪贴板和 URL 文件
- 03生成预签名访问 URL
- 04配置 URL 有效期和自定义域名
- 05支持 STDIO 与 SSE 模式
适用场景
- 01将本地文档上传后在线分析
- 02无需本地保存即可分享剪贴板文件
- 03上传给定网页链接中的文件
- 04通过自定义域名或 CDN 提供存储文件
MCP 相关
该 MCP 服务提供 `upload_files`、`upload_clipboard_files` 和 `upload_url_files` 工具,将文件上传到已配置的存储服务。支持通过 STDIO 或 SSE 运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
功能
- 支持多个云存储服务提供商
- 统一的文件上传 API
- 生成预签名 URL,实现安全访问
- 支持 AWS S3、阿里云 OSS、腾讯云 COS、七牛云和 GitHub
- 通过环境变量轻松配置
- 可自定义 URL 过期时间
- 支持自定义域名和 CDN
- 双模式运行:stdio 模式用于直接集成,SSE 模式用于服务端运行
快速开始
安装
go install github.com/sjzar/file-store-mcp@latest
基本用法
- 为所选存储服务提供商设置所需的环境变量
- 以 stdio 模式(默认)运行,以便与其他应用直接集成:
file-store-mcp - 或以 SSE 服务模式运行,进行基于 HTTP 的集成:
file-store-mcp --sse-port 8080
MCP 工具
File Store MCP 提供三个用于将文件上传到云存储的工具:
1. 上传文件工具(upload_files)
将本地文件上传到云存储,并返回 HTTP URL。
使用场景:用户提到本地文件路径,或需要在线访问其文件时。适用于分析 PDF 内容、在绘图任务中引用本地图片,或处理任何本地文件。
参数:
paths:要上传的本地绝对文件路径数组(必填)
示例:
{
"tool": "upload_files",
"params": {
"paths": ["/path/to/file1.pdf", "C:/Users/user/Documents/file2.jpg"]
}
}
2. 上传剪贴板文件工具(upload_clipboard_files)
将剪贴板中的文件上传到云存储,并返回 HTTP URL。
使用场景:仅当用户明确要求上传剪贴板中的文件时使用。适用于用户希望分享或处理剪贴板内容,但不想先将其保存到本地的情况。
参数:无需参数
示例:
{
"tool": "upload_clipboard_files"
}
3. 上传 URL 文件工具(upload_url_files)
从提供的 URL 下载文件并上传到云存储,随后返回新的 HTTP URL。
使用场景:用户提供了希望处理或分析的文件链接时。适用于用户引用需要纳入当前工作流的外部文件的情况。
参数:
urls:指向要下载并上传的文件的 URL 数组(必填)
示例:
{
"tool": "upload_url_files",
"params": {
"urls": ["https://example.com/file1.pdf", "https://another-site.org/image.jpg"]
}
}
存储服务提供商
File Store MCP 支持以下存储服务提供商:
- AWS S3(以及 Cloudflare R2 等兼容服务)
- 阿里云 OSS
- 腾讯云 COS
- 七牛云存储
- GitHub 仓库
配置
通用配置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
FSM_STORAGE_TYPE | 存储服务提供商类型(s3、oss、cos、qiniu、github) | empty |
AWS S3 配置
设置 FSM_STORAGE_TYPE=s3 以使用 AWS S3 或兼容服务。
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
FSM_S3_BUCKET | S3 存储桶名称 | 是 | - |
FSM_S3_REGION | AWS 区域 | 是 | - |
FSM_S3_ENDPOINT | S3 兼容服务的自定义端点 | 否 | AWS S3 端点 |
FSM_S3_ACCESS_KEY | AWS 访问密钥 ID | 是 | - |
FSM_S3_SECRET_KEY | AWS 秘密访问密钥 | 是 | - |
FSM_S3_SESSION | AWS 会话令牌 | 否 | - |
FSM_S3_URL_EXPIRATION | 预签名 URL 的过期时间(秒) | 否 | 604800(7 天) |
S3 兼容服务说明:
- 对于 Cloudflare R2:将
FSM_S3_ENDPOINT设置为你的 R2 端点 URL - 对于其他 S3 兼容服务:配置相应的端点 URL
Alibaba Cloud OSS 配置
设置 FSM_STORAGE_TYPE=oss 以使用 Alibaba Cloud OSS。
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
FSM_OSS_ENDPOINT | OSS 端点 | 是 | - |
FSM_OSS_ACCESS_KEY | OSS 访问密钥 ID | 是 | - |
FSM_OSS_SECRET_KEY | OSS 访问密钥 | 是 | - |
FSM_OSS_BUCKET | OSS 存储桶名称 | 是 | - |
FSM_OSS_DOMAIN | OSS 存储桶的自定义域名 | 否 | - |
FSM_OSS_URL_EXPIRATION | 签名 URL 的过期时间(秒) | 否 | 604800(7 天) |
Tencent Cloud COS 配置
设置 FSM_STORAGE_TYPE=cos 以使用 Tencent Cloud COS。
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
FSM_COS_BUCKET | COS 存储桶名称 | 是 | - |
FSM_COS_REGION | COS 区域 | 是 | - |
FSM_COS_APP_ID | Tencent Cloud App ID | 是 | - |
FSM_COS_ACCESS_KEY | Secret ID | 是 | - |
FSM_COS_SECRET_KEY | Secret Key | 是 | - |
FSM_COS_DOMAIN | COS 存储桶的自定义域名 | 否 | - |
FSM_COS_USE_HTTPS | 是否使用 HTTPS | 否 | true |
FSM_COS_USE_ACCELERATE | 是否使用全球加速 | 否 | false |
FSM_COS_URL_EXPIRATION | 预签名 URL 的过期时间(秒) | 否 | 604800(7 天) |
Qiniu Cloud Storage 配置
设置 FSM_STORAGE_TYPE=qiniu 以使用 Qiniu Cloud Storage。
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
FSM_QINIU_ACCESS_KEY | Qiniu 访问密钥 | 是 | - |
FSM_QINIU_SECRET_KEY | Qiniu 秘密密钥 | 是 | - |
FSM_QINIU_BUCKET | Qiniu 存储桶名称 | 是 | - |
FSM_QINIU_DOMAIN | Qiniu 存储桶的自定义域名(必填) | 是 | - |
FSM_QINIU_REGION | 存储区域 | 否 | z0(华东) |
FSM_QINIU_URL_EXPIRATION | 签名 URL 的过期时间(秒) | 否 | 604800(7 天) |
可用的 Qiniu 区域:
z0:华东z1:华北z2:华南na0:北美as0:东南亚
GitHub 仓库配置
设置 FSM_STORAGE_TYPE=github 以使用 GitHub 作为存储提供商。
| 环境变量 | 描述 | 必填 | 默认值 |
|---|---|---|---|
FSM_GITHUB_TOKEN | GitHub 个人访问令牌 | 是 | - |
FSM_GITHUB_OWNER | 仓库所有者 | 是 | - |
FSM_GITHUB_REPO | 仓库名称 | 是 | - |
FSM_GITHUB_BRANCH | 分支名称 | 否 | main |
FSM_GITHUB_PATH | 仓库内的文件存储路径 | 否 | - |
FSM_GITHUB_DOMAIN | GitHub 内容的自定义域名 | 否 | - |
GitHub 令牌权限:
- 对于私有仓库,令牌必须具有
repo范围 - 对于公开仓库,
public_repo范围即可
高级用法
使用自定义域名
对于所有存储提供商,你都可以配置自定义域名来提供文件服务。如果你的存储前面有 CDN 服务,这尤其有用。
Alibaba Cloud OSS 使用自定义域名的示例:
FSM_STORAGE_TYPE=oss
FSM_OSS_BUCKET=my-bucket
FSM_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
FSM_OSS_ACCESS_KEY=your-access-key
FSM_OSS_SECRET_KEY=your-secret-key
FSM_OSS_DOMAIN=cdn.example.com
调试模式
启用调试模式以输出更详细的日志:
file-store-mcp --debug
开发
从源代码构建
git clone https://github.com/sjzar/file-store-mcp.git
cd file-store-mcp
go build
许可证
本项目采用 Apache License 2.0 许可,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。