@arcadeai/mcp-remote

中文文档
0.1.0发布于 2026/07/14SEE LICENSE IN LICENSEES Module近 30 天下载 2766

用于Arcade MCP网关的本地stdio-to-remote Bridge,有管理的OAuth和本地文件可实现化.

中文使用文档
文档目录13 节
  1. 状态
  2. 使用量
  3. 无头主机
  4. 认证
  5. 托肯存储
  6. 其他环境变量
  7. 如何运作
  8. 文件上传
  9. 正在上传到获取 URL 的工具
  10. 文件下载
  11. 文件访问政策
  12. 发展
  13. 许可证

@ arcadeai/ mcp- remote (法语)

当地人 静态 连接Arcade MCP网关.

Arcade为MCP网关服务于可流的HTTP. 一些MCP客户只说 斯特迪奥运输,更重要的是, 局部过程可以工作 云 网关不能:它可以从机器读取文件. 这桥是本地的, 向客户端提交一个 stdio MCP 服务器,并将每个请求转发到 远程网关通过HTTP.

这个解锁的头条能力是 本地文件实际化页:1 模型释放出一个简短的文件路径, 桥会读取字节并取而代之 在请求离开机器之前,由工具返回的文件将被写入 磁盘和交回作为路径。 大基数64blobs 从来没有进入模型的 上下文窗口.

状态

桥将 MCP 流量中继到网关, 通过基于浏览器认证 OAuth (动态客户端注册 + PKCE, 无声刷新), 重写 文件携带工具参数,所以模型通过一个本地路径(上载),以及 实现通过工具返回磁盘的文件,使模型获得路径而不是 a blob (负载)。 在 macOS 上, OAuth 令牌保存在 keychain; 文件 读取由证书目录和可选许可列表守护.

尚未完成: arcade connect --local 融入社会与公众npm 出版(该套件已经编写,但有意未出版).

使用量

把你的MCP客户点到桥上 第一次连接到你的网关 尚未授权, 桥将打开您的浏览器以登录, 缓存 迹象,然后是服务;以后的每一个开始都是沉默的。 (一组) ARCADE_AUTO_LOGIN=0 以禁用并需要明确 login (第一个。 )

提前授权,所以第一个产卵 从来没有等待你,运行一次 在终端中:

npx @arcadeai/mcp-remote login <gateway-slug-or-url>

无论怎样,你的MCP客户端在桥上:

// in your MCP client config (e.g. claude_desktop_config.json)
{
  "mcpServers": {
    "arcade": {
      "command": "npx",
      "args": ["-y", "@arcadeai/mcp-remote", "<gateway-slug-or-url>"]
    }
  }
}

单词要么是网关 弹片 (扩大至 https://api.arcade.dev/mcp/<slug>)或完整的网关 網址。 。 。 .

要签到: npx @arcadeai/mcp-remote logout [<gateway-slug-or-url>] (目标 参数以清除所有缓存的证书.

无头主机

在没有浏览器的机器上添加 --no-browser (或设置) ARCADE_NO_BROWSER=1(中文(简体) ) 改为 login它打印授权 URL 而不是打开浏览器; 打开 任何可以回回调的机器上的 URL,例如 通过 SSH 转发回调端口 :

ssh -L 9908:localhost:9908 you@remote-host

不提供设备代码授权, 因为 Arcade 授权服务器 不支持它.

认证

默认情况下,该桥使用缓存的 OAuth 令牌 login,刷新访问 当它过期的时候,你应当默默地表示。 不需要 API 密钥, 所以项目成员 无法将 API 密钥连接起来 .

或者,通过环境通过无记名证书。 这个 覆盖 缓存登录并方便 CI 。 发动机接收到 Authorization 两种形状:

变量含义
ARCADE_API_KEYAPI密钥. 发送为 Authorization: Bearer <key>。 。 。 .
ARCADE_USER_ID发自内心 ARCADE_API_KEY (同意为 Arcade-User-Id 头曰.
ARCADE_TOKENOAuth 访问符 。 发送为 Authorization: Bearer <token>。 。 。 .

托肯存储

在 macOS 上, OAuth 令牌存储在登录密钥链中(通过 security 工具,所以没有本地模块可编译),和上盘文件 只有非秘密客户注册。 在其它平台上,或何时 ARCADE_USE_KEYCHAIN=0,符号写给 credentials.json (0600) 输入 替换为缓存目录 。 在 Keychain 仍在使用之前编写的文件 工作,并在下一个符号写入时迁移.

其他环境变量

变量默认含义
ARCADE_ENGINE_URLhttps://api.arcade.dev发动机基础用来扩张一发子弹.
ARCADE_OAUTH_CALLBACK_PORT9908循环端口 login 转向.
ARCADE_LOGIN_TIMEOUT_SECONDS600多长时间 login 等唤回.
ARCADE_MCP_REMOTE_DIR~/.arcade/mcp-remote在客户端注册(以及没有键链,代币)被存储的地方(0600).
ARCADE_USE_KEYCHAIN(大型操作系统)设定 0 以在文件中保留指号,而不是 OS 键链.
ARCADE_NO_BROWSER(未设定)设定 1 无头 login (与 --no-browser) (中文(简体) ).
ARCADE_DOWNLOAD_DIR~/Downloads/arcade保存工具返回的文件( 另) --download-dir) (中文(简体) ).
ARCADE_ALLOWED_DIRS(未设定)相隔的底盘上传可能从中读取;未设置是指除证书底盘以外的任何地方.
ARCADE_MAX_FILE_BYTES26214400 (25 MB) (中文(简体) )最大内存上传/下载大小 .
ARCADE_MAX_DOWNLOAD_BYTES262144000 (250甲基溴)Max 组装了被拆卸的负载大小 .
ARCADE_DOWNLOAD_CHUNKED打开设定 0 以禁用被块化的下载组件.
ARCADE_PUBLIC_UPLOAD_BASE(未设定)允许 URL- faching 工具接受本地文件路径的公用基址 .
ARCADE_UPLOAD_PORT9909本地端口上传主机绑定( 在您的地道后) .
MCP_REMOTE_LOG_LEVELinfodebug | info | warn | error。 。 。 .

所有诊断都写给 标准; stdout 只携带 MCP 协议 交通,如斯地迪奥运输需要.

如何运作

MCP client  <--stdio-->  @arcadeai/mcp-remote  <--Streamable HTTP-->  Arcade gateway

该桥作为MCP客户端连接出入口,读取其 初始化期间的能力和身份,然后提出入境 镜像他们的Stdio服务器. 大多数请求和通知通过 未转换; tools/list 财务报告和审定财务报表 tools/call 是文件参数的接合符 重写(上载)并实现返回文件(下载).

对于认证,出局客户端携带OAuth无记名符号. 在401个SDK上 跟踪从网关到授权服务器的 RFC 9728 发现, 动态注册公共客户端(PKCE S256),并在 login驱动器 浏览器+回放授权码流。 在服务模式下,它只使用过 缓存的符号( 静默地重现); 它从不打开浏览器 .

文件上传

当一个工具将一个文件取为字节时,模型就不应该看到或产生碱基64. 打开 tools/list 代理检测文件载运参数,并在 tools/call, (中文(简体) ), 本地读取文件,并在转发前替换其内容。 模型 只发出一条短的本地路径.

检测偏好精度; 一个模糊的参数未被更改( 今天的) 行为,基数64通过模型:

  • 密码登记 用于已知形状: Gmail attachments[].source (项目 已接受一个 file:// URI,它变成一个 data: URI,与 filename编号 :mime_type 从文件中填入)和基数64工作手册/附件 参数(作为局部路径参数提交模型).
  • 防血压 对于新工具:字符串参数仅在 它的名字看起来像字节字段( name*_base64, (中文(简体) ), file_content*, (中文(简体) ), file_bytes, (中文(简体) ), attachment*(中文(简体) ) 财务报告和审定财务报表 其描述带有基质64/二进制信号. 这个 排除纯文本 content 参数.
  • 明确标记: 一个参数 contentEncoding: base64 被视为 权威.

通过一条绝对路径或一条 file:// URI (英语). 读取最多25 MB 的文件( 覆盖) 与 ARCADE_MAX_FILE_BYTES页:1.

正在上传到获取 URL 的工具

有些工具完全不接受字节: 公开 URL 关于 网关获取服务器侧( 例如) GoogleDrive_UploadFile是因为 source_url, (中文(简体) ), Resend_SendEmail 附录, Fireflies_UploadRecording) (中文(简体) ). 远程网关 无法在您的机器上找到文件, 因此此选项是: set ARCADE_PUBLIC_UPLOAD_BASE 到到达此机器的 URL( SSH 隧道或 a 一个 ngrok编号 :cloudflared 隧道到 ARCADE_UPLOAD_PORT,默认为 99.09. 用这个 设置, 您可以通过这些工具的本地路径, 而桥头主控文件 在一个不可理解的符号下并替换公共 URL; 本地服务器 绑定 127.0.0.1 只是,所以除了通过你的地道之外,没有其他东西暴露出来. 没有设置, 传出本地路径返回一个明确的错误解释如何 启用托管.

文件下载

当一个工具返回一个文件时, 代理保存到下载目录 (单位:千美元)~/Downloads/arcade/ 默认,或 --download-dir 编号 : ARCADE_DOWNLOAD_DIR(中文(简体) ) 并用本地路径取而代之,所以字节永远无法到达模型的 上下文。 它在工具结果中处理三个形状:

  • (单位:千美元) resource_link URL——下载(最有效,未经认证)并保存;
  • (单位:千美元) data:<mime>;base64,... 结果中的 URI 任意位置(文本块或 结构化领域;
  • 字节外观字段名下的基准64值,扩展已解决 从兄弟文件名,然后是魔法字节,然后是 .bin· ;
  • a 一个 http(s) 媒体/文件字段下的 URL(image_url, (中文(简体) ), file_url, (中文(简体) ), download_url一个赤裸的 image编号 :photo,一个巢 *_image_url),该词 代理获取并保存 。 页面和配置 URL 被故意排除在外, 所以 代理服务器不获取工具返回的每个 URL.

一些工具返回一个大文件作为“用块抓我”的引用,而不是 内含字节( Google 驱动器) DownloadFile 3⁄4 ̄ ̧漯B DownloadFileChunk) (中文(简体) ). 代理识别出这个形状, 将每个块拉入 网关,将其流入磁盘上的一个文件,并返回相同的本地路径 结果是一个小文件的直接下载得到,所以模型只发出一个呼叫 从来没有看到块。 集成下载封顶 ARCADE_MAX_DOWNLOAD_BYTES (250 MB 默认值).

每个工具的小型登记册增加一个文件编制者,其产出是在 a 下到达的 字段丢失通用规则(例如 Figma_ExportImage, (中文(简体) ), Firecrawl_ScrapeUrl, (中文(简体) ), GoogleSlides_GetSlideThumbnail); 附带图像如 缩略图和上市缩略图被故意留下。 当文件 URL 是 在网关自己的主机上,它与携带者一起取出;其他主机都是 取出未经认证的,所以信使从不漏出. 供应商-私人附件 因此,URL(微软图形、Zendesk、相通、线性)不能是 由桥梁实现,因为它持有的是Arcade标志,而不是提供者的; 他们需要一个返回字节的网关边工具.

任何代理机构无法自信地识别的东西都未受影响. 设定 ARCADE_DOWNLOAD_MATERIALIZE=0 以禁用全部内容, ARCADE_DOWNLOAD_LINKS=0 停止获取 resource_link 和媒体 URL,或 ARCADE_DOWNLOAD_CHUNKED=0 以禁用被块化的下载组件.

文件访问政策

上传读取被限制. 内置块列表总是拒绝认证 目录( e)~/.ssh, (中文(简体) ), ~/.aws, (中文(简体) ), ~/.gnupg, (中文(简体) ), ~/.kube, (中文(简体) ), ~/.docker, (中文(简体) ), ~/.config/gcloud,而代理机本身 ~/.arcade),并解决了符号链接 在检查之前,链接不能走私读取它。 设定 ARCADE_ALLOWED_DIRS (结肠分离)附加限制是指具体的根源。 下载为 仅在下载目录内写入; 减少网关提供的文件名 到它的底名,所以它不能逃脱.

发展

npm install
npm run build     # tsc -> dist/
npm test          # unit + end-to-end passthrough against an in-process gateway

端到端测试站出真正的服务器在进程中:一个产出已建成的 童年时的桥梁 并声称初始化, tools/list, (中文(简体) ), tools/call,而错误传播 全部横跨桥面 模拟授权服务器及安全网关以进行 OAuth 完整登录 (DCR + PKCE +回放),无声服务,和无声信使刷新;第三盘 桥对接回声网关,确认基数64参数被重写 到路径和文件字节( raw base64和 data: URIs) 之前替换为 转发;和 第四个确认文件通过工具返回(data: 核电站, base64 字段,以及 resource_link URL)被保存到磁盘并交回为 路径。 单元测试覆盖 MIME 的打字, 证书店的密钥链拆分( 有 注入后端,所以真正的键链从未被触碰),流出 下载大小封顶,以及被块-下载装配(带有一个被注入的工具呼叫器, 因此不需要网关.

许可证

专有-Arcade软件许可协议 v1.0. 见 自由主义。 。 。 . 版权 (c) 2025 Arcade Technologies, Inc. 版权所有.

版本与发布记录

@arcadeai/mcp-remote 共发布 1 个版本,首次发布于 2026/07/14;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.0latest2026/07/143 个月前

关于 @arcadeai/mcp-remote 的常见问题

@arcadeai/mcp-remote 是什么?

用于Arcade MCP网关的本地stdio-to-remote Bridge,有管理的OAuth和本地文件可实现化.

如何安装 @arcadeai/mcp-remote?

在项目目录运行 npm install @arcadeai/mcp-remote,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-remote,可以用 npx mcp-remote 直接运行。

@arcadeai/mcp-remote 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/arcadeai__mcp-remote 是否存在。

@arcadeai/mcp-remote 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arcadeai/mcp-remote 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@arcadeai/mcp-remote 可以商用吗?

@arcadeai/mcp-remote 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@arcadeai/mcp-remote 的下载量有多少?

根据 npm 官方下载统计,@arcadeai/mcp-remote 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,766 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arcadeai/mcp-remote 还在维护吗?

最新版本 0.1.0 发布于 2026/07/14(3 个月前);至今共发布 1 个版本,其中过去 12 个月发布了 1 个;首次发布于 2026/07/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。