支持多个云提供商的文件存储服务
</div>go install github.com/sjzar/file-store-mcp@latest
file-store-mcp
file-store-mcp --sse-port 8080
文件存储MCP提供了三个工具用于上传文件到云存储:
upload_files)将本地文件上传到云存储并返回HTTP URL。
何时使用:当用户提到本地文件路径或需要在线访问他们的文件时。适用于分析PDF内容、引用本地图像进行绘图任务或处理任何本地文件。
参数:
paths: 需要上传的绝对本地文件路径数组(必需)示例:
{
"tool": "upload_files",
"params": {
"paths": ["/path/to/file1.pdf", "C:/Users/user/Documents/file2.jpg"]
}
}
upload_clipboard_files)将剪贴板中的文件上传到云存储并返回HTTP URL。
何时使用:仅当用户明确请求从剪贴板上传文件时。当用户想要分享或处理剪贴板内容而无需先将其保存到本地时非常有用。
参数:无
示例:
{
"tool": "upload_clipboard_files"
}
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"]
}
}
文件存储MCP支持以下存储提供商:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
FSM_STORAGE_TYPE | 存储提供商类型(s3, oss, cos, qiniu, github) | 空 |
设置 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兼容服务的说明:
FSM_S3_ENDPOINT 为您的R2端点URL设置 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桶的自定义域名 | 否 | - |
FSM_OSS_URL_EXPIRATION | 签名URL过期时间(秒) | 否 | 604800(7天) |
设置 FSM_STORAGE_TYPE=cos 使用腾讯云COS。
| 环境变量 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
FSM_COS_BUCKET | COS桶名称 | 是 | - |
FSM_COS_REGION | COS区域 | 是 | - |
FSM_COS_APP_ID | 腾讯云App 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天) |
可用的七牛区域:
z0: 华东z1: 华北z2: 华南na0: 北美as0: 东南亚设置 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发布 - 详情见LICENSE文件。
</div>