Skip to main content
Glama
verifyax

VerifyAX MCP

Official
by verifyax

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

Connectors / MCP guide

Claude (Claude.ai, Desktop, and Code)

Claude MCP docs

Cursor

Cursor MCP docs

Visual Studio Code (GitHub Copilot)

VS Code MCP docs

GitHub Copilot CLI

About Copilot CLI

Google Gemini CLI

Gemini CLI MCP docs

Amazon Quick Suite

MCP integration guide

Any client that can connect via mcp-remote can also use the hosted endpoint at https://mcp.verifyax.com/mcp.

TIP

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

register_agent · list_agents · delete_agent

Scenarios

list_compatible_tags · generate_scenario · list_scenarios · delete_scenario

yes (generate_scenario)

Evaluation

evaluate_agent · list_recent_runs · get_run_details

yes (evaluate_agent)

Usage

get_usage_summary · preview_run_cost

NOTE

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-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

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+):

{
  "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-server

Claude 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

  1. Your MCP client connects to https://mcp.verifyax.com/mcp (remote HTTP) or spawns npx -p @verifyax/mcp-server verifyax-mcp-server (local stdio).

  2. The client sends your VerifyAX API key on initialize (Authorization: Bearer … or X-VerifyAX-API-Key for HTTP; VERIFYAX_API_KEY env for stdio).

  3. 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?"

NOTE

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 manually

Use 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 env block (stdio) or Authorization / X-VerifyAX-API-Key header (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-remote with --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

@verifyax/sdk

Typed TypeScript client for the VerifyAX REST API

@verifyax/mcp-server

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 prettier

Network-dependent suites: pnpm test:integration (live API, needs VERIFYAX_TEST_KEY) and pnpm test:conformance (spawns the built MCP server over stdio).


License

Apache-2.0. See LICENSE.

Available Tools

12 tools
delete_agentDelete agentA
DestructiveIdempotent
Inspect

Permanently deletes an agent from your VerifyAX workspace by its uuid. This cannot be undone. Returns confirmation of the deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_uuidYesThe uuid of the agent to permanently delete.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reinforces the destructive hint with 'permanently deletes' and 'cannot be undone', and adds that it returns a confirmation. It does not contradict the idempotent hint, though it does not explain idempotency behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the key information. Every word adds value, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with one parameter and no output schema, the description is sufficiently complete. It could specify the format of the confirmation, but the current text is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage with a description for agent_uuid. The description adds 'by its uuid', which is redundant. No additional parameter meaning is provided beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (permanently deletes), resource (agent), and method (by uuid). It distinguishes well from sibling tools like evaluate_agent or list_recent_runs, none of which involve deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you want to permanently delete an agent) and notes the irreversible nature, but does not explicitly state when not to use or list alternatives. However, given the unique deletion purpose among siblings, this is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_scenarioDelete scenarioA
DestructiveIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenario_uuidYesThe uuid of the scenario to permanently delete.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. Typically takes 30s–30min; task-capable MCP clients receive a pollable task handle immediately, while others block until the evaluation completes. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_runsNoParallel repetitions, 1-10 (default 1).
agent_uuidYesThe agent to evaluate.
scenario_uuidYesThe scenario to run the agent against.
timeout_minutesNoWall-clock budget in minutes for this run (overrides scenario default).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the sparse annotations: discloses runtime duration (30s–30min), the dual execution model (task-capable clients get a pollable task handle; others block), and the internal sequence of operations (preview cost → run simulation → wait → return scores). This is exactly the kind of context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences, front-loaded with purpose and runtime expectation before parameter guidance. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a long-running, potentially blocking operation, the description covers runtime, client-dependent execution model (critical for avoiding timeouts), the internal workflow, and required inputs. Nothing essential for correct invocation is missing despite the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented in the schema. The description calls out timeout_minutes's override semantics and its 1–240 range, which mirrors the schema, and adds no new meaning for num_runs or the uuids. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Runs an agent against a scenario and evaluates the result end to end'), and distinguishes itself from siblings like preview_run_cost and get_run_details by covering the full execute-then-evaluate flow. An agent can immediately tell this is the end-to-end evaluation entry point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage by stating the required inputs ('Give it an agent uuid and a scenario uuid') but never explicitly says when to use this vs. preview_run_cost or get_run_details, nor when-not to use it. Context is implied rather than 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. Typically takes 30s–2min; task-capable MCP clients receive a pollable task handle immediately, while others block until generation finishes. 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkspace-unique scenario name.
tagsNoSkill tag names (use list_compatible_tags to pick valid ones).
tag_poolNoRequired when num_scenarios > 1; universe of tag names to sample from.
total_tagsNoBatch only; tags drawn per scenario from tag_pool.
include_tagsNoBatch only; tags required in every scenario (subset of tag_pool).
num_scenariosNoBatch size. 1 = single scenario (default). Greater than 1 requires tag_pool.
scenario_typeYes
context_promptNo
max_tags_per_npcNoBatch only; caps tags per NPC.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing latency (30s–2min), the dual execution model (pollable task handle for task-capable clients vs blocking for others), batch semantics, and the failure mode (structured error, e.g. incompatible tags). Annotations only say it is a non-read, non-destructive write, so the description carries meaningful extra behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler: capability, execution timing/model, and return/error behavior. It is dense but each clause carries information; the batch detail is arguably the only overloaded part.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining return values (uuid, batch uuids, structured error). For a 9-parameter tool it leaves context_prompt and name semantics to the schema, but the critical complexity (batching, task handling, failure) is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78% and parameters like name, context_prompt, and scenario_type already carry their own descriptions, so the schema does the heavy lifting. The description restates the num_scenarios/tag_pool relationship rather than adding new meaning, which is the expected baseline when coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Generates a new test scenario") and enumerates the two valid scenario types, so the action is unambiguous. It does not, however, differentiate itself from siblings like list_scenarios or preview_run_cost, leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: single vs batch mode, the tag_pool prerequisite for num_scenarios > 1, and points to list_compatible_tags when picking tags. There are no explicit when-not-to-use statements or sibling routing, so it stops short of a 5.

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 detailsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
simulation_uuidYesThe run’s uuid.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

get_usage_summaryGet usage summaryA
Read-only
Inspect

Summarizes VerifyAX usage events over an optional time range or for a specific simulation, scenario, or job. Paginates across all matching events (up to a cap) and returns the total event count, a breakdown by product area, and total platform spend in USD when the API reports it.

ParametersJSON Schema
NameRequiredDescriptionDefault
failedNo
job_uuidNoFilter by async job UUID.
max_eventsNoCap on events to summarize (default 10000).
product_areaNo
scenario_uuidNo
event_start_toNoISO 8601 end of the window.
simulation_uuidNo
event_start_fromNoISO 8601 start of the window.
evaluation_job_uuidNoFilter by evaluation job UUID.
simulation_job_uuidNoFilter by simulation job UUID.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the description builds on that by detailing pagination, a cap on events, and the return fields (total count, product area breakdown, spend). It also notes that spend is conditional on API reporting. This adds meaningful behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences covering purpose, filters, pagination, and return values. No fluff, front-loaded with key information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 optional parameters and no output schema, the description explains the main return values and pagination behavior. It misses details on some filters (e.g., 'failed', 'product_area') but overall provides a sufficient understanding of what the tool does and returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description groups parameters into categories (time range, simulation, scenario, job) but does not explain individual parameters like 'failed' or 'product_area' beyond what the schema already provides. With schema description coverage at 60%, the description only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool summarizes VerifyAX usage events with optional filters, using a specific verb and resource. It distinguishes itself from siblings like list_scenarios or get_run_details by focusing on aggregation (count, breakdown, spend) rather than listing raw events or runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: for a summary over a time range or for specific simulations, scenarios, or jobs. It does not explicitly state when not to use or name alternatives, but the context is clear. No exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsList agentsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
agent_typeNoFilter to a single agent type.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 tagsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenario_typeYesThe kind of scenario the tags will be used for.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 runsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
searchNoFree-text search across run metadata.
statusNoFilter 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_toNoISO 8601 end of the created-at window.
date_fromNoISO 8601 start of the created-at window.
agent_uuidNo
scenario_uuidNo
run_group_uuidNoFilter to runs in a linked run group.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

list_scenariosList scenariosA
Read-only
Inspect

Lists the test scenarios in your VerifyAX workspace, optionally filtered by type (info_exchange or interview) and status. Returns each scenario’s uuid, name, type, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNoFilter by scenario status. Known values: INIT, PROCESSING, SUCCESS, FAILED, CANCELLED (open enum — the API may add statuses, which are forwarded rather than rejected).
scenario_typeNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description of read-only nature is redundant. Adds return fields but lacks details on pagination, rate limits, or sorting. Adequate but minimal added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key information, no wasted words. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description covers return values (uuid, name, type, status). For a simple list tool, it provides essential context. Missing pagination behavior, but overall complete for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds meaning for scenario_type and status filters beyond schema (only status has description). However, limit and offset are not explained; schema coverage is 25%, so description partially compensates but misses pagination details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists test scenarios in a workspace with optional filters and specifies returned fields (uuid, name, type, status). Distinguishes from sibling tools like list_recent_runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains optional filtering by type and status, providing clear context. No explicit when-not-to-use or contrast with siblings, but the description is sufficient for correct use.

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 costA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_runsNoParallel repetitions (default 1).
agent_uuidNoThe agent that would run (optional).
scenario_uuidYesThe scenario the run would use.
timeout_minutesNoWall-clock budget in minutes for the estimate.

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcpNo
nameYesWorkspace-unique agent name.
tokenNoToken for bearer/cs auth. Sensitive — see the note in the tool description.
timeoutNoRequest timeout in milliseconds.
agent_urlNoEndpoint URL. Required for A2A, API, and MCP (catalogue adapter A2A URL). Optional for DIRECTLINE — derived from region when omitted.
agent_typeNoDefaults to A2A.
directlineNo
auth_methodNo
descriptionNo
agent_card_urlNo
basic_passwordNoSensitive — see the note in the tool description.
basic_usernameNo
agent_card_pathNo
default_output_modesNo
include_full_contextNo
include_message_historyNo
max_requests_per_minuteNo

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.3.5
    • Addeddelete_agent
    • Addedget_usage_summary
    • Addedlist_scenarios
  2. 7 tool updatesv1.0.1
    • Removeddelete_agent
    • Addeddelete_scenario
    • Addedgenerate_scenario
    • Removedget_usage_summary
    • Addedlist_agents
    • Removedlist_scenarios
    • Addedregister_agent
  3. 8 tool updatesv1.0.0
    • First observeddelete_agent
    • First observedevaluate_agent
    • First observedget_run_details
    • First observedget_usage_summary
    • First observedlist_compatible_tags
    • First observedlist_recent_runs
    • First observedlist_scenarios
    • First observedpreview_run_cost

TDQS

A4.1/5.0

Scored across 12 tools

Disambiguation4/5

The set cleanly separates three resources (agents, scenarios, runs) plus usage, and list vs get vs delete verbs are clear. The only mild overlap is preview_run_cost vs evaluate_agent, but their descriptions distinguish 'estimate' from 'execute,' so an agent can pick correctly.

Naming Consistency5/5

Every name is snake_case verb_noun (list_agents, register_agent, evaluate_agent, get_run_details, generate_scenario, etc.). The only stylistic variance is 'register_agent' instead of 'create_agent,' which is still a clear verb and consistent in form.

Tool Count5/5

12 tools is well within the sweet spot for a multi-resource platform (agents, scenarios, runs, billing). Each tool maps to a distinct capability with no filler entries.

Completeness4/5

Core lifecycle is covered: agents (register/list/delete), scenarios (generate/list/delete), runs (list/get/evaluate), plus cost and usage. Minor gaps remain — no get_agent/get_scenario detail fetch, and no update operations for agents or scenarios — but agents can work around these.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers