关于 lunge
lunge 是供 AI Agent 调用的 MCP 服务,可执行和测试 REST、GraphQL、WebSocket 与 SSE 请求。它支持临时请求及可复用的 YAML 或 JSON 集合,并压缩响应以节省模型上下文。
主要功能
- 01支持 REST、GraphQL、WebSocket 和 SSE
- 02断言与值提取
- 03可复用的 YAML 和 JSON 集合
- 04摘要化响应以节省上下文
- 05可通过句柄获取完整负载
适用场景
- 01通过 AI Agent 发送 API 请求
- 02使用断言测试端点
- 03保存并重跑请求集合
MCP 相关
它将 API 执行与测试作为 MCP 工具提供给兼容的 AI Agent。README 描述了本地 stdio 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
22收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| env | string | 否 | 用于变量解析的环境名称。 |
| url | string | 是 | 完整 URL。可包含 {{variables}}。 |
| auth | object | 否 | |
| auth.in | enum | 否 | header | query |
| auth.key | string | 否 | |
| auth.type | enum | 是 | bearer | basic | apikey |
| auth.token | string | 否 | |
| auth.value | string | 否 | |
| auth.password | string | 否 | |
| auth.username | string | 否 | |
| body | any | 否 | 请求正文(对象表示 JSON,字符串表示文本)。 |
| query | object | 否 | |
| assert | array | 否 | 例如:[{status:200},{jsonpath:'$.x',equals:1},{timeMs:{lt:500}}]。 |
| method | string | 否 | HTTP 方法(既定値:GET)。 |
| extract | object | 否 | 捕获变量:{ token: '$.token' }。之后可通过 {{token}} 使用。 |
| headers | object | 否 | |
| bodyType | enum | 否 | 默认值为 json。json | form | text | raw |
| timeoutMs | integer | 否 | |
| verbosity | enum | 否 | summary(默认,节省 Token)、headers 或 full。设置 extract 时会自动降级为 summary。summary | headers | full |
| followRedirects | boolean | 否 |
详细介绍
lunge
一款原生面向 Agent 的高级 API 客户端——可从任何支持 MCP 的 AI Agent 执行和测试 REST、GraphQL、WebSocket、SSE 请求,并将在后续支持 gRPC。无需 GUI,无需手动点击,也无需笨重的桌面应用。可以把它看作专为 Agent 打造的高级 curl。
在 AI 编码 Agent 时代,它是 Postman/Bruno 的轻量、节省令牌的替代方案。Agent 直接调用工具;无需人工参与,也不必为臃肿的功能集买单。
为什么要做这个项目
| Postman/Bruno 的痛点 | lunge 的做法 |
|---|---|
| 需要人工在 GUI 中点击 | 原生面向 Agent:所有操作都是 MCP 工具调用 |
| Postman 笨重,企业功能需要付费 | 小巧、开源的单一本地二进制文件 + 轻量 MCP 层 |
| 冗长的响应会撑爆大模型的上下文窗口 | Rust 核心会先对输出进行摘要和压缩,再将其发送给 Agent |
| 集合被锁定在专有格式中 | 纯 YAML/JSON 文件,适合使用 git 管理 |
| 每种协议都需要单独的工具 | 一个服务支持 REST/GraphQL/WS/SSE/gRPC |
设计支柱
- 原生面向 Agent - 专为大模型工具调用设计,而非面向人工操作的 UI。
- 节省令牌 - 每个响应都会经过过滤、截断和摘要。完整负载会写入磁盘,并通过句柄引用,从而保持较小的上下文。
- 快速且可移植 - Rust 核心负责执行、协议和摘要,并通过 napi-rs 暴露给轻量 TypeScript MCP 层。
- 兼顾临时请求与复用 - Agent 既可以发起一次性请求,也可以创建、保存并重新运行以文件形式存储的声明式集合。
文档
| 文档 | 内容 |
|---|---|
| architecture.md | 系统设计、Rust/TS 分工、模块布局、流式处理策略、FFI 边界 |
| features.md | 按协议划分的完整功能列表,以及跨领域功能(身份验证、变量、断言、令牌优化器) |
| mcp-tools.md | MCP 工具接口:名称、输入、输出和示例 |
| collection-format.md | 声明式 YAML/JSON 测试/集合格式 |
| roadmap.md | 从脚手架到 gRPC 和 CI 的分阶段交付计划 |
已确定的决策
- 技术栈:通过 napi-rs 构建 Rust 核心 + TypeScript MCP 层(
@modelcontextprotocol/sdk)。 - 分发方式:通过 stdio 传输的本地开发工具(供 Cursor/Windsurf/Claude Desktop 使用)。
- 测试定义:既支持 Agent 临时调用,也支持持久化的声明式集合。
- MVP 协议:REST、GraphQL、WebSocket、SSE。gRPC 将在后续阶段支持。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。