Reqly について
Reqlyは、AIエージェントと開発チーム向けのローカル優先のAPIテストアプリ兼MCPサーバーです。リポジトリ内にプレーンなYAMLでコレクションを保存し、エージェントツール、コマンドライン、Web UIからリクエストテストやフロー実行、CI出力を行えます。
主な機能
- 01リポジトリにYAML形式でコレクションを保存
- 02アサーション付きAPIリクエストの作成と実行
- 03複数リクエストのフロー化
- 04OpenAPI仕様に基づくレスポンス検証
- 05インバウンド・アウトバウンド通信の取得
- 06コレクションとCIワークフローの出力
活用シーン
- 01アプリケーションのルートからリクエストコレクションを作成
- 02認証とレスポンスのアサーションをテスト
- 03ログインからチェックアウトまでのフローを実行
- 04APIテストをCI向けに出力
MCP 対応
ReqlyはローカルでMCPサーバーを実行し、コレクションやリクエストの作成、テスト実行、フロー化、通信取得、コレクション出力のツールをエージェントに提供します。コマンドラインから対応するエージェントホストのMCP接続を設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
██████╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ██╔══██╗██╔════╝██╔═══██╗██║ ╚██╗ ██╔╝ ██████╔╝█████╗ ██║ ██║██║ ╚████╔╝ ██╔══██╗██╔══╝ ██║▄▄ ██║██║ ╚██╔╝ ██║ ██║███████╗╚██████╔╝███████╗██║ ╚═╝ ╚═╝╚══════╝ ╚══▀▀═╝ ╚══════╝╚═╝
AI エージェント向けに構築された API テストアプリ
コレクション作成から CI テストまで、1 回のエージェントセッションで完結します。
シンプルな YAML · ローカルファースト · MCP サーバー · CLI と Web UI · 自動キャプチャ · フロー · REST · GraphQL · gRPC
インストール · 仕組み · MCP ツール · フロー · FAQ · リリース
エージェントがコードベースを読み取り、コレクションを作成し、アサーションを記述して、GitHub Actions ワークフローを書き出し、CI に投入します。あなたが手を動かす必要はありません。
npm install -g getreqly
reqly setup

対応環境: Cursor · Claude Code · Gemini CLI · VS Code(Claude 拡張機能)
人手を介さない完全なパイプライン
/goal Read my Express routes, build a collection with assertions, write an
e2e flow for login → checkout, and export it to CI - don't stop until it's green.
1. "Read my Express routes and build a collection with assertions"
→ agent calls create_collection + create_request for every endpoint
2. "Write an e2e flow for the login → checkout path"
→ agent calls create_flow + add_flow_step, runs it, all green
3. "Export it to CI"
→ agent calls export_flow_ci
→ .github/workflows/checkout-flow.yml written automatically
→ installs Reqly, runs the flow, uploads JUnit results as a build artifact
Claude Code では、/goal を使うと、各ステップでプロンプトを送り直すことなく、1 回のセッションでエージェントがパイプライン全体を進めます。Reqly の MCP ツールは、このように連携して実行できるように設計されています。
bru run の設定は不要です。Actions の YAML を手動で書く必要もありません。環境設定も不要です。1 回のエージェントセッションで、テストが CI で継続的に実行されます。
Reqly はバックグラウンドサービスとしてローカルで動作し、同じエンジンから 2 つのインターフェースを提供します。
- MCP サーバー(stdio) - エージェントが一度接続すると、すべてのツールを利用できます。UI は不要で、こちら側で LLM のコストもかかりません。
- ローカルホストの Web UI -
localhost:4242を開いてコレクションを閲覧し、エージェントの作業を確認し、リクエストを手動で送信できます。
コレクションは、リポジトリ内の .reqly/ に保存されるプレーンな YAML です。Git に適しており、人が読みやすく、エージェントが直接書き込めます。
目次
- インストール
- 仕組み
- MCP ツール
- CLI ランナー
- フロー
- AWS SigV4 認証
- コレクションのエクスポート
- モックサーバー
- 受信リクエストのキャプチャ
- コレクションとアサーション
- 実例
- Reqly を選ぶ理由
- 最近リリースされた機能
- コントリビューション
- FAQ
- スター履歴
- リリース
実証(30秒)
実際の開発ワークフローでの時間短縮:
| タスク | 手動(Postman/Bruno) | Reqly + エージェント | 削減率 |
|---|---|---|---|
| REST エンドポイントを20個作成 | 45分 | 2分 | 95% |
| 認証とバリデーションのテストを作成 | 25分 | 3分 | 88% |
| ログイン → チェックアウトのフローを連結 | 30分 | 4分 | 86% |
| CI パイプラインをセットアップ(GitHub Actions) | 20分 | 1分 | 95% |
| オンボーディングの合計時間 | 120分 | 10分 | 91% |
Reqly は、API テストを面倒な手作業から、エージェント主導の迅速なワークフローへと変えます。エージェントが YAML を記述し、フローを構築して CI 設定をエクスポートするため、エディターを離れる必要はありません。
AI ネイティブな開発者にとって、Reqly が Postman、Insomnia、Bruno より優れている理由(45秒)
コレクションはリポジトリ内のプレーンな YAML です。 ほかのツールはすべて、コレクションを独自形式またはデータベースに保存します(Insomnia は NeDB のバイナリファイルを使用し、Postman はクラウドアカウントの背後にコレクションを置きます)。Reqly の .reqly/ フォルダーは git を通じてコードとともに管理でき、読みやすく、差分を確認でき、コミットできます。AI エージェントはツール呼び出しを行わずに、コレクションファイルを直接読み書きできます。
Git がエンタープライズ向け RBAC になります。 API コレクションの権限設定のためだけに、ユーザーごとのエンタープライズライセンスに料金を払うのはやめましょう。Reqly のコレクションはリポジトリ内のファイルなので、Git プロバイダーのセキュリティポリシーを自動的に引き継ぎます。ブランチ保護と CODEOWNERS を使って、本番フローを編集できるユーザーを制限できます。
Reqly は MCP クライアントではなく、MCP サーバーです。 Insomnia は最近 MCP クライアントを追加し、外部ツールを呼び出せるようになりました。Reqly はさらに進んでおり、MCP サーバーそのものです。Cursor や Claude Code 上の AI エージェントが一度接続すれば、リクエストの送信、レスポンスの連結、コレクションの実行、アサーションの検証を行うツール一式を利用できます。UI も追加設定も必要ありません。まもなく公開予定のデスクトップ UI は、同じヘッドレスエンジンを包むシェルです。ウィンドウが開いていても閉じていても、MCP 接続は維持されます。GUI を優先して作られたほかのツールは、後からヘッドレスランタイムを切り出す必要がありますが、Reqly は最初からヘッドレスです。
自動キャプチャで、手作業は不要です。 Reqly は、プロキシを介して開発サーバーからの送信トラフィック(reqly exec npm run dev)、1行のミドルウェアを介して受信トラフィック、パブリックトンネルを介して受信 Webhook をキャプチャし、すべてを自動的にコレクションに保存できます。この3つすべてに対応するツールは、ほかにありません。
クラウドに依存しません。 Reqly のクラウドはありません。コレクションはリポジトリに保存されます。シークレットは使用中のマシンの ~/.reqly/config.json に保存されます。Reqly のサーバーが存在しないため、Reqly のサーバーに何かが送信されることもありません。アカウントもテレメトリーも同期も不要です。
PM と QA にテストを広く開放します。 Postman の UI は、開発者以外には扱いにくいものです。Reqly なら、技術者ではないチームメンバーも AI に「チェックアウトのフローを実行して、税額が正しく計算されるか教えて」と頼むだけです。AI が認証、フォーマット、JSON ペイロードを処理し、レスポンスを平易な言葉で説明します。開発者が付き添う必要はありません。
エージェントとのセッション例(15秒)
1. "Read my routes and build a collection" → agent calls create_collection + create_request for each endpoint
2. "Run the collection and check for failures" → agent calls run_collection, assertions pass/fail
3. "Write an e2e flow for the login → checkout path" → agent calls create_flow + add_flow_step, runs it
インストール(45 秒)
Reqly は macOS、Linux、Windows で動作します。導入方法は 3 通りです。
# 1. On any platform via npm (CLI + MCP server + web UI)
npm install -g getreqly
# 2. On macOS via Homebrew (CLI only)
brew tap RutvikPansare/reqly
brew install reqly
# 3. On macOS via Homebrew (Desktop App + CLI)
brew install --cask reqly
または、GitHub Releases からDMG を直接ダウンロードできます。npm も Homebrew もターミナルも必要ありません。デスクトップアプリには Reqly サーバーが同梱されているため、これだけで完結します。
VS Code 拡張機能: VS Code Marketplace から reqly.reqly をインストールします(Cursor、Windsurf、および VS Code 互換エディターすべてで動作します)。アクティビティバーにコレクションツリー、ステータスバーに環境切り替え機能、コマンドパレットに Reqly: コマンドが追加されます。また、JS/TS の fetch/axios/got 呼び出しの上に「▶ Run with Reqly」CodeLens が表示され、すべての .reqly/ YAML ファイルで自動補完付きのスキーマ検証が利用できます。同じローカルサーバーに接続するため、まず Reqly 自体をインストールしてください(上記 3 通りのいずれか)。
AI エージェントの接続:
- デスクトップアプリをお使いの場合: 初回起動時にセットアップウィザード(「AI Agent を接続」)が表示され、Claude Desktop、Cursor、Windsurf、VS Code 用のワンクリックボタンが利用できます。各ボタンを押すと、そのエージェントの MCP 設定が自動で書き込まれるため、JSON を編集する必要はありません。トレイメニューの「AI Agent Connections...」からいつでも再度開けます。CLI をインストール済み(Homebrew または npm)の場合、ウィザードはエージェントが CLI を使うよう設定するため、
brew upgradeで常に最新の状態を保てます。CLI がインストールされていない場合は、同梱のサーバーを使うよう設定します。 - CLI をお使いの場合: 次を実行します。
reqly setup
これにより、Cursor、Claude Desktop、Claude Code、Gemini CLI、Codex を一度に設定できます。特定のツールだけを設定するには、reqly setup cursor、reqly setup claude、reqly setup gemini を実行します。
AI ツールを再起動して、「Reqly のコレクションを一覧表示して」と尋ねてください。
プロジェクトディレクトリの解決
Reqly は、次の 4 段階の優先順位に基づいて、操作対象のプロジェクトディレクトリを決定します。
- フラグ:
--project-dir(最優先) - 環境変数: `REQLY_PROJECT_DIR`
- 保存済みの設定: `reqly use ` の実行で設定されたパス
- 現在のディレクトリ: `process.cwd()`
ホスト別の設定方法:
- VS Code ベースのエディター(Cursor、Windsurf): これらのエディターは動的なマクロ展開に対応しています。`reqly setup` は、`--project-dir ${workspaceFolder}` を渡すように設定するため、エディターのウィンドウで現在開いているプロジェクトに Reqly が動的に追従します。
- スタンドアロンのホスト(Claude Desktop、Gemini CLI、Antigravity): これらのツールは、すべてのプロジェクトで共有されるグローバルな MCP サーバープロセスを 1 つ起動し、マクロを展開しません。`reqly setup` はフラグを完全に省略します。これらのツールでは、グローバルな Reqly プロセスに参照するプロジェクトを伝えるため、プロジェクトディレクトリ内で `reqly use ` を実行する必要があります。
30 秒で試す
API もエージェントの設定もまだ必要ありません。任意のディレクトリで次を実行します。
reqly init
reqly start
localhost:4242 を開くと、JSONPlaceholder に対するコレクションがすでに設定されています。リクエストの連鎖、変数、アサーション、フローも利用できます。次にエージェントを接続し、機能を追加するよう頼んでみましょう。
(注:reqly init は .reqly/ を自動作成し、ランタイムの状態ファイルを .gitignore に追加します。)
自分の API を使って最速で始める方法(60 秒)
トラフィックをキャプチャしたり、YAML を手書きしたりする必要はありません。エージェントにコードを読み込むよう頼むだけです。
"Read my Express routes and build a Reqly collection for every endpoint"
エージェントはコードベースを読み取り、見つけた各ルートに対して create_collection と create_request を呼び出します。トラフィックのキャプチャは不要です。コードからすでに API の情報を把握しています。
エージェントにできること(45 秒)
Reqly は AI ではありません。AI のためのエンジンです。一度接続すれば、エージェントはすべてのツールキットを利用できます。 | | 機能 | 内容 | |---|---|---| | 🗂️ | コレクションを構築 | ルートを読み取り、リクエストのひな形を作成します。YAML を手動で書く必要はありません | | ⚡ | 実行して検証 | リクエストを実行し、ステータス/本文/レイテンシを確認します。各アサーションの合否を返します | | 🔗 | フローを連結 | 抽出、ポーリング、条件分岐を含む複数ステップのシーケンスを実行します | | 📋 | コントラクトを検証 | OpenAPI 仕様を指定すると、すべてのレスポンスを自動で検証します | | 🎭 | モックを提供 | 保存済みの例からバックエンドを模擬します。稼働中のサーバーは不要です | | 🕵️ | トラフィックをキャプチャ | アウトバウンドにはプロキシ、インバウンドにはミドルウェア、Webhook にはトンネルを使用します | | 📤 | コレクションをエクスポート | OpenAPI 仕様、Postman ファイル、Markdown ドキュメントを生成します |
30 種類以上の MCP ツールをすべて表示
📂 ワークスペースとプロジェクト
| ツール | 内容 |
|---|---|
get_project | 現在アクティブなプロジェクトディレクトリと、その解決方法を返します |
switch_project | 実行時にアクティブなプロジェクトディレクトリを切り替えます |
list_workspace_projects | マルチプロジェクトワークスペース内のすべてのプロジェクトディレクトリを一覧表示します |
add_workspace_project | マルチプロジェクトワークスペースにプロジェクトディレクトリを追加します |
remove_workspace_project | ワークスペースからプロジェクトディレクトリを削除します |
create_workspace | 名前付きワークスペースを ~/.reqly/workspaces/<name>/workspace.yaml に作成します |
link_workspace_repo | ローカルリポジトリを、安定したエイリアスを使って名前付きワークスペースにリンクします |
use_workspace | アクティブな名前付きワークスペースを設定します(~/.reqly/config.json に保存されます) |
list_workspaces | すべての名前付きワークスペースと、アクティブなワークスペースを一覧表示します |
🗂️ コレクションとリクエスト
| ツール | 内容 |
|---|---|
list_collections | プロジェクト内のすべてのコレクションとリクエストを一覧表示します |
create_collection | 新しいコレクションのひな形を作成します |
create_request | リクエストを追加します。{{variables}}、アサーション、前後スクリプト、スクリプトファイル(preScriptFile/postScriptFile)、認証、マルチパート本文に対応しています |
run_request | リクエストを実行し、ステータス、本文、ヘッダー、レイテンシ、アサーション結果、差分、コントラクト違反を返します |
move_request | リクエストを別のコレクションに移動します |
run_collection | コレクション内のすべてのリクエストを順番に実行します |
duplicate_collection | コレクション全体を複製します |
get_response | 最後に保存されたレスポンスを取得します(切り詰められます) |
get_response_full | 最後に保存されたレスポンスを切り詰めずに取得します |
export_collection | Postman v2.1、OpenAPI 3.0 JSON、または Markdown API ドキュメントとしてエクスポートします |
import_collection | Postman v2.1 または Bruno コレクションをインポートします |
🌍 環境と変数
| ツール | 内容 |
|---|---|
set_environment | アクティブな環境を変更します |
create_environment | 変数を含む名前付き環境を作成します |
duplicate_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_secret | Vault のシークレット URI(bw://project/secret)を解決し、切り詰めたプレビューを返します。値全体は決して返しません |
get_secret_status | .env で検出された Vault URI を、キーごとの解決ステータスとともに一覧表示します |
configure_secret_provider | プロバイダーの認証情報を ~/.reqly/config.json に保存し、.env を再解決します |
🔐 認証
| ツール | 機能 |
|---|---|
get_collection_auth | コレクションのデフォルトの認証設定を取得します |
set_collection_auth | すべてのリクエストに Bearer/API Key/Basic/OAuth 2.0/AWS SigV4(awsv4)認証を設定します |
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 | ステップ(run/extract/assert/poll/conditional)を追加します |
update_flow_step | ステップをその場で置き換えます |
delete_flow_step | ステップを削除します |
run_flow | フローを実行し、ステップごとの結果を返します |
export_flow_ci | GitHub Actions ワークフローを生成し、.github/workflows/ に書き込みます |
🕵️ キャプチャとプロキシ
| ツール | 機能 |
|---|---|
start_proxy | 外向きのトラフィックをコレクションに自動キャプチャします |
stop_proxy | トラフィックのインターセプトを停止します |
get_proxy_status | プロキシの稼働状況、ポート、対象コレクションを報告します |
exec_with_proxy | プロキシを起動し、プロキシを組み込んだ状態で開発コマンドを実行します |
install_middleware | お使いのフレームワーク向けのインバウンドキャプチャ用スニペットを返します |
🌐 GraphQL
| ツール | 機能 |
|---|---|
introspect_graphql | GraphQL エンドポイントに対して完全なスキーマイントロスペクションを実行します。型/フィールド/引数の概要を構造化して返し、UI 用にスキーマをキャッシュします |
⚡ gRPC
| ツール | 機能 |
|---|---|
list_grpc_services | リフレクションが有効な gRPC サーバーからサービスを検出します(.proto は不要です)。{ services: [{ name }], fileDescriptorCount } を返します |
run_request と create_request は、どちらも type: grpc をネイティブにサポートしています。proto ファイルを .reqly/protos/ に配置してください。認証プロファイルは gRPC Metadata に自動的に挿入されます。
- Markdown ドキュメントのエクスポート - コレクションから美しい Markdown API リファレンスを直接生成します
- フロー - 複数ステップの自動化テスト(実行、抽出、検証、ポーリング、条件分岐)に対応し、データ駆動型の実行も可能です。同じフロー内で REST、GraphQL、gRPC のステップを連結します。
- OpenAPI コントラクトの検証 - コレクションを仕様に紐付けると、すべてのレスポンスが自動的にチェックされます
- マルチパートボディエディター - ファイルとテキストのパートを含む
multipart/form-dataを送信します - レスポンスの差分表示 - 実行間での変化(ステータス、レイテンシの差分、ボディの差分)を検出します
- モックサーバー - 保存済みのサンプルを実際の HTTP サーバーとして提供し、フロントエンド開発やエージェントのテストに利用できます
- リクエスト前後のスクリプト - リクエスト送信の前後に環境変数を読み書きできる、リクエストごとのサンドボックス化された JS です
- AWS Signature V4 認証 - REST/GraphQL 用の
AuthorizationとX-Amz-Dateを計算して注入します。AppSync、IoT Core、API Gateway WebSocket API 用の WebSocket URL の事前署名にも対応しています。一時的な STS 認証情報(sessionToken)をサポートします。 - gRPC サポート - BloomRPC を上回る包括的な gRPC 機能:単項 RPC、サーバー/クライアント/双方向ストリーミング、ファイル間のインポートに対応した proto ファイルの読み込み、サーバーリフレクション(.proto 不要)、認証プロファイルの Metadata への自動注入、
create_requestによる JSON メッセージのひな形の自動生成 - GraphQL ワークスペース - Headers タブを備えた専用エディター、スキーマの完全なイントロスペクション(キャッシュ対応)、Docs Explorer サイドバー、保存済みリクエストのブラウザー、operationName の複数操作ドロップダウン、外部
.graphqlファイル用のqueryFile対応、整形、cURL としてコピー、GraphQL 対応のレスポンスビューアー(data/errors/extensions セクション)、graphql-ws によるリアルタイムのサブスクリプションストリーミング - cURL のインポート - cURL コマンドを貼り付けるだけで、フィールドがすぐに入力されます
- TypeScript インターフェースジェネレーター - 任意の JSON レスポンスボディから型付き TS インターフェースを推定します
- .env 連携 - 設定不要:プロジェクトルートに
.envがあれば自動的に読み込まれます
フロー(60秒で紹介)
フローは、エージェントが一度作成すれば、CI で継続して実行できる複数ステップのシーケンスです。各ステップは次のステップへ連結され、あるレスポンスから値を抽出して、次のリクエストに自動的に注入します。
flowchart LR
A(["▶ run\nFire a request"]) --> B(["⬇ extract\nPull value from response"])
B --> C(["✓ assert\nCheck the response"])
C --> D{"⎇ conditional\nBranch on result"}
D -->|"pass"| E(["▶ run\nNext request"])
D -->|"retry"| F(["↻ poll\nRepeat until condition met"])
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
例:ログイン → 投稿の作成 → 存在することを確認
# .reqly/flows/e2e-post.yaml
steps:
- type: run
request: auth/login
- type: extract
from: response.body.token
into: authToken # now available as {{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 # uses {{postId}} in the URL
- type: assert
field: body
path: post.title
operator: eq
value: "Hello world"
実行します:
reqly run-flow "e2e-post"
reqly run-flow "e2e-post" --reporter json
reqly run-flow "e2e-post" --data-row '{"userId":"42"}'
コマンド 1 つで CI 用にエクスポートします:
reqly export-flow "e2e-post" --format github-actions
# Writes .github/workflows/e2e-post.yml - installs Reqly, runs the flow, uploads JUnit results
エージェントも export_flow_ci MCP ツールを使って同じ操作を行えるため、YAML を手動で記述する必要はありません。
AWS Signature Version 4(SigV4)認証
Reqly には、API Gateway、AppSync、Bedrock、S3、IoT Core など、あらゆる AWS API へのリクエストに署名する機能が組み込まれています。認証タイプ awsv4 を使用してください。
REST と GraphQL - ヘッダー署名
# Per-request auth in collection YAML
name: invoke-bedrock
method: POST
url: https://bedrock-runtime.us-east-1.amazonaws.com/model/anthropic.claude-v2/invoke
auth:
type: awsv4
credentials:
accessKey: "{{env.AWS_ACCESS_KEY_ID}}"
secretKey: "{{env.AWS_SECRET_ACCESS_KEY}}"
region: us-east-1
service: bedrock
sessionToken: "{{env.AWS_SESSION_TOKEN}}" # optional - for STS temporary creds
headers:
Content-Type: application/json
body: '{"prompt": "Hello from Reqly"}'
Reqly は送信前に、次のヘッダーを計算して注入します:
Authorization: AWS4-HMAC-SHA256 Credential=AKID/date/region/service/aws4_request, SignedHeaders=..., Signature=...X-Amz-Date: 20260702T163930ZX-Amz-Security-Token: <token>(sessionTokenが設定されている場合のみ)
コレクションレベルで設定すると、すべてのリクエストに継承されます。AWS API のコレクション全体に便利です:
"Set collection auth for my-bedrock-api to awsv4 with region us-east-1 and service bedrock"
エージェントが type: "awsv4" と認証情報の各フィールドを指定して set_collection_auth を呼び出します。そのコレクション内のすべてのリクエストに自動的に署名されます。
| 認証情報フィールド | 必須 | 例 |
|---|---|---|
accessKey | はい | AKIAIOSFODNN7EXAMPLE |
secretKey | はい | wJalrXUtn... |
region | はい | us-east-1、eu-west-1 |
service | はい | execute-api、bedrock、s3、appsync、sts |
sessionToken | いいえ | STS セッショントークン(一時的な認証情報) |
WebSocket - URL の事前署名(AppSync、IoT Core)
ブラウザーの WebSocket API では、カスタムヘッダーを送信できません。Reqly は代わりに接続 URL に事前署名を行い、X-Amz-Algorithm、X-Amz-Date、X-Amz-Credential、X-Amz-Signature をクエリパラメーターとして追加します。wss:// スキームは常に維持されます。
run_realtime MCP ツールを使用:
{
"type": "websocket",
"url": "wss://abc123.appsync-realtime-api.us-east-1.amazonaws.com/graphql",
"awsAuth": {
"accessKey": "AKIAIOSFODNN7EXAMPLE",
"secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-east-1",
"service": "appsync"
},
"captureTimeout": 5
}
ベストプラクティス:環境変数を使用する
認証情報は Reqly の環境変数として保存し、コレクションの YAML にハードコードしないでください。
# In Reqly UI or via MCP set_environment
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtn...
AWS_REGION=us-east-1
AWS_SESSION_TOKEN=FQoGZXIv... # if using temporary creds
リクエストの認証ブロックで {{env.AWS_ACCESS_KEY_ID}} を参照します。認証情報は環境設定内に保持され、git の YAML コレクションファイルにコミットされることはありません。
📤 コレクションのエクスポート(30 秒)
**Reqly にロックインされることはありません。**コレクションはプレーンな YAML ファイルなので、データは常にご自身で管理できます。移行をさらに簡単にするため、Reqly には組み込みの自由形式エクスポート機能があり、コレクションを他のツール、ドキュメントサイト、API ゲートウェイにすぐに移行できます。
- 📮 Postman(
postman):標準の Postman v2.1 JSON ファイルをエクスポートします。Postman、Insomnia、その他の HTTP クライアントに直接インポートするのに最適です。 - ⚙️ OpenAPI(
openapi):OpenAPI 3.0 JSON 仕様を生成します。Swagger UI、クライアント SDK の生成、API ゲートウェイの設定に最適です。 - 📖 Markdown ドキュメント(
docs):リポジトリ、Wiki、静的サイトジェネレーターにコミットできる、美しい Markdown(.md)形式の API リファレンスを生成します。
CLI を使用する場合:
reqly export docs my-collection
reqly export docs my-collection --output docs/api/my-collection.md
AI エージェントを使用する場合:
エージェントに依頼するだけで簡単に実行できます。export_collection MCP ツールを呼び出すことで、API を自動的にエクスポートできます。
"Export my 'users' collection to a Postman file so I can share it with the frontend team."
受信リクエストのキャプチャ(ミドルウェア)(45 秒)
コードベースが複雑すぎる、またはドキュメントが不足していて AI がコレクションを作成するワークフローを使えない場合は、reqly-middleware をインストールして、アプリに入ってくるすべてのリクエストを自動的にキャプチャします。
npm install reqly-middleware
// Express
import { reqlyMiddleware } from 'reqly-middleware'
app.use(reqlyMiddleware())
// Next.js (middleware.ts at project root)
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 を呼び出すよう依頼すると、お使いのフレームワークに対応する正確なコードスニペットを取得できます。
コレクションの仕組み(30 秒)
コレクションは、プロジェクトディレクトリ内の .reqly/ に、人が読みやすい YAML ファイルとして保存されます。変数、認証プロファイル、テストアサーションをサポートしています。
リクエスト YAML の例:
name: create-user
method: POST
url: "{{baseUrl}}/api/users"
headers:
Content-Type: application/json
body:
email: [email protected]
assertions:
- field: status
operator: eq
value: 201
- field: body
path: user.id
operator: neq
value: ""
アサーション(45 秒)
アサーションは、リクエストの実行後に毎回自動的に実行されます。各アサーションは、1 つの項目をチェックします。
| プロパティ | 値 | 備考 |
|---|---|---|
field | status | body | latency | 必須です。type ではなく field を使用してください。 |
operator | eq | neq | contains | lt | gt | 必須です。 |
value | 文字列、数値、またはブール値 | **必須です。**期待値です。 |
path | ドット記法の文字列 | field が body の場合に必須です。JSON ボディ内のパスを指定します。例:user.id、data.items.0.name。 |
よくある間違い:field: "status" ではなく type: "status" と記述すると、アサーションは一致しないままになり、「got undefined」と表示されて常に失敗します。
例:
assertions:
- field: status # HTTP status code
operator: eq
value: 200
- field: body # JSON body field at path
path: user.active
operator: eq
value: true
- field: latency # response time in ms
operator: lt
value: 2000
CLI ランナー(45 秒)
Reqly は、ターミナルや CI/CD パイプラインでテストスイートを実行するために使用できます。
reqly run users
レポーター形式と環境をサポートしています。
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> ドキュメントを標準出力に書き込みます。CI で取得できるよう、ファイルにリダイレクトしてください。リクエストごとの各アサーションが 1 つの <testcase> になります。アサーションのないリクエストは暗黙の <testcase> が 1 つとなり、ステータスが 500 以上の場合にのみ失敗します。
フローの実行
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":"[email protected]"}'
CI へのフローのエクスポート
reqly export-flow "Login Flow" --format github-actions
.github/workflows/Login Flow.yml を作成し(必要に応じてディレクトリも作成します)、Reqly のインストールと起動、--reporter junit > results.xml によるフローの実行、push とプルリクエスト時の results.xml のビルド成果物としてのアップロードを行います。フローがローカル API にアクセスする場合は、「Run flow」の前に「Start server」ステップを追加してください。
push 時だけでなく、一定間隔でエージェントに API を再チェックさせたいですか?Claude Code では、次のようにします。
/schedule every morning at 9am, run reqly run-flow "Login Flow" --reporter junit and tell me if anything broke
モックサーバー
保存済みのレスポンス例を実際の HTTP サーバーとして配信すると、フロントエンドコードやエージェントは、稼働中のバックエンドを使わずに、制御されたレスポンスに対してリクエストを実行できます。
reqly mock <collection> # default port 4243
reqly mock <collection> --port 5000
ワークスペース管理
Reqly を設定すると、複数のプロジェクトディレクトリから一度にコレクションを読み込めます。複数の関連 API を開いているマイクロサービスやモノレポに最適です。
reqly workspace add <absolute_path> # Adds a project to your workspace
reqly workspace remove <absolute_path> # Removes it
reqly workspace list # Lists all configured projects and named workspaces
マイクロサービスチーム向けには、名前付きワークスペースモデルもあります。ワークスペースは、チームメイト間で共有される安定したリポジトリエイリアスを、マシンごとのローカルパスに対応付けます。設定は ~/.reqly/workspaces/<name>/workspace.yaml に保存され、リポジトリにコミットされることはありません。
reqly workspace create checkout-team # scaffold the workspace
reqly workspace link checkout-team auth /repos/auth-svc # alias "auth" -> local path
reqly workspace link checkout-team payments /repos/pay-svc
reqly workspace use checkout-team # set active workspace
エージェントも create_workspace、link_workspace_repo、use_workspace、list_workspaces MCP ツールを使って同じ操作を行えます。また、UI ではプロジェクト一覧の上にワークスペースのドロップダウンがあります。エイリアスはリポジトリ間のワークフローの基盤です(フローステップで repo: auth を指定する機能は次に追加予定です)。
起動時に、Reqly はすべてのアクティブなルート(メソッド、パス、サンプル数)を表形式で表示します。Ctrl+C を押すと停止します。
リクエストごとに特定のサンプルを選択するには、X-Reqly-Example: <name> ヘッダーを設定します。指定しない場合は、最初に保存されたサンプルが返されます。
モックサーバーは、UI とプログラムからの制御用に、メインサーバー(ポート 4242)で REST ルートも公開します。
POST /api/mock/start { collection, port? }
POST /api/mock/stop
GET /api/mock/status
貢献(60 秒)
Reqly は、AI エージェント向けに構築されたオープンソースの実行エンジンです。スタック全体にわたる貢献を歓迎します!
貢献できること
- エンジンとプロトコル: 新しい認証方式(Digest、NTLM)の追加や、組み込みヘルパーライブラリ(モックデータ生成など)を増やして JS スクリプトサンドボックスを強化できます。
- MCP ツールキット:
src/mcp/tools/に新しいツール(Swagger 2.0 や Insomnia のインポーターなど)を作成し、エージェントの機能を拡張できます。 - UI と仕上げ: React フロントエンド(
src/ui/)にテーマや優れた構文ハイライトを追加したり、UI を修正したりできます。
中核となる設計原則:ツールファースト
すべての機能は、まずツールとして実装する必要があります。 MCP 経由で呼び出せない機能は、機能として存在しません。UI は同じツールを視覚的に扱うためのラッパーであり、MCP インターフェースにない機能を備えることはありません。AI のロジックはエンジンの外部に置いてください。Reqly は、賢いエージェントのためのシンプルな実行レイヤーです。
ローカル環境のセットアップ
git clone https://github.com/RutvikPansare/Reqly.git
cd Reqly
npm install
npm run dev
テストの基準
Vitest(npm test)を使用します。エンジンのロジック(src/engine/)と MCP ツールの契約(src/mcp/)では、100% のカバレッジを伴う厳格な TDD が必要です。 UI のインタラクションは柔軟にテストします。PR を提出する前に、すべてのテストが通ることを確認してください。
FAQ
Reqly を使うには AI エージェントが必要ですか?
いいえ。`localhost:4242` のローカルホスト UI は単独で動作します。エージェントなしで、コレクションの作成、リクエストの送信、レスポンスの確認がすべてできます。MCP インターフェースは機能を追加するものです。エージェントを接続すると、ツールを通じて同じ機能を利用できます。両方を同時に使用することもできます。
Postman や Insomnia とは何が違いますか?
違いは 3 つあります。
- コレクションはリポジトリ内の YAML ファイルです。クラウドアカウントや独自のバイナリ形式に閉じ込められることはありません。コードと一緒に git で管理でき、エージェントが直接読み書きでき、PR で差分を確認できます。
- Reqly は MCP サーバーです。AI エージェントが接続すると、UI を開かずに、リクエストの送信、フローの実行、コントラクトの検証など、すべてのツールを利用できます。Postman と Insomnia は UI ファーストですが、Reqly はエージェントファーストです。
- クラウドへの依存は一切ありません。アカウントも同期もテレメトリーも不要です。すべてお使いのマシン上で動作します。
Bruno とは何が違いますか?
最も近い比較対象は Bruno です。Bruno もローカルで動作し、ファイルベースで、git と親和性があります。主な違いはエージェントインターフェースです。Bruno には MCP サーバーがないため、エージェントは Bruno のツールを呼び出してリクエストを送信したり、プログラムからコレクションを構築したりできません。Reqly は当初から AI エージェントを主なユーザーとして設計されており、UI は同じエンジンを利用するための副次的な画面です。
Reqly はクラウドにデータを送信しますか?
いいえ。Reqly はローカルプロセスです。コレクションはリポジトリ内の
.reqly/ に保存されます。API キーはお使いのマシン上の ~/.reqly/config.json に保存されます。Reqly のサーバーは存在しないため、Reqly のサーバーを経由する通信はありません。
Cursor や Claude Code なしで Reqly を使えますか?
はい。Cursor、Claude Code、Claude Desktop、Gemini CLI、Codex など、MCP の stdio トランスポートに対応しているクライアントならどれでも使えます。エージェントがまだ MCP に対応していない場合でも、エージェントを使わずに CLI(
reqly run、reqly run-flow)と localhost の UI を利用できます。
macOS に「開発元を検証できないため、デスクトップアプリを開けません」と表示されます。安全ですか?
はい。現時点では Reqly デスクトップアプリは署名されていません(Apple Developer アカウントをまだ取得していません)。これは、署名されていないアプリに対して macOS Gatekeeper が表示する標準的な警告であり、問題があることを示すものではありません。アプリを右クリックして「開く」を選択し、ダイアログで「このまま開く」を選択してください。この操作はマシンごとに一度だけ必要です。Homebrew cask 経由でインストールすると、この警告は完全に回避できます。
インストーラーを実行すると Windows SmartScreen に「不明な発行元」と表示されます。安全ですか?
はい。現時点ではインストーラーは署名されていません(EV 証明書をまだ取得していません)。これは、ダウンロード数が少ない新しいインストーラーに対して SmartScreen が表示する標準的な警告です。「詳細情報」をクリックし、次に「実行」をクリックしてください。インストーラーのダウンロード評価が十分に蓄積されると、警告は自動的に表示されなくなります。SmartScreen の信頼がなくても、改ざんを検出できるようにバイナリは Sigstore/cosign で署名されています。
デスクトップウィンドウが真っ白/黒くなりました。何が起きたのですか?
アプリは自動で復旧します。レンダラーがクラッシュすると自動的に再読み込みされ、サーバーとの接続が失われると「Reqly を起動しています...」画面が表示されて、サーバーから応答があった時点で再接続されます。また、サーバープロセスが停止すると、組み込みのウォッチドッグが再起動します。エラー画面が消えずに表示される場合は、
~/.reqly/desktop.log を確認してください。すべてのクラッシュ、読み込み失敗、サーバーの再起動がタイムスタンプ付きで記録されています。問題を報告する際は、このファイルを添付してください。
デスクトップアプリを使うには CLI のインストールが必要ですか?
いいえ。T-233 以降、デスクトップアプリには Reqly サーバーが同梱されており、アプリ独自のランタイムで実行されるため、Node、npm、Homebrew は不要です。CLI をインストール済みの場合(Homebrew または npm)、アプリは自動的に CLI を優先して使用します(優先順位:Homebrew CLI、次に PATH 上の npm CLI、最後に同梱サーバー)。そのため、エージェントは
brew upgrade/npm update -g でインストールされたバージョンを使います。セットアップウィザードのオプションの「CLI をインストール」ボタンを使うと、同梱サーバーが /usr/local/bin/reqly にシンボリックリンクされ、ターミナルから使えるようになります。
エージェントが間違ったディレクトリからコレクションを探しています。どうすればよいですか?
AI ツールがプロジェクトとは異なる作業ディレクトリから Reqly プロセスを起動すると、この問題が発生します。次のいずれかの方法で解決できます。
- Cursor/ほとんどのエディター - プロジェクトディレクトリ内から
reqly setup cursorを再度実行してください。セットアップコマンドは MCP 設定に${workspaceFolder}を書き込み、Cursor が起動時に正しいパスを渡すようにします。 - Claude Desktop -
reqly use /path/to/your/projectを実行してプロジェクトをグローバルにアクティブ化し、その後 Claude Desktop を再起動してください。 - 手動で設定を上書き - AI ツールの設定にある MCP サーバーの項目で、
REQLY_PROJECT_DIR環境変数を設定してください。
AI エージェントなしで CI から Reqly を使えますか?
はい。それが
reqly run と reqly run-flow の目的です。エージェントがローカルでコレクションを作成、管理し、CI はそれを実行するだけです。--reporter junit を使うと、GitHub Actions、GitLab CI、Jenkins がネイティブで解析し、テストダッシュボードに表示できる JUnit XML 出力を取得できます。
reqly run my-collection --reporter junit > results.xml
GitHub Actions のワークフロー全体を自動生成することもできます。
reqly export-flow "my-flow" --format github-actions
ミドルウェアは本番環境のリクエストをキャプチャしますか?
いいえ。これは意図した設計です。
reqly-middleware は localhost:4242 に接続し、Reqly が実行されていない場合は何もせずに終了します。Reqly が存在しない本番環境でトラフィックをキャプチャすることはなく、リクエストをバッファリングしたり遅延させたりすることもありません(送信後は結果を待たず、エラーは無視します)。
Reqly はどの認証方式に対応していますか?
Bearer トークン、API Key(ヘッダーまたはクエリパラメーター)、Basic 認証、PKCE を使用した OAuth 2.0、mTLS(クライアント証明書)、AWS API(API Gateway、AppSync、Bedrock、S3、IoT Core)向けのAWS Signature Version 4に対応しています。認証はコレクション単位で設定してすべてのリクエストに適用するか、リクエストごとに上書きできます。エージェントは
set_collection_auth MCP ツールを使って認証を設定できるため、YAML を手動で編集する必要はありません。AWS SigV4 を使う場合は、type: "awsv4" と accessKey、secretKey、region、service の各認証情報を渡します。
既存の Postman または Bruno のコレクションをインポートできますか?
はい。Reqly は Postman v2.1 のコレクションと Bruno のコレクションをそのままインポートできます。
reqly import postman-collection.json
reqly import bruno-collection/
MCP ツールを使う方法もあります。エージェントが import_collection を呼び出し、ファイルパスを渡せます。逆方向の変換が必要な場合は、Reqly から Postman v2.1 および OpenAPI 3.0 形式にエクスポートすることもできます。
環境変数はどのように機能しますか?
Reqly には 3 つの変数レイヤーがあり、次の順序で解決されます。
- .env ファイル - プロジェクトのルートから自動的に読み込まれます(または
set_dotenv_filesで設定します) - 環境変数 -
dev、staging、prodなどの名前付きセットで、.reqly/environments.yamlに保存されます - コレクション変数 - 単一のコレクションに限定され、
baseUrlなどの値に便利です
URL、ヘッダー、本文のどこでも {{varName}} を使用できます。reqly run --env prod または UI のドロップダウンで環境を切り替えます。
Reqly は GraphQL に対応していますか?
はい。UI には、スキーマのイントロスペクション、構文のハイライト、変数パネルを備えた専用の GraphQL ワークスペースがあります。GraphQL リクエストは REST と同様にコレクションに保存され、エージェントは同じ MCP ツールを使って作成、実行できます。
チームで Reqly を実行できますか?コレクションはどのように共有しますか?
コレクションは、プロジェクトリポジトリ内の
.reqly/ にあるプレーンな YAML ファイルです。共有には Git を使うだけです。フォルダーをコミットすれば、チーム全員が同じコレクションを利用できます。アカウントやワークスペースへの招待、クラウド同期は必要ありません。シークレットと API キーは、各開発者のマシン上の ~/.reqly/config.json にローカル保存され、コミットされることはありません。
Reqly に必要な Node.js のバージョンを教えてください。
Node.js 18 以降です。Reqly が使用するネイティブの
fetch、ES モジュール、MCP SDK はすべて Node 18 以降を必要とします。node --version でバージョンを確認できます。
ポート 4242 がすでに使用されています。変更できますか?
はい。起動時に
--port を渡します。
reqly start --port 4243
pre/post スクリプトはどのように動作しますか?
各リクエストには、リクエストの実行前後に動作する、サンドボックス化された小さな JavaScript スニペットである
preScript と postScript を設定できます。環境変数の読み書きに使えるメソッドを持つ reqly オブジェクトにアクセスできます。
// preScript - set a dynamic header before the request
reqly.setEnvVar('timestamp', Date.now().toString())
// postScript - extract a value from the response into an env var
const token = reqly.response.body.access_token
reqly.setEnvVar('authToken', token)
// You can also use reqly.setVar(key, val) / reqly.getVar(key) to store collection-scoped variables in memory
スクリプトはファイルシステムやネットワークにアクセスできない分離されたコンテキストで実行されます。操作できるのは Reqly の変数ストアとレスポンスオブジェクトのみです。
長いスクリプトには、代わりに preScriptFile / postScriptFile を使用してください。値にはコレクションフォルダーからの相対パス(例:"scripts/post.js")を設定します。Reqly は実行時にファイルを読み込むため、YAML に手を加えずに編集できます。JSON のエスケープは不要です。
// create_request({ postScriptFile: "scripts/post.js", ... })
// then edit .reqly/<collection>/scripts/post.js freely
Reqly を停止するにはどうすればよいですか?
reqly stop # stops the running instance
reqly status # check if an instance is running and which project it's on
reqly app # opens the running instance's UI in your browser
または、Reqly の実行中にターミナルで Ctrl+C を押してください。Reqly は実行中のインスタンスを追跡するため、~/.reqly/running.json にロックファイルを書き込みます。reqly stop はこのファイルを読み取り、プロセスを見つけてシグナルを送ります。
再起動せずにプロジェクトを切り替えることはできますか?
はい。Reqly インスタンスがすでに実行中の場合、別のプロジェクトディレクトリで新しいインスタンスを起動すると、サーバーを再起動せずにアクティブなプロジェクトがホットスワップされます。
cd /path/to/other-project
reqly start
# "Switched active project to /path/to/other-project"
新しいプロセスは既存のインスタンスに処理を引き継ぎ、終了します。MCP 接続は維持され、新しいプロジェクトのコレクションがすぐに表示されます。
Webhook をテストする方法はありますか?
はい。トンネルコマンドを使ってローカルサーバーをインターネットに公開し、受信した Webhook ペイロードをキャプチャできます。
reqly exec --tunnel npm run dev
これにより、開発サーバーがパブリック HTTPS URL で起動します。その URL に届いたリクエストはすべてローカルサーバーにプロキシされ、自動的に Captured コレクションに保存されます。
スターの推移
Reqly が時間の節約に役立ったなら、スターを付けることで、AI ネイティブな他の開発者にも見つけてもらいやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。