Cloud file relay: chunked uploads, folders, share links, inline text reads, ZIP packing.
Déduit des transports déclarés par cette annonce (streamable-http). Un client absent de cette liste n’est pas écarté pour autant — c’est simplement quelque chose que Forge ne peut pas confirmer.
La vérification confirme l’identité de l’éditeur (la propriété du dépôt), pas la sûreté du code. L’analyse de sécurité couvre les CVE connues et les scripts d’installation suspects.
Lu depuis un véritable échange MCP initialize → tools/list contre l’endpoint déclaré. Aucun outil n’a été invoqué — tools/list est l’appel d’introspection en lecture seule que le protocole prévoit pour cela. Cela reflète ce que le serveur annonçait à cet instant ; un endpoint hébergé n’est figé sur aucune version et peut changer sans préavis.
https://stagenth.com/mcp/file-relay/25 outils · 2721 msget_user_quota查看当前用户的存储配额使用情况。查看当前用户的存储配额使用情况。
Aucun schéma d’entrée n’a été publié pour cet outil.
list_files列出当前用户的文件 (默认递归遍历整个文件夹层级).
返回值同时附带 ``subfolders``(直接子文件夹列表) 与 ``has_subfolders``
提示, 帮助 AI 感知层级结构。若用户问“目录结构 / 树”, 直接调
``get_folder_tree`` 拿到 ASCII 树状图更直观。
每个 item 都有 ``folder_path`` 字段标注它的实际归属, 同名文件不会
因递归而混淆。列出当前用户的文件 (默认递归遍历整个文件夹层级). 返回值同时附带 ``subfolders``(直接子文件夹列表) 与 ``has_subfolders`` 提示, 帮助 AI 感知层级结构。若用户问“目录结构 / 树”, 直接调 ``get_folder_tree`` 拿到 ASCII 树状图更直观。 每个 item 都有 ``folder_path`` 字段标注它的实际归属, 同名文件不会 因递归而混淆。
| Paramètre | Type | Description |
|---|---|---|
| category | — | 按分类过滤:audio/video/image/text/code/document/archive/other |
| search | — | 按文件名或描述搜索 |
| folder_path | string | 目标文件夹路径, 形如 '/' 或 '/工作/项目A'。默认 '/' 列根目录。用 list_folders 探查可用路径。 |
| recursive | boolean | True (默认) = 深度遍历, 返回该路径及所有后代文件夹下的全部文件; False = 仅列直接子文件 (类似 'ls'). 用户问“都有什么文件”时一律保持 True. |
| page | integer | — |
| size | integer | — |
search_files在当前用户的所有文件中搜索。在当前用户的所有文件中搜索。
| Paramètre | Type | Description |
|---|---|---|
| query* | string | 搜索关键词(文件名或描述) |
| limit | integer | — |
get_file_info查询单个文件详情。file_id 与 file_uuid 提供其一即可。查询单个文件详情。file_id 与 file_uuid 提供其一即可。
| Paramètre | Type | Description |
|---|---|---|
| file_id | — | 文件 ID |
| file_uuid | — | 文件 UUID(二选一) |
delete_fileprivilégié删除一个文件。删除一个文件。
| Paramètre | Type | Description |
|---|---|---|
| file_id* | integer | 文件 ID |
delete_filesprivilégié批量删除文件(移入回收站,30 天内可在网页端恢复)。
逐个删除,单个失败不影响其余;返回每个 ID 的结果。批量删除文件(移入回收站,30 天内可在网页端恢复)。 逐个删除,单个失败不影响其余;返回每个 ID 的结果。
| Paramètre | Type | Description |
|---|---|---|
| file_ids* | array | 要删除的文件 ID 列表(list_files 可查),单次最多 100 个 |
upload_fileprivilégié上传一个文件(base64 形式)到用户的文件中转站。
仅在用户明确要求把某个文件存入中转站 / 传输到其他设备 / 分享给他人时调用。
上传会占用用户的付费存储配额并按传输量扣 credit —— 不要主动上传
中间结果、日志、临时文件或用户没有要求保存的命令输出。
用 init + 单次分片 + complete 的方式复用现有服务。
适合中小文件(< 20MB)。超大文件请使用 Web 端分片上传。
新增 folder_path: 上传到指定文件夹, 默认根目录 "/"。上传一个文件(base64 形式)到用户的文件中转站。 仅在用户明确要求把某个文件存入中转站 / 传输到其他设备 / 分享给他人时调用。 上传会占用用户的付费存储配额并按传输量扣 credit —— 不要主动上传 中间结果、日志、临时文件或用户没有要求保存的命令输出。 用 init + 单次分片 + complete 的方式复用现有服务。 适合中小文件(< 20MB)。超大文件请使用 Web 端分片上传。 新增 folder_path: 上传到指定文件夹, 默认根目录 "/"。
| Paramètre | Type | Description |
|---|---|---|
| filename* | string | 文件名(含扩展名) |
| content_base64* | string | 文件内容的 base64 编码。较大文件建议分多次调用前先咨询管理员。 |
| mime_type | string | — |
| folder_path | string | 目标文件夹路径。'/' = 根目录 (默认); '/工作/2026' = 嵌套路径。auto_create_folders=True 时路径不存在会 mkdir -p; auto_create_folders=False 时不存在抛错。 |
| auto_create_folders | boolean | 路径不存在时是否自动 mkdir -p, 默认 True (类似 Linux mkdir -p) |
upload_initprivilégié发起分片上传会话 (第 1 步 / 共 3 步)。
返回:
- instant=true 时, file 字段是已秒传的文件元数据, 直接用即可
- instant=false 时, 用 session_uuid + 服务端给的 chunk_size/total_chunks
逐片调 upload_chunk, 最后调 upload_complete。发起分片上传会话 (第 1 步 / 共 3 步)。 返回: - instant=true 时, file 字段是已秒传的文件元数据, 直接用即可 - instant=false 时, 用 session_uuid + 服务端给的 chunk_size/total_chunks 逐片调 upload_chunk, 最后调 upload_complete。
| Paramètre | Type | Description |
|---|---|---|
| filename* | string | 文件名(含扩展名) |
| total_size_bytes* | integer | 整个文件的字节数 |
| sha256* | string | 整个文件的 sha256 (64 位小写十六进制); 服务端用这个做秒传命中 |
| mime_type | string | — |
| folder_path | string | 目标文件夹路径, 默认 '/' 即根目录。auto_create_folders=True 时会按 mkdir -p 语义自动建。 |
| auto_create_folders | boolean | 路径不存在时是否自动 mkdir -p |
upload_chunkprivilégié上传单个分片 (第 2 步 / 共 3 步)。
可并发调用, 后端内部会记录已上传索引。网络抖动重试同一 chunk_index
安全 (服务端幂等写临时块)。上传单个分片 (第 2 步 / 共 3 步)。 可并发调用, 后端内部会记录已上传索引。网络抖动重试同一 chunk_index 安全 (服务端幂等写临时块)。
| Paramètre | Type | Description |
|---|---|---|
| session_uuid* | string | upload_init 返回的会话 UUID |
| chunk_index* | integer | 分片索引 (0-based), 最后一片索引 = total_chunks-1 |
| data_base64* | string | 本片字节的 base64 编码。每片大小应等于 upload_init 返回的 chunk_size, 最后一片可能短。单次调用建议 <12MB base64 (约 8-9MB 原字节)。 |
upload_completeprivilégié合并所有分片 (第 3 步 / 共 3 步)。
两种路径:
- 直传 (推荐, shim 走这条): parts 带齐所有 (part_number, etag),
后端调 OSS CompleteMultipartUpload 服务端合并, 不耗 ECS 内存/带宽。
- 中转 (兼容老 shim / 网页端): 不传 parts, 从临时分片合并。
返回最终 file 元数据 (id, uuid, filename, size_bytes, sha256, ...).合并所有分片 (第 3 步 / 共 3 步)。 两种路径: - 直传 (推荐, shim 走这条): parts 带齐所有 (part_number, etag), 后端调 OSS CompleteMultipartUpload 服务端合并, 不耗 ECS 内存/带宽。 - 中转 (兼容老 shim / 网页端): 不传 parts, 从临时分片合并。 返回最终 file 元数据 (id, uuid, filename, size_bytes, sha256, ...).
| Paramètre | Type | Description |
|---|---|---|
| session_uuid* | string | upload_init 返回的会话 UUID |
| parts | — | 【OSS 直传模式】每片对应的 (part_number, etag)。如: [{"part_number": 1, "etag": "abc..."}, ...]。shim 在 PUT 每片到 OSS 后从响应头拿到 ETag, 传回来。传了 parts 走 OSS CompleteMultipartUpload… |
download_file下载一个文件, 按 MCP spec 2025-06-18 的原生 content 类型返回。
根据文件 category 自动选择最合适的 MCP content block 类型:
- image (jpg/png/webp/...) → content[0].type = "image"
(base64 + mimeType; AI 客户端原生显示图片, 多模态 LLM 可直接看图)
- audio (mp3/wav/...) → content[0].type = "audio"
(base64 + mimeType; AI 客户端原生播放, 多模态模型可直接听)
-…下载一个文件, 按 MCP spec 2025-06-18 的原生 content 类型返回。 根据文件 category 自动选择最合适的 MCP content block 类型: - image (jpg/png/webp/...) → content[0].type = "image" (base64 + mimeType; AI 客户端原生显示图片, 多模态 LLM 可直接看图) - audio (mp3/wav/...) → content[0].type = "audio" (base64 + mimeType; AI 客户端原生播放, 多模态模型可直接听) -…
| Paramètre | Type | Description |
|---|---|---|
| file_id | — | — |
| file_uuid | — | — |
| as_text | boolean | 【仅文本/代码文件】直接返 UTF-8 字符串文本内容。图片/音频等非文本文件不受此参数影响(它们按 MCP 原生 content type 返回)。 |
create_share_link为文件生成一个分享链接。为文件生成一个分享链接。
| Paramètre | Type | Description |
|---|---|---|
| file_id* | integer | 要分享的文件 ID |
| expires_in_seconds | — | 多少秒后过期;不传=永久 |
| password | — | 可选密码 |
| max_downloads | — | 最多下载次数 |
download_shared_file通过分享链接下载文件(无需是文件拥有者)。
适合别人发给你一个 /s/<uuid> 链接,你想让 AI 直接读取其内容的场景。
不会占用你的存储配额。下载计入分享者的月流量。通过分享链接下载文件(无需是文件拥有者)。 适合别人发给你一个 /s/<uuid> 链接,你想让 AI 直接读取其内容的场景。 不会占用你的存储配额。下载计入分享者的月流量。
| Paramètre | Type | Description |
|---|---|---|
| share_uuid* | string | 分享链接的 UUID(分享 URL 最后一段,如 /s/<uuid>) |
| password | — | 分享密码,如有 |
| as_text | boolean | 对文本/代码文件直接返回字符串,不做 base64 |
import_shared_file把别人分享的文件导入到当前登录用户的文件列表。
等价于「下载后再上传」,但服务端直接从源文件拷贝字节流、仍走配额/白名单/秒传检查,
所以比本地往返更快、也不消耗带宽。
下载量计入分享者的月流量;存储占用计入当前用户的配额。把别人分享的文件导入到当前登录用户的文件列表。 等价于「下载后再上传」,但服务端直接从源文件拷贝字节流、仍走配额/白名单/秒传检查, 所以比本地往返更快、也不消耗带宽。 下载量计入分享者的月流量;存储占用计入当前用户的配额。
| Paramètre | Type | Description |
|---|---|---|
| share_uuid* | string | 分享链接的 UUID |
| password | — | 分享密码,如有 |
list_folders列出文件夹 (类似 ``ls -d`` 只看目录)。
路径不存在抛 folder_not_found。要列文件用 list_files。列出文件夹 (类似 ``ls -d`` 只看目录)。 路径不存在抛 folder_not_found。要列文件用 list_files。
| Paramètre | Type | Description |
|---|---|---|
| folder_path | string | 父文件夹路径, 默认 '/' 即根目录。返回直接子文件夹列表 (不含其文件). |
| recursive | boolean | True 时返回整棵子树 (深度遍历)。默认 False — 只列直接子文件夹. |
create_folder创建文件夹 (类似 ``mkdir -p``)。
幂等: 如果路径已经存在, 直接返回该文件夹元数据, 不抛错。创建文件夹 (类似 ``mkdir -p``)。 幂等: 如果路径已经存在, 直接返回该文件夹元数据, 不抛错。
| Paramètre | Type | Description |
|---|---|---|
| folder_path* | string | 要创建的完整路径, 形如 '/工作/项目A/2026'。中间路径不存在时按 mkdir -p 语义递归创建; 末端已存在时直接返回原文件夹 (幂等). |
move_fileprivilégié把文件挪到指定文件夹 (类似 ``mv file /target/dir/``)。
OSS 字节不动, 只改逻辑路径, 操作几毫秒完成。把文件挪到指定文件夹 (类似 ``mv file /target/dir/``)。 OSS 字节不动, 只改逻辑路径, 操作几毫秒完成。
| Paramètre | Type | Description |
|---|---|---|
| file_id* | integer | 要移动的文件 ID |
| target_folder_path* | string | 目标文件夹路径, 形如 '/归档/2026'。'/' 即移到根目录. |
| auto_create_folders | boolean | 目标路径不存在时是否 mkdir -p |
move_folderprivilégié移动整个文件夹 (类似 ``mv /工作/项目A /归档/``)。
会递归更新所有后代的逻辑路径。OSS 字节不动。移动整个文件夹 (类似 ``mv /工作/项目A /归档/``)。 会递归更新所有后代的逻辑路径。OSS 字节不动。
| Paramètre | Type | Description |
|---|---|---|
| folder_path* | string | 要移动的文件夹完整路径, 如 '/工作/项目A' |
| target_parent_path* | string | 新父文件夹路径。'/' 即移到根目录。若也想改名, 用 rename_folder 工具 (不在此工具中合并). |
| auto_create_folders | boolean | 目标父路径不存在时是否 mkdir -p |
rename_folderprivilégié改名 (不动 parent)。改名 (不动 parent)。
| Paramètre | Type | Description |
|---|---|---|
| folder_path* | string | 要改名的文件夹完整路径 |
| new_name* | string | 新名字 (不含 / )。同 parent 下不能重名. |
delete_folderprivilégié删除文件夹 (类似 ``rmdir`` 或 ``rm -r``)。
内部 ready/locked 文件按"软删进回收站"处理, 30 天后才物删 OSS 字节;
用户可在该窗口期内通过回收站恢复。删除文件夹 (类似 ``rmdir`` 或 ``rm -r``)。 内部 ready/locked 文件按"软删进回收站"处理, 30 天后才物删 OSS 字节; 用户可在该窗口期内通过回收站恢复。
| Paramètre | Type | Description |
|---|---|---|
| folder_path* | string | 要删除的文件夹完整路径 |
| recursive | boolean | False (默认): 文件夹必须为空 (无子文件夹 + 无文件), 否则报 folder_not_empty。True: 递归删除整棵子树, 内部所有文件软删进回收站 (类似 rm -rf). |
delete_foldersprivilégié批量删除文件夹 (delete_folder 的批量版)。
逐个删除, 单个失败不影响其余; 返回每个路径的结果。
文件按软删进回收站处理, 30 天内可在网页端恢复。批量删除文件夹 (delete_folder 的批量版)。 逐个删除, 单个失败不影响其余; 返回每个路径的结果。 文件按软删进回收站处理, 30 天内可在网页端恢复。
| Paramètre | Type | Description |
|---|---|---|
| folder_paths* | array | 要删除的文件夹完整路径列表, 单次最多 50 个 |
| recursive | boolean | True (默认): 递归删除每棵子树, 内部文件软删进回收站 (类似 rm -rf)。False: 仅删除空文件夹, 非空的报 folder_not_empty. |
get_folder_tree以 ASCII 树状图返回用户的文件夹/文件层级 (推荐: 用户问“目录结构”时用这个).
返回:
{
"root_path": "/",
"tree": "ASCII 字符串",
"stats": {"folders": N, "files": M, "truncated": bool}
}以 ASCII 树状图返回用户的文件夹/文件层级 (推荐: 用户问“目录结构”时用这个). 返回: { "root_path": "/", "tree": "ASCII 字符串", "stats": {"folders": N, "files": M, "truncated": bool} }
| Paramètre | Type | Description |
|---|---|---|
| folder_path | string | 起始路径, 默认 '/' 即整个用户文件树。 |
| max_depth | integer | 最大渲染深度, 默认 10. 超出深度的节点显示为 '...'. |
| max_nodes | integer | 最大渲染节点数 (文件+文件夹合计). 超出后用 'N more...' 截断. |
| include_files | boolean | True 时把文件也画进树, False 只画目录。 |
scrape_url抓取一个公开网页,返回干净的 Markdown(供 AI 阅读/总结/提取)。
只抓公开网页,禁止内网/保留地址;不生成任何内容,只做抓取与格式转换。抓取一个公开网页,返回干净的 Markdown(供 AI 阅读/总结/提取)。 只抓公开网页,禁止内网/保留地址;不生成任何内容,只做抓取与格式转换。
| Paramètre | Type | Description |
|---|---|---|
| url* | string | 要抓取的网页 URL(http/https,仅限公开网页) |
| only_main_content | boolean | 只提取正文主体,去掉导航/广告/页脚 |
| formats | — | 输出格式子集:markdown / html / text,默认 markdown |
file_read直接返回文本类文件的内容(txt/md/csv/json/日志/代码等),AI 免下载即读。
二进制文件(图片/压缩包/Office 等)请用 download_file;超长文本按 max_bytes 截断并标记。直接返回文本类文件的内容(txt/md/csv/json/日志/代码等),AI 免下载即读。 二进制文件(图片/压缩包/Office 等)请用 download_file;超长文本按 max_bytes 截断并标记。
| Paramètre | Type | Description |
|---|---|---|
| file_id* | integer | 要读取的文本类文件 ID |
| max_bytes | integer | 最多返回字节数(默认 200KB,上限 500KB) |
zip_files把多个文件打包成一个 ZIP,存入文件中转站并返 15 分钟下载 URL。
单包上限 50 个文件 / 200MB 原始体积;同名文件自动加序号。把多个文件打包成一个 ZIP,存入文件中转站并返 15 分钟下载 URL。 单包上限 50 个文件 / 200MB 原始体积;同名文件自动加序号。
| Paramètre | Type | Description |
|---|---|---|
| file_ids* | array | 要打包的文件 ID 列表(1-50 个) |
| zip_name | string | 压缩包文件名(可选,自动补 .zip) |
25 outils sur 25 ont publié une description.
Les noms et descriptions d’outils sont écrits par l’éditeur et affichés tels quels, comme du texte inerte. Ce sont les chaînes qu’un client MCP transmet à un modèle, alors Forge y recherche des motifs d’injection de prompt — tout constat apparaît avec l’analyse de sécurité ci-dessus. « Privilégié » est une correspondance de mot-clé sur le nom de l’outil, pas un audit de ce qu’il fait : un nom anodin peut tout de même tout faire.
Cloud file relay: chunked uploads, folders, share links, inline text reads, ZIP packing.
Les noms cliquables ouvrent l’index Forge de toutes les entrées observées exposant cet outil. Parcourir tous les outils indexés.
Cette entrée ne publie aucun paquet npm : Forge n'a donc pas d'arbre de dépendances pour elle. C'est une lacune de couverture — pas une affirmation qu'elle n'a aucune dépendance.