@ag-ui/mcp-middleware

中文文档
0.0.2发布于 2026/09/12MITTypeScriptESM + CJS构建来源已验证近 30 天下载 111.2万

AG-UI middleware that connects an agent run to one or more MCP servers. It lists each server's tools, injects them into the run, executes the resulting tool calls server-side, and loops the agent until no MCP tool calls

原始使用文档
文档目录3 节
  1. Usage
  2. Behavior
  3. Configuration

MCP Middleware

AG-UI middleware that connects an agent run to one or more MCP servers. It lists each server's tools, injects them into the run, executes the resulting tool calls server-side, and loops the agent until no MCP tool calls remain — all presented to the consumer as a single, continuous run.

Usage

import { MCPMiddleware } from "@ag-ui/mcp-middleware";

agent.use(
  new MCPMiddleware([
    {
      type: "http",
      url: "https://example.com/mcp",
      serverId: "example",
      headers: { Authorization: "Bearer <token>" },
    },
  ]),
);

Behavior

  • Tool injection. Every tool reported by a server is exposed to the agent namespaced as mcp__{serverId}__{tool} (sanitized to [a-zA-Z0-9_-], truncated to 64 characters, and de-duplicated with a _N suffix on collision). serverId defaults to server{index} when omitted. Listing happens once per middleware instance and is cached.
  • Execution loop. When a finished run leaves MCP tool calls open, the middleware executes them (in parallel), emits a TOOL_CALL_RESULT for each, and — if nothing else is open — starts another run with the results appended. If non-MCP tool calls remain open (e.g. frontend tools), it stops and hands off to the frontend. Tool calls that don't target an injected MCP tool are never touched.
  • Single-run presentation. The whole multi-iteration loop looks like one run to the consumer: the first RUN_STARTED is forwarded, continuation RUN_STARTED events are suppressed, and a single terminal RUN_FINISHED is flushed only when the loop stops.
  • Runaway guard. maxIterations (default 32) caps the number of tool-execution rounds. Values are clamped to a positive integer.

Configuration

interface MCPClientConfig {
  type: "http" | "sse";
  url: string;
  serverId?: string;
  headers?: Record<string, string>;
}

interface MCPMiddlewareOptions {
  maxIterations?: number; // default 32
}

Per-request auth is supported by constructing the middleware per request with headers set — they're stamped on outbound MCP requests via the transport's requestInit.

SSE caveat: for the sse transport, headers only apply to the POST channel; the SSE event stream uses eventSourceInit. Prefer the http (streamable) transport when headers must cover all traffic.

版本与发布记录

@ag-ui/mcp-middleware 共发布 2 个版本,首次发布于 2026/06/01;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.2latest2026/09/121 个月前
0.0.12026/06/015 个月前

关于 @ag-ui/mcp-middleware 的常见问题

@ag-ui/mcp-middleware 是什么?

AG-UI middleware that connects an agent run to one or more MCP servers. It lists each server's tools, injects them into the run, executes the resulting tool calls server-side, and loops the agent until no MCP tool calls

如何安装 @ag-ui/mcp-middleware?

在项目目录运行 npm install @ag-ui/mcp-middleware,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:rxjs(7.8.1)、@ag-ui/client(>=0.0.40)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@ag-ui/mcp-middleware 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ag-ui/mcp-middleware 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ag-ui/mcp-middleware 可以商用吗?

@ag-ui/mcp-middleware 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ag-ui/mcp-middleware 的下载量有多少?

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

@ag-ui/mcp-middleware 还在维护吗?

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