Reqly (RutvikPansare/Reqly) is an MCP server listed on the M8ven Trust Index. It scores 48 out of 100, grade D. It declares 69 tools. No publisher has claimed this listing.

D
Caution
48/100

Reqly

API testing for AI agents. From codebase to CI in one agent session.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

RutvikPansare

Source: Glama · also listed on github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Secret credentials may flow to a network call
1 flow detected: GITHUB_TOKEN. We can’t prove the destination matches the brand the credential belongs to.
⚠️
Known vulnerabilities in dependencies: 2 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes69 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

add_flow_step

Appends a step to the end of a flow. Step types: run (fire a saved request, optional retry), extract (pull a value from the last response into flow-local scope or the active env), assert (check the last response, reuses the same assertion engine as requests), poll (fire repeatedly until a condition

add_workspace_project

Add a project directory to the Reqly workspace. Use list_workspace_projects to see existing projects. The directory must contain a .reqly/ folder.

configure_secret_provider

Stores secret provider credentials in ~/.reqly/config.json under secretProviders.<provider> (global config, never the project repo), then re-resolves the project's .env vault URIs. provider: "bitwarden" (config keys: accessToken, organizationId), "onepassword" (config key: serviceAccountToken), "aws

create_collection

Creates a new named collection in .reqly/. When to use: after reading the project's route files (Express routes/, Next.js app/api/, FastAPI routers), before adding requests for that service. Preferred pattern: call this once per service, and supply the `requests` array to scaffold all endpoints foun

create_environment

Creates a new named environment (e.g. "development", "staging") for holding variables like baseUrl and auth tokens. When to use: at the start of building a collection, before set_variable. Preferred pattern: create_environment, then set_variable for baseUrl and tokens, then create_collection and cre

create_flow

Creates a new named flow in .reqly/flows/. A flow is an ordered sequence of steps that orchestrates saved requests into an end-to-end automation test (run/extract/assert/poll/conditional), distinct from a collection which just holds saved requests. When to use: after the requests it needs already ex

create_request

Adds a request to an existing collection. When to use: for each endpoint found while reading route handler source - infer method, URL, headers, and body shape from the handler, TypeScript types, Zod schemas, and validation middleware are the most reliable sources. Preferred pattern: call create_coll

create_workspace

Create a named Reqly workspace at ~/.reqly/workspaces/<name>/workspace.yaml. A workspace groups multiple repos under stable aliases so cross-repo flows can reference requests from any linked repo. Returns the new workspace config { name, repos: [] }. Link repos with link_workspace_repo, activate wit

delete_collection_auth

Removes the collection-level auth configuration from a named collection. After deletion, requests in the collection will not have any auth injected unless they have their own request-level auth configured. Does not error if no collection auth was set. When to use: to clear a shared auth config that

delete_collection_spec

Removes the OpenAPI/Swagger spec configuration from a collection. run_request stops returning contractViolations for requests in this collection afterward.

delete_collection_variable

Removes a single collection-level variable from a named collection. When to use: to clean up a stale or misnamed collection variable. Does not error if the key was already absent.

delete_flow_step

Removes a step from a flow by stepId.

delete_flow

Permanently deletes a flow and all of its steps.

delete_variable

Removes a variable from an environment. When to use: cleaning up a stale or wrong baseUrl/token before setting a new one with set_variable.

duplicate_collection

Deep-copies a collection (all its requests and metadata) under a new name, "Copy of <name>" (or "Copy of <name> (1)", etc. if that name is already taken). When to use: to branch a collection before making experimental changes, or to use one collection as a starting template for another. Returns the

duplicate_environment

Copies an environment (all its variables) under a new name, "Copy of <name>" (or "Copy of <name> (1)", etc. if that name is already taken). When to use: to branch an environment (e.g. clone "staging" before tweaking it into "staging-debug") without touching the original. Returns the new environment.

exec_with_proxy

Starts the auto-capture proxy and runs the given shell command with HTTP_PROXY/HTTPS_PROXY injected into its environment, so every outbound request the command makes is captured into a Reqly collection. Always tries to spawn the command itself as a detached background process first - only falls back

export_collection

Exports a collection to a portable format. Use 'postman' to generate a Postman v2.1 JSON file that can be imported into Postman or Insomnia. Use 'openapi' to generate an OpenAPI 3.0 JSON spec. Use 'docs' to generate a Markdown API reference. Returns the exported content as a string.

export_environment
export_flow_ci

Generates a GitHub Actions workflow that installs Reqly and runs a flow in CI, writes it to .github/workflows/<flow>.yml, and returns the file path. When to use: right after a flow is working locally, to wire up CI for it without the developer touching a terminal.

generate_code

Generates a code snippet for a given HTTP request in the specified language/library. Use this when a developer needs to reproduce a request in their application code. Returns the snippet as a string. Supported targets: "curl" (shell), "fetch" (browser/Node.js), "axios" (Node.js).

get_collection_auth

Returns the collection-level auth configuration for a named collection. Collection auth is applied to every request in the collection unless a request has its own auth configured (or explicitly sets type:none to opt out). When to use: before calling set_collection_auth to check what is already set,

get_collection_spec

Returns the OpenAPI/Swagger spec configuration for a collection, including whether it is currently loaded and how many operations it defines. When to use: to check whether contract validation is set up before debugging why run_request is not returning contractViolations.

get_collection_variables

Lists the collection-level variables for a named collection. Collection variables are always available to every request in that collection, regardless of the active environment, and they win over environment variables of the same name. When to use: to check what {{baseUrl}}/tokens a collection alrea

get_dotenv_files

Returns which .env-style files Reqly is currently loading and which keys they define. Values are omitted for security - use get_variables to resolve a specific key at runtime. When to use: to check whether a .env file is actually being picked up before debugging why a {{VAR}} is not resolving.

get_flow

Returns a flow by name, including its full step list and any data rows. Use this to inspect a flow before editing it with add_flow_step/update_flow_step/delete_flow_step.

get_inherited_headers

Returns the headers that will be automatically injected into a request based on its auth configuration, before the request is fired. Use this to inspect what Authorization or API key headers Reqly will add, without having to fire the request. Useful for debugging auth issues or verifying credentials

get_mock_status

Returns the current status of the mock server: whether it is running, which collection it is serving, the port, and the list of active routes with example counts.

get_project

Returns the absolute path of the project directory Reqly is currently pointed at (the parent of its .reqly collections folder), plus how that path was resolved. When to use: call on first connection to verify Reqly is operating on the expected directory - catches misconfiguration before any tool cal

get_proxy_status

Returns the current status of the capture proxy: { running: boolean, port?: number, collectionName?: string }. When to use: before calling start_proxy (to avoid a double-start error) or to check where captured traffic is being saved.

get_response_full

Retrieves the complete untruncated last response for a named request. When to use: only after get_response or run_request showed a truncated body and you need the full payload - e.g. to inspect a field that got cut off.

get_response

Retrieves the last cached response for a named request (truncated if it was large). When to use: right after run_request, to inspect the result without re-firing the request. Call get_response_full instead if you need the untruncated body.

get_secret_status

Lists every vault secret URI detected in the project's .env files with its resolution status. Returns { secrets: [{ key, uri, source, status: "resolved" | "error", error? }] } - values are never included. When to use: before running a collection that depends on .env vault secrets, to check all of th

get_secret

Resolves a vault secret URI (bw://project/secret for Bitwarden, op://vault/item/field for 1Password, aws://secret-name or aws://arn:... for AWS Secrets Manager, vault://mount/data/path/field for HashiCorp Vault KV v2) and returns { resolved: true, preview } where preview is only the first 4 characte

get_variables

Lists all variables in a named environment (or active environment), plus any variables set during the last script run if collectionName is provided. When to use: to check what baseUrl/tokens already exist before calling set_variable, or to debug why a {{variable}} in a request is not resolving. Scri

import_collection

Imports a collection into Reqly from a file. Supported formats: "postman" (Postman v2.1 JSON), "bruno" (Bruno .bru file or directory), "insomnia" (Insomnia v4 JSON export), "openapi" (OpenAPI 3.0 or Swagger 2.0 JSON/YAML). When to use: when a developer already has an existing collection and wants to

import_environment
install_middleware

Detects the project framework and returns the install command and code snippet to add Reqly's inbound capture middleware. Proactively suggest this when: the user is working on a backend API, the user asks what Reqly can do, or the user wants to build a collection but their codebase is complex or und

introspect_graphql
link_workspace_repo

Link a local repo into a named workspace under a stable alias (e.g. alias "auth" -> /repos/auth-service). Aliases are shared across teammates; each developer links their own local path. Upserts if the alias already exists. Returns the updated workspace config { name, repos: [{ alias, path }], shared

list_collections

Returns all collections and requests in the active project. When to use: call this first on any new session, before creating anything, to see what already exists and avoid duplicating collections or requests.

list_examples
list_flows

Lists every flow stored in .reqly/flows/, including their steps and data rows. Use this to see what flows already exist before creating a new one.

list_grpc_services

Discovers gRPC services and methods from a running server using gRPC server reflection. Use this when no .proto file is available - the server must have grpc.reflection.v1alpha.ServerReflection enabled. Returns: { services: [{ name }], rawFileDescriptors: Buffer[] }. After calling this, use the serv

list_spec_operations

Lists every operation (operationId, method, path, summary) in the OpenAPI/Swagger spec configured on a collection. When to use: to pick the right operationId to set via specOperationId on a request, especially when the request URL does not cleanly map to a spec path (e.g. a custom mockPath or an unu

list_workspace_projects

List all projects configured in the Reqly workspace. Returns the active project and any additional projects stored in ~/.reqly/config.json.

list_workspaces

List all named Reqly workspaces from ~/.reqly/workspaces/ and which one is active. Returns { workspaces: [{ name, repos: [{ alias, path }], sharedEnv? }], active: <name> | null }. Distinct from list_workspace_projects, which lists the flat multi-project path list.

move_request

Moves a saved request from one collection to another. If a request with the same name already exists in the target collection, the moved request is renamed with a "(1)", "(2)", etc. suffix to avoid overwriting it. When to use: to reorganize requests into the right collection after building them ad-h

refresh_oauth2_token

Refreshes the OAuth 2.0 access token for an auth profile using its stored refresh token. Call this when a request returns 401 and the profile uses OAuth2. Returns the new accessToken and its expiry. The token is automatically persisted to the profile so subsequent run_request calls use it immediatel

remove_workspace_project

Remove a project directory from the Reqly workspace. Does not delete any files; only removes the path from the workspace config.

run_collection

Runs all requests in a collection sequentially and returns pass/fail per request. When to use: after building a collection with create_request, to verify every endpoint actually works end to end. Each result in the results array includes a testResults field: [{ name: string, passed: boolean, error?:

run_flow

Runs a flow end to end and returns a structured FlowRunResult ({ flowName, passed, steps, dataRows?, duration }). Supported request types in flow steps: REST (type: rest or unset), GraphQL (type: graphql), and gRPC unary (type: grpc). gRPC steps route through the dedicated gRPC runner - the response

run_realtime

Connects to a realtime endpoint (WebSocket, SSE, Socket.IO, or MQTT), captures messages for captureTimeout seconds, then disconnects and returns all received messages. Use this to verify a realtime endpoint works, test pub/sub flows, or capture a message sample. Returns { messages: [{ id, ts, source

run_request

Fires a saved request and returns the response. When to use: to verify a request actually works after creating it, or to debug a failing endpoint. Preferred pattern: call list_collections first if you don't know the exact request name. If the response is a 401, use set_variable to set the auth token

save_example
set_collection_auth

Sets the collection-level auth for a named collection. Auth set here is inherited by every request in the collection unless a request overrides it with its own auth or sets type:none to opt out. Supported types: bearer (credentials.token), basic (credentials.username + credentials.password), apiKey

set_collection_spec

Configures an OpenAPI/Swagger spec on a collection for contract validation - persists the config and loads the spec immediately. After this, run_request automatically returns contractViolations for any request matched to a spec operation. When to use: right after building a collection from a known O

set_collection_variable

Sets a key-value pair on a collection (e.g. baseUrl shared by every request in that collection). Collection variables are always available to requests in the collection regardless of the active environment, and they override environment variables of the same name. When to use: to define a {{baseUrl}

set_dotenv_files

Sets which .env-style files Reqly loads as the lowest-priority variable layer (below collection vars and environment vars). Persists the file list and reloads immediately - no restart needed. Later files in the list win on key collision (e.g. [".env", ".env.local"] means .env.local overrides .env).

set_environment

Switches the active environment, so subsequent run_request and run_collection calls resolve {{variables}} from it. When to use: before running requests against a different environment (e.g. switching from "development" to "staging").

set_variable

Sets a key-value pair (e.g. baseUrl, an auth token) in a named environment, creating the environment if it does not exist. When to use: before running any request, to set baseUrl and any auth tokens those requests need. Preferred pattern: prefer {{baseUrl}} and {{variableName}} over hardcoded URLs a

start_mock

Starts a mock HTTP server for a collection. Each request in the collection that has at least one saved example gets a route. Use X-Reqly-Example: <name> to select a specific example; otherwise the first example is served. Returns the port and active routes. Prerequisite: requests must have saved exa

start_proxy

Starts the outbound capture proxy server. When to use: to capture HTTP calls your app makes TO external APIs (Stripe, Shopify, third-party services) - not for documenting your own endpoints. This does NOT capture inbound calls to your own routes; for those, read the route files and use create_reques

stop_mock

Stops the running mock server. No-op if the mock is not currently running.

stop_proxy

Stops the auto-capture proxy server and kills any process spawned by exec_with_proxy. When to use: after capturing the traffic you needed, before list_collections to review what got captured.

switch_project

Points Reqly at a different project directory, reinitialising collections, environments, flows, and dotenv loading to read from that project's .reqly folder locally without affecting other running instances. When to use: when the agent needs to operate on a different project than the one Reqly curre

update_flow_step

Replaces an existing step in a flow, matched by stepId. Use this to edit a step in place (e.g. change a run step's target request, or a conditional's expression) without reordering the flow.

use_workspace

Set the active Reqly workspace (persisted in ~/.reqly/config.json as activeWorkspace). The active workspace provides alias -> path resolution for cross-repo flows. Returns { active: <name>, workspace: { name, repos, sharedEnv? } }.

validate_response

Re-validates the last stored response for a request against the collection's configured OpenAPI spec, without re-running the request. When to use: to check contract violations on a response you already have, or after configuring a spec on a collection whose requests were run before the spec existed.

// known CVEs in dependencies2 high4 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highjs-yaml@4.3.0GHSA-5p4m-2wfm-xmqj

JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported

highundici@7.28.0GHSA-4cwx-7wf7-3272

undici vulnerable to cross-user information disclosure and parse-time crash via degenerate private cache directives

lowundici@7.28.0GHSA-8xcm-r25x-g524

undici vulnerable to downstream response desynchronization via retry interceptor

lowundici@7.28.0GHSA-jr45-8vmc-qm54

undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives

lowundici@7.28.0GHSA-m8rv-5g2x-5cg5

undici vulnerable to CRLF Injection via blob-like body 'type' property

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configREQLY_PROJECT_DIR2. Environment Variable: \\
configREQLY_TEST_PORT
// quality suggestions

Dependencies

41 dependencies, 1 flagged: @playwright/test

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

69/69 tools missing one or more hints — add_flow_step (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); add_workspace_project (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); configure_secret_provider (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +66 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Shell command execution

3 child_process/subprocess calls in production code — runs shell commands (packages/desktop/src/main.ts:230, packages/desktop/src/main.ts:244, test-spawn.cjs:3)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Production dependencies are patched

0 critical, 2 high severity in production deps — js-yaml@4.3.0 (high), undici@7.28.0 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dependency freshness

3/27 production deps abandoned (no release in 2+ years): swagger-parser@2023-03-04 (3.5y), localtunnel@2023-11-07 (2.8y), ajv-formats@2024-03-30 (2.4y)

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/rutvikpansare/reqly?variant=verified)](https://m8ven.ai/mcp/rutvikpansare/reqly)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 9229aa0ce4901cfc7be5e146fc15a8138305543c
code hash: 0edfb0c151e13548ca33e38678ddc83ef30639e005a50f6ce43b652e2f545a34
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client