VerifyAX MCP
OfficialThe VerifyAX MCP Server acts as a bridge, giving AI tools secure, real‑time access to the VerifyAX platform through natural language. You can manage agents, generate scenarios, run evaluations, and monitor usage.
Agent Management
Register agents (A2A, API, DirectLine/Copilot Studio, MCP) with optional authentication and connectivity checks.
List agents, filter by connector type.
Delete agents permanently.
Scenario Generation
List compatible skill tags for info_exchange or interview scenarios.
Generate scenarios with tags and optional context, including batch creation of up to 50 scenarios.
List scenarios, filter by type or status.
Delete scenarios (fails if referenced by a run).
Evaluation & Simulation
Evaluate an agent against a scenario – previews cost, runs the simulation, and returns scores.
List recent simulation runs with filters for status, agent, scenario, date range, and more.
Fetch full run details including scores and results.
Usage & Cost Tracking
Preview estimated credit cost for a run before triggering it.
Get a usage summary over a time range or per simulation, with a breakdown by product area and total spend.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VerifyAX MCPShow me the latest evaluation results for my agent"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
The official VerifyAX MCP Server is a bridge between your MCP-compatible AI client and the VerifyAX 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:
the skill is for developers writing code; the MCP server is for conversational workflows.
Contents
Related MCP server: Verix API MCP Server
Supported clients
The VerifyAX MCP Server works with MCP-compatible clients that support Streamable HTTP or stdio:
Client | Setup reference |
OpenAI ChatGPT | |
Claude (Claude.ai, Desktop, and Code) | |
Cursor | |
Visual Studio Code (GitHub Copilot) | |
GitHub Copilot CLI | |
Google Gemini CLI | |
Amazon Quick Suite |
Any client that can connect via mcp-remote can also
use the hosted endpoint at https://mcp.verifyax.com/mcp.
For step-by-step Claude setup and how this compares to the VerifyAX skill and SDK, seedocs/using-verifyax-with-claude.md.
Supported tools
Twelve tools mapped to user intents. Blocking tools poll internally and return only when work completes (typically 30s–5min).
Area | Tools | Blocking |
Agents |
| — |
Scenarios |
| yes ( |
Evaluation |
| yes ( |
Usage |
| — |
For tool descriptions (what Claude reads to pick a tool) and rationale, seedocs/tool-descriptions.md. Package-level reference:
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)
An MCP client with Streamable HTTP support, or Node.js 18+ to run the
mcp-remoteproxy
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/mcpSend 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+):
{
"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):
{
"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:
claude mcp add verifyax --env VERIFYAX_API_KEY=sk-ver-api-... -- npx -y -p @verifyax/mcp-server verifyax-mcp-serverClaude Desktop:
{
"mcpServers": {
"verifyax": {
"command": "npx",
"args": ["-y", "-p", "@verifyax/mcp-server", "verifyax-mcp-server"],
"env": { "VERIFYAX_API_KEY": "sk-ver-api-..." }
}
}
}Restart the client after changing config, then describe what you want in natural language.
How it works
Architecture and communication
Your MCP client connects to
https://mcp.verifyax.com/mcp(remote HTTP) or spawnsnpx -p @verifyax/mcp-server verifyax-mcp-server(local stdio).The client sends your VerifyAX API key on initialize (
Authorization: Bearer …orX-VerifyAX-API-Keyfor HTTP;VERIFYAX_API_KEYenv for stdio).The server calls the VerifyAX API on your behalf. Blocking tools (
generate_scenario,evaluate_agent) poll job status internally and return only when work finishes.
Permission and billing
Actions are scoped to the workspace tied to your API key.
Usage and credits are billed to your VerifyAX workspace, not to the MCP server operator.
The hosted server sends no telemetry and does not persist API keys between sessions.
Self-hosting
Run the same HTTP server on your own infrastructure (e.g. Google Cloud Run). See
deploy/gcp/README.md.
Example workflows
Once connected, describe tasks in natural language — the client picks the tool.
Agent setup
Register: "Register my A2A agent at https://my-agent.example.com and confirm it's reachable."
List: "What agents are registered in my workspace?"
Scenario authoring
Discover tags: "List the skill tags I can use for an interview scenario."
Generate: "Generate an info_exchange scenario tagged empathy and coordination."
Evaluation
Run eval: "Evaluate agent X against scenario Y and summarize the scores."
Review history: "Show details for my most recent simulation run."
Usage and cost
Preview: "How many credits will it cost to run this scenario against my agent?"
Summary: "What did my last 5 simulation runs cost?"
Blocking tools can take 30s–5min. Do not call them repeatedly — wait for the result.
Tips and tricks
Add defaults to AGENTS.md
Reduce discovery calls and bad tag combinations by adding this to an AGENTS.md file in your
project root (see the AGENTS.md convention for the format):
## VerifyAX MCP
When connected to verifyax:
- **MUST** call `list_compatible_tags` before `generate_scenario`
- **MUST NOT** combine QnA tags with other tags (QnA must be the sole tag)
- **MUST** use `preview_run_cost` when the user asks about credits before `evaluate_agent`
- Blocking tools (`generate_scenario`, `evaluate_agent`) take 30s–5min — do not retry manuallyUse the skill for code workflows
For scripts, CI, or custom multi-step logic, use the
verifyax-api skill or
@verifyax/sdk instead of MCP tools.
Data and security
All traffic to the hosted endpoint uses HTTPS (TLS).
API key authentication; every action respects your VerifyAX workspace permissions.
The hosted server does not store API keys — each session supplies its own.
The MCP server sends no telemetry; it talks only to the VerifyAX API.
Destructive tools (
delete_agent,delete_scenario) permanently remove resources — confirm with the user before calling them.
API keys are managed in the VerifyAX console (Settings → API Keys). Revoke a key there to cut off access immediately.
Troubleshooting
"VERIFYAX_API_KEY is not set" — the key isn't reaching the server. Check the
envblock (stdio) orAuthorization/X-VerifyAX-API-Keyheader (HTTP).Authentication failed — the key is invalid, revoked, or from the wrong environment. Mint a fresh one in the console.
Tool calls don't appear — MCP clients load tools at startup; restart the client (or start a new session) after adding the server.
HTTP connection fails in Cursor — try
mcp-remotewith--transport http-only, or verify the URL ends with/mcp.Want logs? Set
VERIFYAX_MCP_LOG_LEVEL=debug. Logs are structured JSON on stderr; stdout is reserved for the MCP protocol.
Support and feedback
This project is maintained by the VerifyAX team at Conscium.
Bugs and feature requests: open an issue
Development reference:
CONTRIBUTING.md(maintainers and forks)External pull requests aren't accepted — issues are the best way to reach us
Disclaimer
MCP clients can register agents, generate scenarios, run evaluations, and delete resources using your VerifyAX API key and workspace credits. Use least privilege (scoped keys, minimal workspace access), review high-impact actions before confirming, and revoke keys you no longer need.
Model Context Protocol connects AI agents to external tools, which creates powerful workflows but also structural risks. Large language models can be vulnerable to prompt injection and related attacks. Only use trusted MCP clients and servers, and review which tools each agent can access.
For developers
This repository is a pnpm monorepo with two packages:
Package | Description |
Typed TypeScript client for the VerifyAX REST API | |
MCP server (12 tools) built on the SDK |
Requires Node ≥ 20 and pnpm 10.
pnpm install # install workspace dependencies
pnpm build # build all packages (topological order)
pnpm test # run unit tests
pnpm lint # lint
pnpm format # format with prettierNetwork-dependent suites: pnpm test:integration (live API, needs VERIFYAX_TEST_KEY) and
pnpm test:conformance (spawns the built MCP server over stdio).
MCP Inspector:
docs/debugging-mcp-inspector.mdExecution plan:
docs/PLAN.mdArchitecture decisions:
CLAUDE.mdCloud Run deploy:
deploy/gcp/README.md
License
Apache-2.0. See LICENSE.
Available Tools
9 toolsdelete_scenarioDelete scenarioADestructiveIdempotentInspect
Permanently deletes a scenario from your VerifyAX workspace by its uuid. This cannot be undone and fails if simulation runs still reference the scenario. Returns confirmation of the deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_uuid | Yes | The uuid of the scenario to permanently delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds value by specifying irreversibility and the failure condition, and notes that a confirmation is returned. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each adding value: action, constraints, and return behavior. No wasted words, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter, the description covers irreversibility, precondition, and return. Without an output schema, mentioning confirmation is helpful. Could elaborate on what the confirmation contains, but it's adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and the parameter description already included in the schema, the tool description adds minimal new information about the parameter. The schema already describes 'The uuid of the scenario to permanently delete.' Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'permanently deletes a scenario' with the specific identifier 'by its uuid', which distinguishes it from sibling tools like generate_scenario or list_compatible_tags. The verb and resource are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides important usage context: the deletion is permanent and 'fails if simulation runs still reference the scenario'. This tells the agent when not to use it (if referenced). It could be improved by stating when to use it, but the prerequisite is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_agentEvaluate agentAInspect
Runs an agent against a scenario and evaluates the result end to end, blocking until the evaluation completes (typically 30s–5min). Give it an agent uuid and a scenario uuid; it previews cost, runs the simulation, waits for it, and returns the evaluation scores. Optional timeout_minutes (1–240) overrides the scenario default for this run.
| Name | Required | Description | Default |
|---|---|---|---|
| num_runs | No | Parallel repetitions, 1-10 (default 1). | |
| agent_uuid | Yes | The agent to evaluate. | |
| scenario_uuid | Yes | The scenario to run the agent against. | |
| timeout_minutes | No | Wall-clock budget in minutes for this run (overrides scenario default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses blocking nature (30s–5min), cost preview, simulation run, wait, and return of scores. Also mentions optional timeout override. Annotations are minimal (readOnlyHint: false, destructiveHint: false), so description adds useful behavioral context, though it omits whether the run is saved or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core function, second sentence adds parameter guidance. No redundant words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should describe return values more thoroughly (e.g., what scores are returned). Also misses mentioning the num_runs parameter entirely. Leaves gaps for a blocking evaluation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds workflow context (preview cost, run, wait, return scores) that enriches parameter understanding beyond schema descriptions. However, it does not detail num_runs parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'runs and evaluates', the resource 'agent against a scenario', and distinguishes from siblings like 'delete_scenario' or 'preview_run_cost' by specifying it does full end-to-end evaluation blocking until completion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage via 'Give it an agent uuid and a scenario uuid', but no explicit when-to-use or when-not-to-use compared to alternatives like 'preview_run_cost' for cost-only queries. No exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scenarioGenerate scenarioAInspect
Generates a new test scenario of a given type (info_exchange or interview) with optional skill tags and context, then blocks until generation finishes (typically 30s–2min). Set num_scenarios greater than 1 for batch mode (requires tag_pool). Returns the new scenario’s uuid, or batch uuids when batching, or a structured error with details if generation fails (e.g. incompatible tags).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workspace-unique scenario name. | |
| tags | No | Skill tag names (use list_compatible_tags to pick valid ones). | |
| tag_pool | No | Required when num_scenarios > 1; universe of tag names to sample from. | |
| total_tags | No | Batch only; tags drawn per scenario from tag_pool. | |
| include_tags | No | Batch only; tags required in every scenario (subset of tag_pool). | |
| num_scenarios | No | Batch size. 1 = single scenario (default). Greater than 1 requires tag_pool. | |
| scenario_type | Yes | ||
| context_prompt | No | ||
| max_tags_per_npc | No | Batch only; caps tags per NPC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it's not read-only or destructive. The description adds significant behavioral context: blocking behavior (30s-2min), return values (uuid or batch uuids), and structured error on failure. No rate limits or auth details are disclosed, but overall adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (two sentences), front-loaded with the core purpose, and every sentence adds value. No redundant or vague statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return values. It covers essential parameters (type, tags, num_scenarios, tag_pool) but omits explicit mention of some batch-specific parameters. However, schema fills the gaps, making it sufficiently complete for a user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, so schema provides most parameter details. The description adds context about batch mode and tag_pool requirement, but does not elaborate on parameters like total_tags, include_tags, or max_tags_per_npc beyond what the schema covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a new test scenario, specifies the scenario types (info_exchange or interview), and mentions optional parameters. It distinguishes itself from sibling tools like delete_scenario and evaluate_agent by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on batch mode (num_scenarios > 1 requires tag_pool) and typical blocking time, but does not explicitly state when not to use the tool or mention alternatives like list_compatible_tags for parameter selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_detailsGet run detailsARead-onlyInspect
Fetches the full details of a single simulation run by its uuid, including its status and the evaluation results when they are available. Use after a run to inspect scores and outcome.
| Name | Required | Description | Default |
|---|---|---|---|
| simulation_uuid | Yes | The run’s uuid. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with a fetch operation. Description adds that it includes status and evaluation results when available, but doesn't elaborate on other behavioral traits like idempotency or lack of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary purpose, and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could benefit from more detail about the structure of the returned details. It only mentions status and evaluation results, leaving other 'full details' unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter. The description adds no additional meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it fetches full details of a single simulation run, distinguishing it from sibling tools like list_recent_runs which lists runs, and evaluate_agent which evaluates agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use after a run to inspect scores and outcome,' giving clear context for when to use. Lacks explicit alternatives or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsList agentsARead-onlyInspect
Lists the AI agents registered in your VerifyAX workspace, optionally filtered by connector type (A2A, API, DIRECTLINE, EXTENSION, or MCP). Returns each agent’s uuid, name, type, and URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| agent_type | No | Filter to a single agent type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description aligns by describing a read-only list operation. It adds context on return fields, which is useful. No further behavioral details are needed given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose, filtering, and return fields. No redundant information, and the key points are front-loaded. Every part is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (3 optional params, no output schema), the description covers the main functionality and return fields. Lacks explicit pagination explanation, but the schema parameters imply it. Overall sufficient for the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the agent_type parameter and its enum values, but does not mention limit or offset parameters. With schema description coverage at 33%, the description partially compensates but could be more complete on pagination context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists AI agents in the workspace, with an optional filter by connector type. It specifies the return fields (uuid, name, type, URL), making it distinct from sibling tools like register_agent or delete_scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to list agents, optionally filtered), but does not explicitly provide when-not-to-use or alternatives. It lacks guidance on pagination or cost implications, but the context is clear enough for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_compatible_tagsList compatible skill tagsARead-onlyInspect
Lists the skill tags that can be used to generate a scenario of a given type (info_exchange or interview). Use this before generating a scenario to pick valid tags. Returns each tag’s name, category, and description, and flags QnA tags that must be the only tag.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_type | Yes | The kind of scenario the tags will be used for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds value by detailing the return structure (name, category, description) and special flag for QnA tags. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action. Every sentence adds meaningful information with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, annotations, and description covering output structure and special behavior, the description is fully adequate for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the only parameter scenario_type having a clear description. The description does not add any additional semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists skill tags for a given scenario type (info_exchange or interview). It uses a specific verb ('lists') and resource ('skill tags'), and the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this before generating a scenario to pick valid tags,' providing clear when-to-use guidance. It does not list when not to use or alternatives, but the sibling generate_scenario is an obvious counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_runsList recent runsARead-onlyInspect
Lists recent simulation runs in your VerifyAX workspace, optionally filtered by status, agent, scenario, date range, search text, or run group. Returns each run’s uuid, status, agent, scenario, and evaluation handle.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| search | No | Free-text search across run metadata. | |
| status | No | Filter by run status. Known values: CREATED, IN_PROGRESS, COMPLETED, FAILED, CANCELLED (open enum — the API may add statuses, which are forwarded rather than rejected). | |
| date_to | No | ISO 8601 end of the created-at window. | |
| date_from | No | ISO 8601 start of the created-at window. | |
| agent_uuid | No | ||
| scenario_uuid | No | ||
| run_group_uuid | No | Filter to runs in a linked run group. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description's 'lists' is consistent. Description adds filter options and return fields but does not mention pagination behavior, default ordering, or rate limits. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the core purpose and available filters. No fluff, every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and no output schema, the description covers the main filters and returned fields. However, it omits pagination details (limit/offset) and default sort order, which are useful for an agent to know for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 56%; description summarizes filter categories (status, agent, etc.) but does not explain individual parameters like limit/offset beyond what is in the schema. Adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Directly states the function: listing simulation runs with optional filters and specifies the returned fields. Clearly distinguishes from siblings like get_run_details (single run) and list_agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists available filters but does not explicitly guide when to use this tool versus siblings (e.g., get_run_details for a single run, preview_run_cost for cost estimation). No when-not or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_run_costPreview run costARead-onlyInspect
Estimates the credit cost of running an agent against a scenario before triggering it. Returns the estimated credits, your current balance, and any pending committed spend. Optional timeout_minutes (1–240) affects the run-cost estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| num_runs | No | Parallel repetitions (default 1). | |
| agent_uuid | No | The agent that would run (optional). | |
| scenario_uuid | Yes | The scenario the run would use. | |
| timeout_minutes | No | Wall-clock budget in minutes for the estimate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description reinforces it's only an estimate without executing. Discloses return fields (estimated credits, balance, pending committed spend). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, then specific details. Every sentence adds value; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description adequately states what is returned. For a preview tool with read-only semantics and well-documented params, it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds limited additional meaning. Reiterates timeout_minutes range (1–240) and its effect on estimate, but other parameters (num_runs, agent_uuid, scenario_uuid) are not elaborated beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it estimates credit cost before running an agent against a scenario. Verb 'estimates' + resource 'credit cost' is specific. Distinguishes from sibling tools like evaluate_agent or get_run_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'before triggering it', indicating when to use. Mentions optional timeout_minutes affects estimate. No explicit when-not or alternatives, but context provides sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentRegister agentAInspect
Registers an AI agent in VerifyAX given its name, connector type (A2A, API, DIRECTLINE for Copilot Studio, or MCP), URL, and optional auth or connector settings. For A2A agents it first verifies the agent card is reachable; DIRECTLINE and MCP agents are probed before creation. Returns the new agent’s uuid and whether connectivity was checked. Note: any token, Direct Line secret, or password passed here transits the conversation — prefer supplying credentials out of band where possible.
| Name | Required | Description | Default |
|---|---|---|---|
| mcp | No | ||
| name | Yes | Workspace-unique agent name. | |
| token | No | Token for bearer/cs auth. Sensitive — see the note in the tool description. | |
| timeout | No | Request timeout in milliseconds. | |
| agent_url | No | Endpoint URL. Required for A2A, API, and MCP (catalogue adapter A2A URL). Optional for DIRECTLINE — derived from region when omitted. | |
| agent_type | No | Defaults to A2A. | |
| directline | No | ||
| auth_method | No | ||
| description | No | ||
| agent_card_url | No | ||
| basic_password | No | Sensitive — see the note in the tool description. | |
| basic_username | No | ||
| agent_card_path | No | ||
| default_output_modes | No | ||
| include_full_context | No | ||
| include_message_history | No | ||
| max_requests_per_minute | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by detailing that A2A agents are verified for reachability and DIRECTLINE/MCP agents are probed before creation. It also warns that credentials transit the conversation. Annotations already indicate a non-read, non-destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3-4 sentences), front-loaded with the main purpose, and efficiently covers probing behavior, return information, and a security note. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, nested objects, no output schema), the description covers essential aspects: purpose, connector-specific behavior, security, and return value. It could be improved by mentioning error conditions or idempotency, but it is sufficiently complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 35% schema description coverage, the description adds some context by explaining connector types and sensitivity of credentials, but it does not individually describe the majority of parameters. The description partially compensates for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Registers an AI agent in VerifyAX given its name, connector type...' providing a specific verb and resource, and distinguishes the tool from sibling tools which focus on scenarios, runs, and evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool (registering agents) and provides context on probing behavior for different connector types. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action (delete, evaluate, generate, get, list [x4], preview, register). No two tools overlap in purpose; an agent can clearly distinguish them.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., delete_scenario, evaluate_agent, list_compatible_tags). The naming is predictable and informative.
With 9 tools, the set is well-scoped for a simulation evaluation platform. Each tool earns its place, covering agent registration, scenario generation, evaluation, and result retrieval.
The core workflows (register agent, generate scenario, evaluate, get results) are covered. Missing update operations for agents/scenarios and a delete agent tool are minor gaps that don't severely hinder functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Test the voice agents you run: scored transcripts, pass/fail verdicts, latency and WER metrics.
Simulation, evaluation and monitoring for voice agents.
Manage Speko voice-AI agents, sessions, calls, phone numbers, knowledge bases, evals, and docs.
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables AI assistants to interact with Coval's evaluation platform for launching and monitoring evaluation runs, managing agents and test sets, and retrieving evaluation metrics.18261MIT- AlicenseNot gradedqualityBmaintenanceEnables searching Verix records, retrieving record details, and running analysis workflows through natural language via the Verix API.MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLM evaluation and observability by uploading documents, building test sets, running RAG pipelines, and automatically scoring answers for groundedness, hallucination risk, retrieval quality, latency, and cost, with tools exposed to MCP-compatible clients.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables SQL query execution and knowledge base search via RAG agent through two tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/verifyax/verifyax-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server