The official Model Context Protocol (MCP) server for VerifyAX: a cloud-hosted bridge that gives your AI tools secure, real-time access to register agents, generate scenarios, run simulations, and read evaluations on the VerifyAX platform.
Getting started · Supported tools · Security · Deploy your own · Report an issue
--- The **official VerifyAX MCP Server** is a bridge between your MCP-compatible AI client and the [VerifyAX](https://verifyax.com) agent-evaluation platform. Once configured, it lets you register agents, generate scenarios, run simulations, and read evaluations in natural language — without writing API scripts. With the VerifyAX MCP Server, you can: - **Register and test agents** (A2A or API) and confirm connectivity before evaluation. - **Generate scenarios** from skill tags and wait for completion in one tool call. - **Run evaluations** and read scores, transcripts, and credit usage without manual polling. It complements (does not replace) the [`verifyax-api` skill](https://github.com/verifyax/verifyax-plugins-claude): the skill is for developers writing code; the MCP server is for conversational workflows. ## Contents - [Supported clients](#supported-clients) - [Supported tools](#supported-tools) - [Before you start](#before-you-start) - [Install the MCP server](#install-the-mcp-server) - [How it works](#how-it-works) - [Example workflows](#example-workflows) - [Tips and tricks](#tips-and-tricks) - [Data and security](#data-and-security) - [Troubleshooting](#troubleshooting) - [Support and feedback](#support-and-feedback) - [Disclaimer](#disclaimer) - [For developers](#for-developers) - [License](#license) --- ## Supported clients The VerifyAX MCP Server works with MCP-compatible clients that support **Streamable HTTP** or **stdio**: | Client | Setup reference | | ----------------------------------- | ----------------------------------------------------------------------------------------------------- | | OpenAI ChatGPT | [Connectors / MCP guide](https://platform.openai.com/docs/guides/tools-connectors-mcp) | | Claude (Claude.ai, Code, Desktop) | [Claude MCP docs](https://code.claude.com/docs/en/mcp) | | Cursor | [Cursor MCP docs](https://cursor.com/docs/mcp) | | Visual Studio Code (GitHub Copilot) | [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) | | GitHub Copilot CLI | [About Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli) | | Google Gemini CLI | [Gemini CLI MCP docs](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md) | | Amazon Quick Suite | [MCP integration guide](https://docs.aws.amazon.com/quicksuite/latest/userguide/mcp-integration.html) | Any client that can connect via [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) can also use the hosted endpoint at `https://mcp.verifyax.com/mcp`. > [!IMPORTANT] > **Claude.ai custom connectors: use _No sign-in_ and an `Authorization` header.** This server > authenticates with a VerifyAX API key, not OAuth, so in **Settings → Connectors → Add custom > connector**: > > 1. URL: `https://mcp.verifyax.com/mcp` > 2. Authentication: **No sign-in** — described in the dialog as "for servers that use an API key > instead of OAuth". Leave _Sign in now_ unselected; this server publishes no OAuth metadata, so > an OAuth attempt fails. > 3. Under **Request headers**, add `Authorization` with the value `Bearer sk-ver-api-...`. > > All 17 tools then appear, and Claude.ai lets you set approval per tool (it groups them as 12 > read-only and 5 write/delete — worth setting the write/delete group to require approval, since > `generate_scenario` and `evaluate_agent` spend credits). > > Requires server **0.3.5 or later**: earlier builds matched the `Bearer` scheme case-sensitively > and rejected clients that normalise it, which surfaced only as "Couldn't connect to the server." > The `X-VerifyAX-API-Key` header works with the server but Claude.ai's header field rejects that > name, so use `Authorization`. > [!TIP] > For step-by-step Claude setup and how this compares to the VerifyAX skill and SDK, see > [`docs/using-verifyax-with-claude.md`](docs/using-verifyax-with-claude.md). --- ## Supported tools Seventeen tools mapped to user intents. Blocking tools poll internally and return only when work completes (typically 30s–5min). | Area | Tools | Blocking | | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------: | | **Agents** | `register_agent` · `list_agents` · `delete_agent` | — | | **Scenarios** | `list_compatible_tags` · `recommend_scenario_tags` · `search_scenario_tags` · `generate_scenario` · `list_scenarios` · `get_scenario` · `delete_scenario` | **yes** (`generate_scenario`) | | **Evaluation** | `evaluate_agent` · `list_recent_runs` · `get_run_details` · `get_evaluation_report` · `get_run_output` | **yes** (`evaluate_agent`) | | **Usage** | `get_usage_summary` · `preview_run_cost` | — | > [!NOTE] > For tool descriptions (what Claude reads to pick a tool) and rationale, see > [`docs/tool-descriptions.md`](docs/tool-descriptions.md). Package-level reference: > [`packages/mcp-server/README.md`](packages/mcp-server/README.md). --- ## Before you start Requirements depend on how you connect. ### Remote HTTP (hosted at `mcp.verifyax.com`) - A **VerifyAX API key** (Settings → API Keys in the [console](https://console.verifyax.com)) - An MCP client with **Streamable HTTP** support, or **Node.js 18+** to run the [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) proxy ### Local stdio (`verifyax-mcp-server` via npx) - **Node.js ≥ 20** - A VerifyAX API key in your client config (`VERIFYAX_API_KEY`) The npm package exposes two binaries (`verifyax-mcp-server` and `verifyax-mcp-server-http`); pass the stdio binary name explicitly when using `npx`. --- ## Install the MCP server ### Remote HTTP (recommended) Hosted endpoint: ``` https://mcp.verifyax.com/mcp ``` Send your VerifyAX API key on the initialize request. The hosted server does **not** store keys — each client session brings its own. **Cursor (native URL — v0.48+):** ```json { "mcpServers": { "verifyax": { "url": "https://mcp.verifyax.com/mcp", "headers": { "Authorization": "Bearer sk-ver-api-..." } } } } ``` Do **not** add a `transport` field — Cursor detects Streamable HTTP from the URL. You can also use `"X-VerifyAX-API-Key": "sk-ver-api-..."` instead of `Authorization`. **Claude Desktop / clients without native HTTP (`mcp-remote`):** Add to `claude_desktop_config.json` (Settings → Developer → Edit Config): ```json { "mcpServers": { "verifyax": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.verifyax.com/mcp", "--transport", "http-only", "--header", "Authorization:${VERIFYAX_AUTH}" ], "env": { "VERIFYAX_AUTH": "Bearer sk-ver-api-..." } } } } ``` Use `--transport http-only` because this server speaks Streamable HTTP only (no legacy SSE). You can also pass `X-VerifyAX-API-Key: sk-ver-api-...` via `--header` instead of `Authorization`. Restart your MCP client after changing config. ### Local stdio **Claude Code:** ```bash claude mcp add verifyax --env VERIFYAX_API_KEY=sk-ver-api-... -- npx -y -p @verifyax/mcp-server verifyax-mcp-server ``` > [!NOTE] > **The version here is deliberately unpinned**, so this command always fetches the current server. > Only the [`verifyax-mcp` plugin](https://github.com/verifyax/verifyax-plugins-claude) pins an exact > version (`@verifyax/mcp-server@