内容
# Reqly - 从路由到CI测试,全部在一个代理会话中
[](https://www.npmjs.com/package/getreqly)
[](https://github.com/RutvikPansare/Reqly/blob/main/LICENSE)
[](https://github.com/RutvikPansare/Reqly/actions/workflows/ci.yml)
您的代理读取您的代码库,构建集合,编写断言,导出 GitHub Actions 工作流,并将其发送到 CI。您无需手动干预。
```bash
npm install -g getreqly
reqly setup
```
<!-- TODO: record demo GIF - agent prompt -> MCP tool fires -> collection appears in sidebar -> run -> response shown -->

**支持:** [Cursor](https://cursor.com) · [Claude Code](https://claude.com/claude-code) · [Gemini CLI](https://github.com/google-gemini/gemini-cli) · [VS Code](https://code.visualstudio.com) (Claude 扩展)
### 全零人工流水线
```
/goal 读取我的 Express 路由,构建一个带有断言的集合,编写登录 → 结账的 e2e 流,并导出到 CI - 直到它变为绿色。
1. "读取我的 Express 路由并构建一个带有断言的集合"
→ 代理调用 create_collection + create_request for 每个端点
2. "为登录 → 结账路径编写 e2e 流"
→ 代理调用 create_flow + add_flow_step,运行它,所有绿色
3. "导出到 CI"
→ 代理调用 export_flow_ci
→ .github/workflows/checkout-flow.yml 自动写入
→ 安装 Reqly,运行流,上传 JUnit 结果作为构建工件
```
在 Claude Code 中,`/goal` 在一个会话中保持代理工作,而不是在每个步骤重新提示 - Reqly 的 MCP 工具旨在这样链接。
无需 `bru run` 连线。无需手动 Actions YAML。无需环境设置。一个代理会话,测试永久运行在 CI 中。
Reqly 作为后台服务在本地运行,带有两个接口来自同一个引擎:
- **MCP 服务器(stdio)** - 您的代理连接一次并获取完整的工具包。零 UI,我们这边零 LLM 成本。
- **本地 Web UI** - 打开 `localhost:4242` 以浏览集合,观看代理工作,手动发送请求。
集合是存储在 `.reqly/` 中的纯 YAML 文件。 Git 原生,可读,可直接由代理写入。
## 目录
- [安装](#installation)
- [工作原理](#the-full-zero-human-pipeline)
- [MCP 工具](#what-your-agent-can-do)
- [CLI 运行器](#cli-runner)
- [流程](#flows)
- [模拟服务器](#mock-server)
- [捕获入站请求](#capture-inbound-requests-middleware)
- [集合和断言](#how-collections-work)
- [为什么选择 Reqly](#why-reqly-beats-postman-insomnia-and-bruno-for-ai-native-developers)
- [最近发布](#recently-shipped)
- [常见问题](#faq)
- [星级历史](#star-history)
## 为什么 Reqly 胜过 Postman、Insomnia 和 Bruno,适用于 AI 原生开发者
**集合是存储库中的纯 YAML 文件。** 其他所有工具都将集合存储在专有格式或数据库中(Insomnia 使用 NeDB 二进制文件,Postman 将其锁定在云帐户后面)。Reqly 的 `.reqly/` 文件夹随代码通过 git 旅行 - 可读,可差异,可提交。AI 代理可以直接读写集合文件,无需任何工具调用。
**Reqly 是一个 MCP 服务器,而不是 MCP 客户端。** Insomnia 最近添加了一个 MCP 客户端,以便它可以调用外部工具。Reqly 更进一步:它是 MCP 服务器。您的 Cursor 或 Claude Code 中的 AI 代理连接一次并获取一套完整的工具来发送请求,链接响应,运行集合和验证断言 - 无需 UI,无需额外配置。桌面 UI(即将推出)是同一后台引擎的外壳 - MCP 连接保持活动,无论窗口是否打开或关闭。其他从头开始构建 GUI 的工具必须提取一个无头运行时作为事后补充;Reqly 从一开始就是无头的。
**自动捕获,零手动工作。** Reqly 可以通过代理捕获开发服务器的出站流量,通过一行中间件捕获入站流量,通过公共隧道捕获入站 Webhooks - 然后自动将所有内容保存到集合中。没有其他工具可以做到所有这些。
**BYOK,无云依赖。** 没有 Reqly 云。集合保留在您的存储库中。秘密保留在 `~/.reqly/config.json` 中,在您的机器上。UI 中的提示栏使用您自己的 API 密钥。没有任何内容发送到 Reqly 的服务器 - 因为没有 Reqly 服务器。不需要帐户,无需遥测,无需同步。
## 代理会话示例
```
1. "读取我的路由并构建一个集合" → 代理调用 create_collection + create_request for 每个端点
2. "运行集合并检查失败" → 代理调用 run_collection,断言通过/失败
3. "为登录 → 结账路径编写 e2e 流" → 代理调用 create_flow + add_flow_step,运行它
```
## 安装
Reqly 在 macOS、Linux 和 Windows 上运行。
```bash
# 在任何平台上通过 npm
npm install -g getreqly
# 在 macOS 上通过 Homebrew
brew tap RutvikPansare/reqly
brew install reqly
```
然后将其连接到您的 AI 工具:
```bash
reqly setup
```
这会一键配置 Cursor、Claude Desktop、Claude Code、Gemini CLI 和 Codex。要仅配置特定工具:`reqly setup cursor`、`reqly setup claude`、`reqly setup gemini`。
重启您的 AI 工具,然后询问它:“列出我的 Reqly 集合”。
### 30 秒试用
无需 API,无需代理设置。直接在任何目录中运行:
```bash
reqly init
reqly start
```
打开 `localhost:4242` - 您将拥有一个针对 [JSONPlaceholder](https://jsonplaceholder.typicode.com) 的工作集合,带有请求链接、变量、断言和已设置的流程。然后连接您的代理并要求它扩展它。
## 开始使用您自己的 API 的最快方式
不要捕获流量,不要手动编写 YAML - 只需告诉您的代理读取您的代码:
```
"读取我的 Express 路由并为每个端点构建一个 Reqly 集合"
```
代理读取您的代码库并为找到的每个路由调用 `create_collection` + `create_request`。无需捕获流量 - 它已经知道您的 API 代码。
## 您的代理可以做什么
> Reqly 不是 AI - 它是您 AI 的引擎。连接一次,然后您的代理拥有完整的工具包。
| | 能力 | 含义 |
|---|---|---|
| 🗂️ | **构建集合** | 读取您的路由,搭建请求,无需手动编写 YAML |
| ⚡ | **发送和断言** | 运行请求,检查状态/正文/延迟,返回每个断言通过/失败 |
| 🔗 | **链接流程** | 多步骤序列,带有提取、轮询和条件分支 |
| 📋 | **验证合约** | 指向 OpenAPI 规范 - 每个响应自动检查 |
| 🎭 | **提供模拟** | 从保存的示例伪造后端,无需实时服务器 |
| 🕵️ | **捕获流量** | 代理出站流量,中间件用于入站流量,隧道用于 Webhooks |
<details>
<summary><strong>查看所有 30+ MCP 工具</strong></summary>
<br>
**🗂️ 集合和请求**
| 工具 | 功能 |
|------|-------------|
| `list_collections` | 列出项目中的所有集合和请求 |
| `create_collection` | 搭建新的集合 |
| `create_request` | 添加请求。支持 `{{variables}}`、断言、前/后脚本、身份验证、多部分正文 |
| `run_request` | 发送请求 - 返回状态、正文、头部、延迟、断言结果、差异、合约违规 |
| `run_collection` | 顺序发送集合中的所有请求 |
| `get_response` | 检索最后存储的响应(截断) |
| `get_response_full` | 检索最后一个未截断的响应 |
| `export_collection` | 导出为 Postman v2.1 或 OpenAPI 3.0 JSON |
| `import_collection` | 导入 Postman v2.1 或 Bruno 集合 |
**🌍 环境和变量**
| 工具 | 功能 |
|------|-------------|
| `set_environment` | 更改活动环境 |
| `create_environment` | 创建具有变量的命名环境 |
| `set_variable` | 在环境上设置变量 |
| `get_variables` | 列出环境变量(带有源标签) |
| `delete_variable` | 删除变量 |
| `get_collection_variables` | 列出集合变量 |
| `set_collection_variable` | 设置集合变量 |
| `delete_collection_variable` | 删除集合变量 |
| `set_dotenv_files` | 配置自动加载哪些 `.env` 文件 |
| `get_dotenv_files` | 列出已配置的 dotenv 文件 |
**🔐 身份验证**
| 工具 | 功能 |
|------|-------------|
| `get_collection_auth` | 获取集合的默认身份验证配置 |
| `set_collection_auth` | 为所有请求设置 Bearer / API Key / Basic / OAuth 2.0 身份验证 |
| `delete_collection_auth` | 删除集合级身份验证 |
**📋 OpenAPI 合约验证**
| 工具 | 功能 |
|------|-------------|
| `set_collection_spec` | 将集合指向 OpenAPI 规范(文件路径或 URL) |
| `get_collection_spec` | 获取规范配置和加载状态 |
| `delete_collection_spec` | 从集合中删除规范 |
| `list_spec_operations` | 列出加载的规范中的所有操作 |
| `validate_response` | 重新验证最后一个响应而不重新发送 |
**🔗 流程**
| 工具 | 功能 |
|------|-------------|
| `create_flow` | 创建新的流程 |
| `get_flow` | 获取流程的配置和步骤 |
| `list_flows` | 列出所有流程 |
| `delete_flow` | 删除流程 |
| `add_flow_step` | 追加步骤(运行/提取/断言/轮询/条件) |
| `update_flow_step` | 替换步骤 |
| `delete_flow_step` | 删除步骤 |
| `run_flow` | 执行流程并返回每个步骤的结果 |
| `export_flow_ci` | 生成 GitHub Actions 工作流并写入 `.github/workflows/` |
**🕵️ 捕获和代理**
| 工具 | 功能 |
|------|-------------|
| `start_proxy` | 自动捕获出站流量到集合 |
| `stop_proxy` | 停止流量拦截 |
| `exec_with_proxy` | 启动代理并运行开发命令,将其注入 |
| `install_middleware` | 返回用于您的框架的入站捕获代码段 |
**🎭 模拟服务器**
| 工具 | 功能 |
|------|-------------|
| `start_mock` | 为给定端口启动集合的模拟服务器 |
| `stop_mock` | 停止模拟服务器 |
| `get_mock_status` | 返回模拟服务器状态和活动路由 |
</details>
## 最近发布
- **流程** - 多步骤自动化测试(运行、提取、断言、轮询、条件)带有数据驱动支持
- **OpenAPI 合约验证** - 指向集合的规范;每个响应自动检查
- **多部分正文编辑器** - 发送 `multipart/form-data` 带有文件和文本部分
- **响应差异** - 检测运行之间更改:状态、延迟增量、正文差异
- **模拟服务器** - 从保存的示例提供模拟 HTTP 服务器用于前端开发和代理测试
- **前/后脚本** - 每个请求的沙盒 JS 可以读写环境变量
- **GraphQL 工作区** - 专用编辑器,带有模式内省、语法高亮和变量面板
- **cURL 导入** - 粘贴任何 cURL 命令;字段立即填充
- **TypeScript 接口生成器** - 从任何 JSON 响应正文推断出类型化的 TS 接口
- **.env 集成** - 零配置:如果 `.env` 存在于项目根目录,它将自动加载
## 流程
流程是您的代理构建的具有多步骤序列的集合,CI 运行永远不会中断。每个步骤链接到下一个步骤 - 自动从一个响应中提取值并将其注入下一个请求。
```mermaid
flowchart LR
A(["▶ 运行\n发送请求"]) --> B(["⬇ 提取\n从响应中提取值"])
B --> C(["✓ 断言\n检查响应"])
C --> D{"⎇ 条件\n根据结果分支"}
D -->|"pass"| E(["▶ 运行\n下一个请求"])
D -->|"retry"| F(["↻ 轮询\n重复直到条件满足"])
F --> E
style A fill:#1e3a5f,stroke:#3b82f6,color:#e2e8f0
style B fill:#1e3a5f,stroke:#3b82f6,color:#e2e8f0
style C fill:#14532d,stroke:#22c55e,color:#e2e8f0
style D fill:#3b1f1f,stroke:#ef4444,color:#e2e8f0
style E fill:#1e3a5f,stroke:#3b82f6,color:#e2e8f0
style F fill:#3b2f0a,stroke:#f59e0b,color:#e2e8f0"
```
**示例:登录 → 创建帖子 → 验证它存在**
```yaml
# .reqly/flows/e2e-post.yaml
steps:
- type: run
request: auth/login
- type: extract
from: response.body.token
into: authToken # 现在可用作 {{authToken}}
- type: run
request: posts/create-post
- type: extract
from: response.body.id
into: postId
- type: assert
field: status
operator: eq
value: 201
- type: run
request: posts/get-post # 使用 {{postId}} 在 URL 中
- type: assert
field: body
path: post.title
operator: eq
value: "Hello world"
```
运行:
```bash
reqly run-flow "e2e-post"
reqly run-flow "e2e-post" --reporter json
reqly run-flow "e2e-post" --reporter tap
reqly run-flow "e2e-post" --reporter junit > results.xml
reqly run-flow "e2e-post" --data-row '{"userId":"42"}'
```
导出到 CI:
```bash
reqly export-flow "e2e-post" --format github-actions
# 写入 .github/workflows/e2e-post.yml - 安装 Reqly, 运行流程, 上传 JUnit 结果作为构建工件
```
代理也可以通过 `export_flow_ci` MCP 工具执行,无需手动编写 YAML。
## 捕获入站请求(中间件)
如果您的代码库太复杂或未记录用于 AI-writes-collection 工作流,请安装 `reqly-middleware` 以捕获进入您的应用的每个请求:
```bash
npm install reqly-middleware
```
```ts
// Express
import { reqlyMiddleware } from 'reqly-middleware'
app.use(reqlyMiddleware())
// Next.js(middleware.ts 在项目根目录)
import { reqlyNextMiddleware } from 'reqly-middleware/next'
export default reqlyNextMiddleware()
// Fastify
import { reqlyMiddlewareHook } from 'reqly-middleware'
fastify.addHook('onRequest', reqlyMiddlewareHook())
```
重启您的开发服务器,Reqly 开始捕获入站请求到 `Captured` 集合。仅限本地开发 - 它会电话回家到 `localhost:4242`,在生产环境中没有效果。询问您的代理调用 `install_middleware` 获取您框架的准确代码段。
## 集合的工作原理
集合存储在 `.reqly/` 位于您的项目目录中的人类可读的 YAML 文件中。它们支持变量、
```yaml
name: create-user
method: POST
url: "{{baseUrl}}/api/users"
headers:
Content-Type: application/json
body:
email: test@example.com
assertions:
- field: status
operator: eq
value: 201
- field: body
path: user.id
operator: neq
value: ""
```
## 断言
请求执行完毕后,断言会自动运行。每个断言检查一件事:
| 属性 | 值 | 注意 |
|----------|--------|-------|
| `field` | `status` \| `body` \| `latency` | **必填**。使用 `field`,而不是 `type`。 |
| `operator` | `eq` \| `neq` \| `contains` \| `lt` \| `gt` | **必填**。 |
| `value` | 字符串、数字或布尔值 | **必填**。预期值。 |
| `path` | 点表示法字符串 | 如果 `field` 为 `body` 则必填。JSON 正文中的路径,例如 `user.id` 或 `data.items.0.name`。 |
**常见错误:** 编写 `type: "status"` 而不是 `field: "status"` - 这会静默地生成一个永远不会匹配的断言,始终失败,状态为“got undefined”。
示例:
```yaml
assertions:
- field: status # HTTP 状态代码
operator: eq
value: 200
- field: body # 正文中的 JSON 字段
path: user.active
operator: eq
value: true
- field: latency # 毫秒级响应时间
operator: lt
value: 2000
```
## CLI 运行器
您可以在终端或 CI/CD 管道中使用 Reqly 运行测试套件。
```bash
reqly run users
```
支持报告器格式和环境:
```bash
reqly run users --env prod --reporter json
reqly run users --reporter tap
reqly run users --reporter junit > results.xml
```
`--reporter junit` 将标准 JUnit XML `<testsuite>`/`<testcase>` 文档写入 stdout - 将其重定向到文件中,让您的 CI 提取。
### 运行流程
```bash
reqly run-flow "Login Flow"
reqly run-flow "Login Flow" --reporter json
reqly run-flow "Login Flow" --reporter tap
reqly run-flow "Login Flow" --reporter junit > results.xml
reqly run-flow "Signup Flow" --data-row '{"email":"test@example.com"}'
```
### 导出流程到 CI
```bash
reqly export-flow "Login Flow" --format github-actions
```
写入 `.github/workflows/Login Flow.yml`(如果需要,会创建目录),安装 Reqly,启动它,运行流程,上传 `results.xml` 作为构建工件到 push 和 pull request。 在流程之前添加“启动服务器”的步骤,如果流程访问本地 API。
想让您的代理在时间表上重新检查 API 而不仅仅是在推送时? 在 Claude Code 中:
```
/schedule every morning at 9am, run reqly run-flow "Login Flow" --reporter junit and tell me if anything broke
```
### 模拟服务器
从保存的示例响应中提供模拟 HTTP 服务器,以便前端代码或代理可以针对受控响应进行调用,而无需实时后端:
```bash
reqly mock <collection> # 默认端口 4243
reqly mock <collection> --port 5000
```
启动时,Reqly 打印所有活动路由(方法、路径、示例计数)的表格。按 Ctrl+C 停止。
要为每个请求选择特定的示例,设置 `X-Reqly-Example: <name>` 头。 如果没有它,将提供保存的第一个示例。
模拟服务器还通过 REST 路由公开 UI 和编程控制:
```
POST /api/mock/start { collection, port? }
POST /api/mock/stop
GET /api/mock/status
```
## 常见问题
<details>
<summary><strong>使用Reqly需要AI代理吗?</strong></summary>
<br>
不需要。localhost UI 在 <code>localhost:4242</code> 处独立工作 - 创建集合、发送请求、检查响应,所有这些都不需要代理。MCP接口是附加的:当您的代理连接时,它通过工具获得相同的功能。您可以同时使用两者。
</details>
<details>
<summary><strong>它与Postman或Insomnia有什么不同?</strong></summary>
<br>
有三点不同:
1. <strong>集合是仓库中的YAML文件</strong>,不锁定在云账户或专有二进制格式中。它们与代码一起通过git传输,您的代理可以直接读取和写入它们,并且可以在PR中进行差异比较。
2. <strong>Reqly是一个MCP服务器</strong>。您的AI代理连接到它并获得一个完整的工具包 - 发送请求、运行流程、验证合约 - 无需打开UI。Postman和Insomnia是UI优先的;Reqly是代理优先的。
3. <strong>无需云依赖。</strong> 无需账户,无需同步,无需遥测。所有操作都在您的机器上运行。
</details>
<details>
<summary><strong>它与Bruno有什么不同?</strong></summary>
<br>
Bruno是最接近的比较 - 它也是本地的、基于文件的、git原生的。关键区别是代理接口。Bruno没有MCP服务器;您的代理无法调用Bruno工具以编程方式发送请求或构建集合。Reqly从一开始就设计为AI代理是主要用户,UI是同一引擎的次要窗口。
</details>
<details>
<summary><strong>Reqly会向云发送任何数据吗?</strong></summary>
<br>
不会。Reqly是一个本地进程。集合保留在 <code>.reqly/</code> 在您的仓库中。您的API密钥保留在 <code>~/.reqly/config.json</code> 在您的机器上。UI中的提示栏直接从您的浏览器向您自己的API密钥发送请求 - 没有任何内容通过Reqly的服务器路由,因为没有Reqly服务器。
</details>
<details>
<summary><strong>我可以在没有Cursor或Claude Code的情况下使用Reqly吗?</strong></summary>
<br>
可以。任何MCP兼容的客户端都可以使用:Cursor、Claude Code、Claude Desktop、Gemini CLI、Codex或任何支持MCP stdio传输的客户端。如果您的代理暂时不支持MCP,您仍然可以使用CLI(<code>reqly run</code>,<code>reqly run-flow</code>)和localhost UI,无需任何代理。
</details>
<details>
<summary><strong>我的代理正在错误的文件夹中查找集合。我该怎么办?</strong></summary>
<br>
当您的AI工具从与项目不同的工作目录启动Reqly进程时,会发生这种情况。可以通过以下三种方式之一解决:
1. <strong>Cursor / 大多数编辑器</strong> - 在项目目录内运行 <code>reqly setup cursor</code>。设置命令将 <code>${workspaceFolder}</code> 写入MCP配置,以便Cursor在启动时传递正确的文件夹。
2. <strong>Claude Desktop</strong> - 运行 <code>reqly use /path/to/your/project</code> 以全局设置活动项目,然后重启Claude Desktop。
3. <strong>手动覆盖</strong> - 在AI工具的配置中,将 <code>REQLY_PROJECT_DIR</code> 环境变量设置为MCP服务器入口。
</details>
<details>
<summary><strong>我可以在CI中使用Reqly而无需AI代理吗?</strong></summary>
<br>
可以 - 这就是 <code>reqly run</code> 和 <code>reqly run-flow</code> 的用途。您的代理在本地构建和维护集合;CI只需执行它。使用 <code>--reporter junit</code> 获取JUnit XML输出,GitHub Actions、GitLab CI和Jenkins都可以原生解析为测试仪表板。
```bash
reqly run my-collection --reporter junit > results.xml
```
或自动生成完整的GitHub Actions工作流:
```bash
reqly export-flow "my-flow" --format github-actions
```
</details>
<details>
<summary><strong>中间件是否在生产环境中捕获请求?</strong></summary>
<br>
不会 - 按照设计。<code>reqly-middleware</code> 调用 <code>localhost:4242</code> 并在Reqly未运行时保持沉默。如果Reqly在生产环境中不存在,它永远不会捕获流量,并且永远不会缓冲或延迟您的请求(先发送后忘,忽略错误)。
</details>
<details>
<summary><strong>Reqly支持哪些身份验证类型?</strong></summary>
<br>
支持Bearer令牌、API密钥(头部或查询参数)、基本身份验证和带有PKCE的OAuth 2.0。身份验证可以在集合级别设置(适用于所有请求)或按请求覆盖。您的代理可以通过<code>set_collection_auth</code> MCP工具配置身份验证 - 无需手动编辑YAML。
</details>
<details>
<summary><strong>我可以导入现有的Postman或Bruno集合吗?</strong></summary>
<br>
可以。Reqly开箱即支持导入Postman v2.1集合和Bruno集合:
```bash
reqly import postman-collection.json
reqly import bruno-collection/
```
或通过MCP工具:您的代理可以调用<code>import_collection</code>并传递文件路径。Reqly还支持导出到Postman v2.1和OpenAPI 3.0,如果您需要反向操作。
</details>
<details>
<summary><strong>环境变量如何工作?</strong></summary>
<br>
Reqly有三个变量层,按以下顺序解析:
1. <strong>.env文件</strong> - 从项目根目录自动加载(或通过<code>set_dotenv_files</code>配置)
2. <strong>环境变量</strong> - 命名的集合,如<code>dev</code>、<code>staging</code>、<code>prod</code>,存储在<code>.reqly/environments.yaml</code>
3. <strong>集合变量</strong> - 限定在单个集合内,对于诸如<code>baseUrl</code>之类的值很有用
在URL、头部或正文中任何地方使用<code>{{varName}}</code>。使用<code>reqly run --env prod</code>或通过UI下拉菜单切换环境。
</details>
<details>
<summary><strong>Reqly是否支持GraphQL?</strong></summary>
<br>
支持。UI具有专用的GraphQL工作区,支持模式内省、语法高亮和变量面板。GraphQL请求与REST请求一样存储在集合中 - 您的代理可以通过相同的MCP工具创建和运行它们。
</details>
<details>
<summary><strong>我可以在团队中使用Reqly吗?我们如何共享集合?</strong></summary>
<br>
集合是项目仓库中 <code>.reqly/</code> 目录下的纯YAML文件。共享只是git - 提交文件夹,团队中的每个人都拥有相同的集合。不需要账户,不需要工作区邀请,不需要云同步。机密和API密钥存储在每个开发人员的机器上的 <code>~/.reqly/config.json</code> 中,永远不会被提交。
</details>
<details>
<summary><strong>Reqly需要哪个Node.js版本?</strong></summary>
<br>
Node.js 18或更高版本。Reqly使用原生<code>fetch</code>、ES模块和MCP SDK,所有这些都需要Node 18+。使用<code>node --version</code>检查您的版本。
</details>
<details>
<summary><strong>端口4242已经被占用。我可以更改它吗?</strong></summary>
<br>
可以。启动时传递<code>--port</code>:
```bash
reqly start --port 4243
```
或在MCP配置参数中设置它。UI将在您选择的任意端口上打开。
</details>
<details>
<summary><strong>预/后脚本如何工作?</strong></summary>
<br>
每个请求都可以有一个<code>preScript</code>和一个<code>postScript</code> - 在请求发送之前和之后运行的小型沙盒JavaScript代码段。它们可以访问一个<code>reqly</code>对象,其中包含读写环境变量的方法:
```js
// preScript - 在请求前设置动态头部
reqly.setEnvVar('timestamp', Date.now().toString())
// postScript - 将响应中的值提取到环境变量中
const token = reqly.response.body.access_token
reqly.setEnvVar('authToken', token)
```
脚本在隔离的上下文中运行,无文件系统或网络访问权限 - 它们只能与Reqly的变量存储和响应对象交互。
</details>
<details>
<summary><strong>如何停止Reqly?</strong></summary>
<br>
```bash
reqly stop # 停止正在运行的实例
reqly status # 检查实例是否正在运行以及它位于哪个项目
```
或在Reqly运行的终端中按Ctrl+C。Reqly在<code>~/.reqly/running.json</code>处写入锁定文件以跟踪正在运行的实例 - <code>reqly stop</code>读取该文件以查找并向进程发送信号。
</details>
<details>
<summary><strong>我可以在不重启的情况下切换项目吗?</strong></summary>
<br>
可以。如果Reqly实例已经运行,在不同项目目录启动新实例会热交换活动项目,无需重启服务器:
```bash
cd /path/to/other-project
reqly start
# "Switched active project to /path/to/other-project"
```
新进程将接管现有实例并退出。MCP连接保持活动状态,并立即看到新项目的集合。
</details>
<details>
<summary><strong>有办法测试webhook吗?</strong></summary>
<br>
可以 - 使用tunnel命令公开您的本地服务器到互联网并捕获传入的webhook有效载荷:
```bash
reqly exec --tunnel npm run dev
```
这启动您的开发服务器,并附带一个公开的HTTPS URL。任何命中该URL的请求都会被代理到您的本地服务器,并自动保存在<code>Captured</code>集合中。
</details>
## 星级历史
[](https://star-history.com/#RutvikPansare/Reqly)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器