Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:77ce1b743526624a1afdff987bf971cc0a5f7c357f3ebdb2412b05a31d5fdf77
What it is
What a remote MCP server returned when asked what it offers: 25 tools

The blob, as servednamed by its sha256

{ "instructions": "stagenth 旗下「文件中转」MCP 服务。客户端通过 Authorization: Bearer <API_TOKEN> 认证。每个工具在对应用户的上下文中执行,用户间数据隔离。提供文件管理(6)+ 上传/下载(2)+ 分享互通(2)+ Excel→图表(2:excel_inspect / excel_to_chart)等工具。", "tools": [ { "description": "创建文件夹 (类似 ``mkdir -p``)。\n\n 幂等: 如果路径已经存在, 直接返回该文件夹元数据, 不抛错。\n ", "inputSchema": { "properties": { "folder_path": { "description": "要创建的完整路径, 形如 '/工作/项目A/2026'。中间路径不存在时按 mkdir -p 语义递归创建; 末端已存在时直接返回原文件夹 (幂等).", "title": "Folder Path", "type": "string" } }, "required": [ "folder_path" ], "title": "create_folderArguments", "type": "object" }, "name": "create_folder", "outputSchema": null }, { "description": "为文件生成一个分享链接。", "inputSchema": { "properties": { "expires_in_seconds": { "anyOf": [ { "minimum": 60, "type": "integer" }, { "type": "null" } ], "default": null, "description": "多少秒后过期;不传=永久", "title": "Expires In Seconds" }, "file_id": { "description": "要分享的文件 ID", "title": "File Id", "type": "integer" }, "max_downloads": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "type": "null" } ], "default": null, "description": "最多下载次数", "title": "Max Downloads" }, "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "可选密码", "title": "Password" } }, "required": [ "file_id" ], "title": "create_share_linkArguments", "type": "object" }, "name": "create_share_link", "outputSchema": null }, { "description": "删除一个文件。", "inputSchema": { "properties": { "file_id": { "description": "文件 ID", "title": "File Id", "type": "integer" } }, "required": [ "file_id" ], "title": "delete_fileArguments", "type": "object" }, "name": "delete_file", "outputSchema": null }, { "description": "批量删除文件(移入回收站,30 天内可在网页端恢复)。\n\n 逐个删除,单个失败不影响其余;返回每个 ID 的结果。\n ", "inputSchema": { "properties": { "file_ids": { "description": "要删除的文件 ID 列表(list_files 可查),单次最多 100 个", "items": { "type": "integer" }, "title": "File Ids", "type": "array" } }, "required": [ "file_ids" ], "title": "delete_filesArguments", "type": "object" }, "name": "delete_files", "outputSchema": null }, { "description": "删除文件夹 (类似 ``rmdir`` 或 ``rm -r``)。\n\n 内部 ready/locked 文件按\"软删进回收站\"处理, 30 天后才物删 OSS 字节;\n 用户可在该窗口期内通过回收站恢复。\n ", "inputSchema": { "properties": { "folder_path": { "description": "要删除的文件夹完整路径", "title": "Folder Path", "type": "string" }, "recursive": { "default": false, "description": "False (默认): 文件夹必须为空 (无子文件夹 + 无文件), 否则报 folder_not_empty。True: 递归删除整棵子树, 内部所有文件软删进回收站 (类似 rm -rf).", "title": "Recursive", "type": "boolean" } }, "required": [ "folder_path" ], "title": "delete_folderArguments", "type": "object" }, "name": "delete_folder", "outputSchema": null }, { "description": "批量删除文件夹 (delete_folder 的批量版)。\n\n 逐个删除, 单个失败不影响其余; 返回每个路径的结果。\n 文件按软删进回收站处理, 30 天内可在网页端恢复。\n ", "inputSchema": { "properties": { "folder_paths": { "description": "要删除的文件夹完整路径列表, 单次最多 50 个", "items": { "type": "string" }, "title": "Folder Paths", "type": "array" }, "recursive": { "default": true, "description": "True (默认): 递归删除每棵子树, 内部文件软删进回收站 (类似 rm -rf)。False: 仅删除空文件夹, 非空的报 folder_not_empty.", "title": "Recursive", "type": "boolean" } }, "required": [ "folder_paths" ], "title": "delete_foldersArguments", "type": "object" }, "name": "delete_folders", "outputSchema": null }, { "description": "下载一个文件, 按 MCP spec 2025-06-18 的原生 content 类型返回。\n\n 根据文件 category 自动选择最合适的 MCP content block 类型:\n - image (jpg/png/webp/...) → content[0].type = \"image\"\n (base64 + mimeType; AI 客户端原生显示图片, 多模态 LLM 可直接看图)\n - audio (mp3/wav/...) → content[0].type = \"audio\"\n (base64 + mimeType; AI 客户端原生播放, 多模态模型可直接听)\n - text/code + as_text=true → content[0].type = \"text\"\n (UTF-8 字符串; 适合代码/文档阅读分析)\n - 其他所有 (video / document / archive / 大文本 / ...)\n → content[0].type = \"resource_link\"\n (15 分钟有效的 URL + mimeType + size; 签名自带, 无需 Authorization;\n AI 用 bash curl 拉字节, 或提示用户点链接在浏览器下载)\n\n 【限速】所有分支都遵守会员档位的 download_speed_bytes_per_sec 设定:\n - image / audio / text 分支走 astream_file(throttle=...) 读字节再 base64\n - resource_link 分支: 链接指向 /api/v1/mcp-download/{token}, 目标路由\n 也用同一套 astream_file + throttle 算法 (详见 api/v1/mcp_download.py)\n\n 【零副作用】不再使用 share_service.create_share —— MCP 下载不会在你的\n 账号里留下任何公开分享记录, 不进分享面板, 不计分享审计。\n ", "inputSchema": { "properties": { "as_text": { "default": false, "description": "【仅文本/代码文件】直接返 UTF-8 字符串文本内容。图片/音频等非文本文件不受此参数影响(它们按 MCP 原生 content type 返回)。", "title": "As Text", "type": "boolean" }, "file_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "File Id" }, "file_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "File Uuid" } }, "title": "download_fileArguments", "type": "object" }, "name": "download_file", "outputSchema": null }, { "description": "通过分享链接下载文件(无需是文件拥有者)。\n\n 适合别人发给你一个 /s/<uuid> 链接,你想让 AI 直接读取其内容的场景。\n 不会占用你的存储配额。下载计入分享者的月流量。\n ", "inputSchema": { "properties": { "as_text": { "default": false, "description": "对文本/代码文件直接返回字符串,不做 base64", "title": "As Text", "type": "boolean" }, "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "分享密码,如有", "title": "Password" }, "share_uuid": { "description": "分享链接的 UUID(分享 URL 最后一段,如 /s/<uuid>)", "title": "Share Uuid", "type": "string" } }, "required": [ "share_uuid" ], "title": "download_shared_fileArguments", "type": "object" }, "name": "download_shared_file", "outputSchema": null }, { "description": "直接返回文本类文件的内容(txt/md/csv/json/日志/代码等),AI 免下载即读。\n\n 二进制文件(图片/压缩包/Office 等)请用 download_file;超长文本按 max_bytes 截断并标记。\n ", "inputSchema": { "properties": { "file_id": { "description": "要读取的文本类文件 ID", "title": "File Id", "type": "integer" }, "max_bytes": { "default": 204800, "description": "最多返回字节数(默认 200KB,上限 500KB)", "maximum": 512000, "minimum": 1024, "title": "Max Bytes", "type": "integer" } }, "required": [ "file_id" ], "title": "file_readArguments", "type": "object" }, "name": "file_read", "outputSchema": null }, { "description": "查询单个文件详情。file_id 与 file_uuid 提供其一即可。", "inputSchema": { "properties": { "file_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "文件 ID", "title": "File Id" }, "file_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "文件 UUID(二选一)", "title": "File Uuid" } }, "title": "get_file_infoArguments", "type": "object" }, "name": "get_file_info", "outputSchema": null }, { "description": "以 ASCII 树状图返回用户的文件夹/文件层级 (推荐: 用户问“目录结构”时用这个).\n\n 返回:\n {\n \"root_path\": \"/\",\n \"tree\": \"ASCII 字符串\",\n \"stats\": {\"folders\": N, \"files\": M, \"truncated\": bool}\n }\n ", "inputSchema": { "properties": { "folder_path": { "default": "/", "description": "起始路径, 默认 '/' 即整个用户文件树。", "title": "Folder Path", "type": "string" }, "include_files": { "default": true, "description": "True 时把文件也画进树, False 只画目录。", "title": "Include Files", "type": "boolean" }, "max_depth": { "default": 10, "description": "最大渲染深度, 默认 10. 超出深度的节点显示为 '...'.", "maximum": 32, "minimum": 1, "title": "Max Depth", "type": "integer" }, "max_nodes": { "default": 300, "description": "最大渲染节点数 (文件+文件夹合计). 超出后用 'N more...' 截断.", "maximum": 2000, "minimum": 10, "title": "Max Nodes", "type": "integer" } }, "title": "get_folder_treeArguments", "type": "object" }, "name": "get_folder_tree", "outputSchema": null }, { "description": "查看当前用户的存储配额使用情况。", "inputSchema": { "properties": {}, "title": "get_user_quotaArguments", "type": "object" }, "name": "get_user_quota", "outputSchema": null }, { "description": "把别人分享的文件导入到当前登录用户的文件列表。\n\n 等价于「下载后再上传」,但服务端直接从源文件拷贝字节流、仍走配额/白名单/秒传检查,\n 所以比本地往返更快、也不消耗带宽。\n 下载量计入分享者的月流量;存储占用计入当前用户的配额。\n ", "inputSchema": { "properties": { "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "分享密码,如有", "title": "Password" }, "share_uuid": { "description": "分享链接的 UUID", "title": "Share Uuid", "type": "string" } }, "required": [ "share_uuid" ], "title": "import_shared_fileArguments", "type": "object" }, "name": "import_shared_file", "outputSchema": null }, { "description": "列出当前用户的文件 (默认递归遍历整个文件夹层级).\n\n 返回值同时附带 ``subfolders``(直接子文件夹列表) 与 ``has_subfolders``\n 提示, 帮助 AI 感知层级结构。若用户问“目录结构 / 树”, 直接调\n ``get_folder_tree`` 拿到 ASCII 树状图更直观。\n\n 每个 item 都有 ``folder_path`` 字段标注它的实际归属, 同名文件不会\n 因递归而混淆。\n ", "inputSchema": { "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "按分类过滤:audio/video/image/text/code/document/archive/other", "title": "Category" }, "folder_path": { "default": "/", "description": "目标文件夹路径, 形如 '/' 或 '/工作/项目A'。默认 '/' 列根目录。用 list_folders 探查可用路径。", "title": "Folder Path", "type": "string" }, "page": { "default": 1, "minimum": 1, "title": "Page", "type": "integer" }, "recursive": { "default": true, "description": "True (默认) = 深度遍历, 返回该路径及所有后代文件夹下的全部文件; False = 仅列直接子文件 (类似 'ls'). 用户问“都有什么文件”时一律保持 True.", "title": "Recursive", "type": "boolean" }, "search": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "按文件名或描述搜索", "title": "Search" }, "size": { "default": 20, "maximum": 100, "minimum": 1, "title": "Size", "type": "integer" } }, "title": "list_filesArguments", "type": "object" }, "name": "list_files", "outputSchema": null }, { "description": "列出文件夹 (类似 ``ls -d`` 只看目录)。\n\n 路径不存在抛 folder_not_found。要列文件用 list_files。\n ", "inputSchema": { "properties": { "folder_path": { "default": "/", "description": "父文件夹路径, 默认 '/' 即根目录。返回直接子文件夹列表 (不含其文件).", "title": "Folder Path", "type": "string" }, "recursive": { "default": false, "description": "True 时返回整棵子树 (深度遍历)。默认 False — 只列直接子文件夹.", "title": "Recursive", "type": "boolean" } }, "title": "list_foldersArguments", "type": "object" }, "name": "list_folders", "outputSchema": null }, { "description": "把文件挪到指定文件夹 (类似 ``mv file /target/dir/``)。\n\n OSS 字节不动, 只改逻辑路径, 操作几毫秒完成。\n ", "inputSchema": { "properties": { "auto_create_folders": { "default": true, "description": "目标路径不存在时是否 mkdir -p", "title": "Auto Create Folders", "type": "boolean" }, "file_id": { "description": "要移动的文件 ID", "title": "File Id", "type": "integer" }, "target_folder_path": { "description": "目标文件夹路径, 形如 '/归档/2026'。'/' 即移到根目录.", "title": "Target Folder Path", "type": "string" } }, "required": [ "file_id", "target_folder_path" ], "title": "move_fileArguments", "type": "object" }, "name": "move_file", "outputSchema": null }, { "description": "移动整个文件夹 (类似 ``mv /工作/项目A /归档/``)。\n\n 会递归更新所有后代的逻辑路径。OSS 字节不动。\n ", "inputSchema": { "properties": { "auto_create_folders": { "default": true, "description": "目标父路径不存在时是否 mkdir -p", "title": "Auto Create Folders", "type": "boolean" }, "folder_path": { "description": "要移动的文件夹完整路径, 如 '/工作/项目A'", "title": "Folder Path", "type": "string" }, "target_parent_path": { "description": "新父文件夹路径。'/' 即移到根目录。若也想改名, 用 rename_folder 工具 (不在此工具中合并).", "title": "Target Parent Path", "type": "string" } }, "required": [ "folder_path", "target_parent_path" ], "title": "move_folderArguments", "type": "object" }, "name": "move_folder", "outputSchema": null }, { "description": "改名 (不动 parent)。", "inputSchema": { "properties": { "folder_path": { "description": "要改名的文件夹完整路径", "title": "Folder Path", "type": "string" }, "new_name": { "description": "新名字 (不含 / )。同 parent 下不能重名.", "maxLength": 255, "minLength": 1, "title": "New Name", "type": "string" } }, "required": [ "folder_path", "new_name" ], "title": "rename_folderArguments", "type": "object" }, "name": "rename_folder", "outputSchema": null }, { "description": "抓取一个公开网页,返回干净的 Markdown(供 AI 阅读/总结/提取)。\n\n 只抓公开网页,禁止内网/保留地址;不生成任何内容,只做抓取与格式转换。\n ", "inputSchema": { "properties": { "formats": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "输出格式子集:markdown / html / text,默认 markdown", "title": "Formats" }, "only_main_content": { "default": true, "description": "只提取正文主体,去掉导航/广告/页脚", "title": "Only Main Content", "type": "boolean" }, "url": { "description": "要抓取的网页 URL(http/https,仅限公开网页)", "title": "Url", "type": "string" } }, "required": [ "url" ], "title": "scrape_urlArguments", "type": "object" }, "name": "scrape_url", "outputSchema": null }, { "description": "在当前用户的所有文件中搜索。", "inputSchema": { "properties": { "limit": { "default": 20, "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" }, "query": { "description": "搜索关键词(文件名或描述)", "title": "Query", "type": "string" } }, "required": [ "query" ], "title": "search_filesArguments", "type": "object" }, "name": "search_files", "outputSchema": null }, { "description": "上传单个分片 (第 2 步 / 共 3 步)。\n\n 可并发调用, 后端内部会记录已上传索引。网络抖动重试同一 chunk_index\n 安全 (服务端幂等写临时块)。\n ", "inputSchema": { "properties": { "chunk_index": { "description": "分片索引 (0-based), 最后一片索引 = total_chunks-1", "minimum": 0, "title": "Chunk Index", "type": "integer" }, "data_base64": { "description": "本片字节的 base64 编码。每片大小应等于 upload_init 返回的 chunk_size, 最后一片可能短。单次调用建议 <12MB base64 (约 8-9MB 原字节)。", "title": "Data Base64", "type": "string" }, "session_uuid": { "description": "upload_init 返回的会话 UUID", "title": "Session Uuid", "type": "string" } }, "required": [ "session_uuid", "chunk_index", "data_base64" ], "title": "upload_chunkArguments", "type": "object" }, "name": "upload_chunk", "outputSchema": null }, { "description": "合并所有分片 (第 3 步 / 共 3 步)。\n\n 两种路径:\n - 直传 (推荐, shim 走这条): parts 带齐所有 (part_number, etag),\n 后端调 OSS CompleteMultipartUpload 服务端合并, 不耗 ECS 内存/带宽。\n - 中转 (兼容老 shim / 网页端): 不传 parts, 从临时分片合并。\n\n 返回最终 file 元数据 (id, uuid, filename, size_bytes, sha256, ...).\n ", "inputSchema": { "properties": { "parts": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "【OSS 直传模式】每片对应的 (part_number, etag)。如: [{\"part_number\": 1, \"etag\": \"abc...\"}, ...]。shim 在 PUT 每片到 OSS 后从响应头拿到 ETag, 传回来。传了 parts 走 OSS CompleteMultipartUpload 合并 (字节不经 ECS)。不传则走老路: 从 upload_chunk 落地的临时片合并 (中转模式)。", "title": "Parts" }, "session_uuid": { "description": "upload_init 返回的会话 UUID", "title": "Session Uuid", "type": "string" } }, "required": [ "session_uuid" ], "title": "upload_completeArguments", "type": "object" }, "name": "upload_complete", "outputSchema": null }, { "description": "上传一个文件(base64 形式)到用户的文件中转站。\n\n 仅在用户明确要求把某个文件存入中转站 / 传输到其他设备 / 分享给他人时调用。\n 上传会占用用户的付费存储配额并按传输量扣 credit —— 不要主动上传\n 中间结果、日志、临时文件或用户没有要求保存的命令输出。\n\n 用 init + 单次分片 + complete 的方式复用现有服务。\n 适合中小文件(< 20MB)。超大文件请使用 Web 端分片上传。\n\n 新增 folder_path: 上传到指定文件夹, 默认根目录 \"/\"。\n ", "inputSchema": { "properties": { "auto_create_folders": { "default": true, "description": "路径不存在时是否自动 mkdir -p, 默认 True (类似 Linux mkdir -p)", "title": "Auto Create Folders", "type": "boolean" }, "content_base64": { "description": "文件内容的 base64 编码。较大文件建议分多次调用前先咨询管理员。", "title": "Content Base64", "type": "string" }, "filename": { "description": "文件名(含扩展名)", "title": "Filename", "type": "string" }, "folder_path": { "default": "/", "description": "目标文件夹路径。'/' = 根目录 (默认); '/工作/2026' = 嵌套路径。auto_create_folders=True 时路径不存在会 mkdir -p; auto_create_folders=False 时不存在抛错。", "title": "Folder Path", "type": "string" }, "mime_type": { "default": "", "title": "Mime Type", "type": "string" } }, "required": [ "filename", "content_base64" ], "title": "upload_fileArguments", "type": "object" }, "name": "upload_file", "outputSchema": null }, { "description": "发起分片上传会话 (第 1 步 / 共 3 步)。\n\n 返回:\n - instant=true 时, file 字段是已秒传的文件元数据, 直接用即可\n - instant=false 时, 用 session_uuid + 服务端给的 chunk_size/total_chunks\n 逐片调 upload_chunk, 最后调 upload_complete。\n ", "inputSchema": { "properties": { "auto_create_folders": { "default": true, "description": "路径不存在时是否自动 mkdir -p", "title": "Auto Create Folders", "type": "boolean" }, "filename": { "description": "文件名(含扩展名)", "title": "Filename", "type": "string" }, "folder_path": { "default": "/", "description": "目标文件夹路径, 默认 '/' 即根目录。auto_create_folders=True 时会按 mkdir -p 语义自动建。", "title": "Folder Path", "type": "string" }, "mime_type": { "default": "", "title": "Mime Type", "type": "string" }, "sha256": { "description": "整个文件的 sha256 (64 位小写十六进制); 服务端用这个做秒传命中", "maxLength": 64, "minLength": 64, "title": "Sha256", "type": "string" }, "total_size_bytes": { "description": "整个文件的字节数", "minimum": 1, "title": "Total Size Bytes", "type": "integer" } }, "required": [ "filename", "total_size_bytes", "sha256" ], "title": "upload_initArguments", "type": "object" }, "name": "upload_init", "outputSchema": null }, { "description": "把多个文件打包成一个 ZIP,存入文件中转站并返 15 分钟下载 URL。\n\n 单包上限 50 个文件 / 200MB 原始体积;同名文件自动加序号。\n ", "inputSchema": { "properties": { "file_ids": { "description": "要打包的文件 ID 列表(1-50 个)", "items": { "type": "integer" }, "title": "File Ids", "type": "array" }, "zip_name": { "default": "", "description": "压缩包文件名(可选,自动补 .zip)", "title": "Zip Name", "type": "string" } }, "required": [ "file_ids" ], "title": "zip_filesArguments", "type": "object" }, "name": "zip_files", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:77ce1b743526624a1afdff987bf971cc0a5f7c357f3ebdb2412b05a31d5fdf77 | sha256sum