文件存储MCP服务器
_支持多个云提供商的文件存储服务_
  ](https://github.com/sjzar/file-store-mcp/releases) ](https://github.com/sjzar/file-store-mcp/blob/main/LICENSE)
特性
- 多云存储提供商支持
- 用于文件上载的统一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 8080MCP工具
文件存储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。
何时使用:当用户提供指向他们想要处理或分析的文件的web链接时。非常适合用户引用需要合并到当前工作流中的外部文件的情况。
参数:
urls:指向要下载和上传的文件的URL数组(必填)
示例:
{
"tool": "upload_url_files",
"params": {
"urls": ["https://example.com/file1.pdf", "https://another-site.org/image.jpg"]
}
}存储提供商
文件存储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
阿里云OSS配置
集 FSM_STORAGE_TYPE=oss 使用阿里云OSS。
| 环境变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
FSM_OSS_ENDPOINT | OSS端点 | 是 | - |
FSM_OSS_ACCESS_KEY | OSS访问密钥ID | 是 | - |
FSM_OSS_SECRET_KEY | OSS访问密钥机密 | 是 | - |
FSM_OSS_BUCKET | OSS存储桶名称 | 是 | - |
FSM_OSS_DOMAIN | OSS bucket的自定义域 | 否 | - |
FSM_OSS_URL_EXPIRATION | 签名URL过期时间(秒) | 否 | 604800(7天) |
腾讯云COS配置
集 FSM_STORAGE_TYPE=cos 使用腾讯云COS。
| 环境变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
FSM_COS_BUCKET | COS存储桶名称 | 是 | - |
FSM_COS_REGION | COS区域 | 是 | - |
FSM_COS_APP_ID | 腾讯云应用ID | 是 | - |
FSM_COS_ACCESS_KEY | 机密ID | 是 | - |
FSM_COS_SECRET_KEY | 密钥 | 是 | - |
FSM_COS_DOMAIN | COS桶的自定义域 | 否 | - |
FSM_COS_USE_HTTPS | 是否使用HTTPS | 否 | true |
FSM_COS_USE_ACCELERATE | 是否使用全局加速 | 否 | false |
FSM_COS_URL_EXPIRATION | 预设URL过期时间(秒) | 否 | 604800(7天) |
七牛云存储配置
集 FSM_STORAGE_TYPE=qiniu 使用七牛云存储。
| 环境变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
FSM_QINIU_ACCESS_KEY | 七牛访问密钥 | 是 | - |
FSM_QINIU_SECRET_KEY | 七牛密钥 | 是 | - |
FSM_QINIU_BUCKET | 七牛桶名 | 是 | - |
FSM_QINIU_DOMAIN | 七牛桶自定义域名(必填) | 是 | - |
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服务时,这尤其有用。
阿里云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许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

