Hosted MCP server · #31 most used on Smithery
ia-qa mcp llm and RAG testing - Dev/QA toolbox
ia-qa/api
IA-QA as an MCP Server Use IA-QA's developer tools to test your llm agents RAG ai tools, directly from Cursor, Claude Desktop, Windsurf, or any AI agent without leaving your IDE. Many classical testing tools too ! Enjoy ! No API key. No signup. Free.
- Uses
- 12k
- Tools
- 151
- Runs
- Hosted
- Listed
- 7mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install ia-qa/api --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http ia-qa-mcp-llm-and-rag-testing-de https://server.smithery.ai/ia-qa/api/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.ia-qa-mcp-llm-and-rag-testing-de]
url = "https://server.smithery.ai/ia-qa/api/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"ia-qa-mcp-llm-and-rag-testing-de": {
"url": "https://server.smithery.ai/ia-qa/api/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"ia-qa-mcp-llm-and-rag-testing-de": {
"type": "http",
"url": "https://server.smithery.ai/ia-qa/api/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http ia-qa-mcp-llm-and-rag-testing-de https://server.smithery.ai/ia-qa/api/mcpSaved to .gemini/settings.json.
What it can do
80 of 151 tools
format_json2 paramsValidate and pretty-print a string that is ALREADY valid JSON. Strict by design — it is a validity gate: valid JSON comes back formatted,…
Validate and pretty-print a string that is ALREADY valid JSON. Strict by design — it is a validity gate: valid JSON comes back formatted, anything else is rejected with the exact parse error. It never repairs, completes, or guesses. NOT for: plain text or prose (will fail), JSON embedded in markdown/prose (use extract_json_from_text first), JS objects (JSON.stringify them first), YAML (use yaml_to_json).
| Parameter | Type | Description |
|---|---|---|
input | string | A raw JSON string, e.g. '{"key":"value"}'. Must already parse as JSON — plain text or truncated JSON is rejected, not repaired. |
indent | number | Indent size (default: 2) |
generate_uuid1 paramGenerate one or more cryptographically random UUID v4 identifiers. Use this when you need unique IDs for test fixtures, database records,…
Generate one or more cryptographically random UUID v4 identifiers. Use this when you need unique IDs for test fixtures, database records, session tokens, or any scenario requiring a guaranteed-unique string. Returns up to 100 UUIDs in one call.
| Parameter | Type | Description |
|---|---|---|
count | number | Number of UUIDs to generate (1–100, default: 1) |
hash_text2 paramsCompute a cryptographic hash of a text string. Use when you need to verify data integrity, generate content fingerprints, hash passwords …
Compute a cryptographic hash of a text string. Use when you need to verify data integrity, generate content fingerprints, hash passwords (prefer SHA-256+), or produce a fixed-length digest of any input. Supports SHA-256 (default), SHA-512, SHA-1, and MD5.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to hash |
algorithm | string | Hash algorithm: sha256 (default), sha512, sha1, md5 |
count_tokens1 paramEstimate the token count of a text string using the cl100k_base approximation (~4 chars/token). Call this BEFORE sending any text to an L…
Estimate the token count of a text string using the cl100k_base approximation (~4 chars/token). Call this BEFORE sending any text to an LLM API to check if it fits within the model context window and to estimate cost. Returns token estimate, character count, and word count.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to count tokens for |
base64_encode1 paramEncode a UTF-8 string to Base64. Use when you need to embed binary data, multi-line text, or special characters safely inside JSON fields…
Encode a UTF-8 string to Base64. Use when you need to embed binary data, multi-line text, or special characters safely inside JSON fields, HTTP headers, or data URIs.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to encode |
base64_decode1 paramDecode a Base64 string back to UTF-8 text. Use for inspecting Base64-encoded API responses, JWT payload claims, config file values, or at…
Decode a Base64 string back to UTF-8 text. Use for inspecting Base64-encoded API responses, JWT payload claims, config file values, or attachment data.
| Parameter | Type | Description |
|---|---|---|
input | string | Base64 string to decode |
url_encode2 paramsPercent-encode a string for safe use in URLs. Call this before programmatically building query strings, path segments, or form-encoded bo…
Percent-encode a string for safe use in URLs. Call this before programmatically building query strings, path segments, or form-encoded bodies to prevent injection and malformed URLs.
| Parameter | Type | Description |
|---|---|---|
mode | string | "component" (default) or "full" for encodeURI behavior |
input | string | String to URL-encode |
url_decode1 paramDecode a percent-encoded URL string back to plain text. Use when parsing query parameters from raw URLs or when displaying encoded values…
Decode a percent-encoded URL string back to plain text. Use when parsing query parameters from raw URLs or when displaying encoded values to users.
| Parameter | Type | Description |
|---|---|---|
input | string | URL-encoded string to decode |
generate_slug2 paramsConvert any string into a URL-friendly slug: lowercase, ASCII-normalized (é→e), special characters removed, spaces replaced with hyphens.…
Convert any string into a URL-friendly slug: lowercase, ASCII-normalized (é→e), special characters removed, spaces replaced with hyphens. Use for generating SEO-friendly URL paths, file names, or identifier keys from user-provided titles or labels.
| Parameter | Type | Description |
|---|---|---|
input | string | String to slugify |
separator | string | Separator character (default: "-") |
validate_email1 paramValidate an email address against RFC 5322 syntax before storing it, sending a transactional email, or adding it to a mailing list. Retur…
Validate an email address against RFC 5322 syntax before storing it, sending a transactional email, or adding it to a mailing list. Returns { valid, email } — use this to avoid bounces and malformed data.
| Parameter | Type | Description |
|---|---|---|
email | string | Email address to validate |
minify_js1 paramMinify a JavaScript snippet, function, class, or module up to 50 KB using Terser. Returns minified code and byte savings. Use when embedd…
Minify a JavaScript snippet, function, class, or module up to 50 KB using Terser. Returns minified code and byte savings. Use when embedding scripts in HTML templates, report payloads, or injecting inline code programmatically.
| Parameter | Type | Description |
|---|---|---|
code | string | JavaScript code to minify (max 50kb) |
decode_jwt1 paramDecode a JWT (JSON Web Token) and return its header and payload without verifying the signature. Also reports whether the token is expire…
Decode a JWT (JSON Web Token) and return its header and payload without verifying the signature. Also reports whether the token is expired and the exact expiry date. Use to inspect claims (sub, iss, exp, roles) during debugging or when integrating with an auth provider.
| Parameter | Type | Description |
|---|---|---|
token | string | The JWT string to decode (header.payload.signature) |
text_stats1 paramCompute comprehensive statistics for any text: character count (with and without spaces), word count, line count, sentence count, paragra…
Compute comprehensive statistics for any text: character count (with and without spaces), word count, line count, sentence count, paragraph count, and estimated reading time in minutes. Use for validating form field lengths, evaluating LLM output verbosity, or content auditing.
| Parameter | Type | Description |
|---|---|---|
input | string | The text to analyse |
generate_password4 paramsGenerate a cryptographically secure random password using crypto.randomBytes. Configurable length (4–128), uppercase letters, digits, and…
Generate a cryptographically secure random password using crypto.randomBytes. Configurable length (4–128), uppercase letters, digits, and symbols. Use when resetting user passwords, seeding test accounts, or generating API secrets.
| Parameter | Type | Description |
|---|---|---|
length | number | Password length (4–128, default: 16) |
numbers | boolean | Include digits (default: true) |
symbols | boolean | Include symbols like !@#$ (default: false) |
uppercase | boolean | Include uppercase letters (default: true) |
parse_csv3 paramsParse a CSV string into a JSON array of objects (or raw arrays). Handles RFC 4180 quoted fields, escaped quotes, and custom delimiters. U…
Parse a CSV string into a JSON array of objects (or raw arrays). Handles RFC 4180 quoted fields, escaped quotes, and custom delimiters. Use when processing spreadsheet exports, data imports, or structured text pipelines where the source is CSV. Supports up to 200 KB.
| Parameter | Type | Description |
|---|---|---|
input | string | CSV content to parse |
header | boolean | Treat the first row as headers (default: true) |
delimiter | string | Field delimiter character (default: ",") |
color_convert1 paramConvert a color between HEX, RGB, and HSL formats. Use when translating design tokens between CSS notations, verifying color accessibilit…
Convert a color between HEX, RGB, and HSL formats. Use when translating design tokens between CSS notations, verifying color accessibility, or normalizing color values from user input. Accepts #rrggbb, #rgb, rgb(r,g,b), or hsl(h,s%,l%).
| Parameter | Type | Description |
|---|---|---|
input | string | Color value to convert, e.g. "#ff6b6b", "rgb(255,107,107)", "hsl(0,100%,71%)" |
regex_test3 paramsTest a regular expression pattern against an input string and return all matches with their index positions and named capture groups. Use…
Test a regular expression pattern against an input string and return all matches with their index positions and named capture groups. Use for validating user inputs, extracting structured data from text, or debugging regex patterns. Supports flags g, i, m, s, u, y.
| Parameter | Type | Description |
|---|---|---|
flags | string | Regex flags: g (global), i (case-insensitive), m (multiline), s (dotAll) — default: "" |
input | string | The string to test against (max 50 KB) |
pattern | string | Regular expression pattern (without delimiters) |
lorem_ipsum3 paramsGenerate Lorem Ipsum placeholder text for UI mockups, design prototypes, or test data population. Configurable paragraphs (1–10), sentenc…
Generate Lorem Ipsum placeholder text for UI mockups, design prototypes, or test data population. Configurable paragraphs (1–10), sentences per paragraph (1–20), and approximate words per sentence (3–30).
| Parameter | Type | Description |
|---|---|---|
paragraphs | number | Number of paragraphs to generate (1–10, default: 1) |
words_per_sentence | number | Approximate words per sentence (3–30, default: 10) |
sentences_per_paragraph | number | Sentences per paragraph (1–20, default: 5) |
timestamp_convert1 paramConvert between Unix timestamps (seconds or milliseconds) and ISO-8601 / UTC date strings. Auto-detects epoch vs. millisecond format. Omi…
Convert between Unix timestamps (seconds or milliseconds) and ISO-8601 / UTC date strings. Auto-detects epoch vs. millisecond format. Omit input to get the current time. Returns iso, unix_s, unix_ms, utc, date, and time fields.
| Parameter | Type | Description |
|---|---|---|
input | Unix timestamp (number, seconds or ms) or ISO date string. Omit to get the current time. |
diff_text3 paramsCompute a unified line-by-line diff between two text strings (LCS algorithm). Returns added/removed/unchanged line counts and formatted d…
Compute a unified line-by-line diff between two text strings (LCS algorithm). Returns added/removed/unchanged line counts and formatted diff hunks with configurable context lines (0–20). Use to compare versions of prompts, configs, code snippets, or any text where you need to see exactly what changed.
| Parameter | Type | Description |
|---|---|---|
a | string | Original (before) text |
b | string | Modified (after) text |
context | number | Context lines around each change (0–20, default: 3) |
truncate_to_tokens3 paramsTruncate text to at most N tokens (cl100k_base: ~4 chars/token) to avoid exceeding an LLM context window. Optionally keeps the end of the…
Truncate text to at most N tokens (cl100k_base: ~4 chars/token) to avoid exceeding an LLM context window. Optionally keeps the end of the text instead of the start (useful for keeping recent conversation history). Reports whether truncation occurred and the estimated token count.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to truncate |
from_end | boolean | Keep the end of the text instead of the start (default: false) |
max_tokens | number | Maximum number of tokens to keep |
split_chunks3 paramsSplit text into chunks of at most N tokens (cl100k_base: ~4 chars/token) with optional overlap. Designed for RAG ingestion pipelines.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to split into chunks |
overlap | number | Token overlap between consecutive chunks (default: 0) |
chunk_tokens | number | Maximum tokens per chunk (10–8000) |
extract_json_from_text1 paramExtract the first valid JSON object or array embedded in chaotic LLM output (surrounded by markdown fences, prose, or explanatory text). …
Extract the first valid JSON object or array embedded in chaotic LLM output (surrounded by markdown fences, prose, or explanatory text). Handles ```json blocks and inline JSON. Call this whenever an LLM returns structured data mixed with explanation text instead of raw JSON.
| Parameter | Type | Description |
|---|---|---|
input | string | Raw text (e.g., LLM output) that may contain a JSON object or array |
strip_markdown1 paramStrip all Markdown formatting (headers, bold, italic, code fences, links, lists) from text and return clean plain text. Run this before i…
Strip all Markdown formatting (headers, bold, italic, code fences, links, lists) from text and return clean plain text. Run this before injecting scraped documentation, README files, or user content into an LLM prompt to eliminate redundant markup tokens and reduce cost.
| Parameter | Type | Description |
|---|---|---|
input | string | Markdown text to convert to plain text |
estimate_llm_cost3 paramsEstimate the API cost in USD for a given model and token counts. Supports all major 2024–2026 models: GPT-4o, GPT-4.1, o3, o4-mini, Claud…
Estimate the API cost in USD for a given model and token counts. Supports all major 2024–2026 models: GPT-4o, GPT-4.1, o3, o4-mini, Claude Opus 4, Claude Sonnet 4/4.5, Gemini 2.5 Pro/Flash, DeepSeek V3/R1, Grok 3, and legacy models.
| Parameter | Type | Description |
|---|---|---|
model | string | Model name, e.g. "gpt-4o", "claude-3.5-sonnet", "deepseek-v3" |
input_tokens | number | Number of input/prompt tokens |
output_tokens | number | Number of output/completion tokens (default: 0) |
escape_html1 paramEscape HTML special characters (&, <, >, ", ') to their safe HTML entities. ALWAYS call this before inserting any user-provided or LLM-ge…
Escape HTML special characters (&, <, >, ", ') to their safe HTML entities. ALWAYS call this before inserting any user-provided or LLM-generated content into an HTML template to prevent cross-site scripting (XSS) attacks.
| Parameter | Type | Description |
|---|---|---|
input | string | String to HTML-escape |
unescape_html1 paramConvert HTML entities (&, <, >, ", ', and numeric &#NNN;) back to plain characters. Use when processing HTML-encoded …
Convert HTML entities (&, <, >, ", ', and numeric &#NNN;) back to plain characters. Use when processing HTML-encoded text from APIs, email content, or legacy database fields before passing to an LLM or displaying to users.
| Parameter | Type | Description |
|---|---|---|
input | string | HTML-encoded string to unescape |
fetch_veille_feed2 paramsFetch the latest QA & AI/LLM articles aggregated from curated RSS sources (Google Testing Blog, DEV.to Testing/QA/AI/LLM/Agents, Hugging …
Fetch the latest QA & AI/LLM articles aggregated from curated RSS sources (Google Testing Blog, DEV.to Testing/QA/AI/LLM/Agents, Hugging Face Blog, Simon Willison). Perfect for agents monitoring the QA & AI landscape.
| Parameter | Type | Description |
|---|---|---|
limit | number | Max articles to return (default: 20, max: 50) |
category | string | Filter: "qa" (testing/quality), "ai" (AI/LLM/agents), "all" (default — both) |
score_geo_signals1 paramAnalyze a webpage <head> HTML (or full HTML) for GEO (Generative Engine Optimization) signals. Returns a score /60 with per-check results…
Analyze a webpage <head> HTML (or full HTML) for GEO (Generative Engine Optimization) signals. Returns a score /60 with per-check results and improvement tips. GEO = optimizing pages for AI-powered search engines (ChatGPT Search, Perplexity, etc.).
| Parameter | Type | Description |
|---|---|---|
head_html | string | Raw HTML of the <head> section (or full page HTML) to analyze |
extract_json_path2 paramsExtract a value from a JSON string using dot-notation path (e.g., "user.address.city", "items.0.name", "meta.tags"). Supports array index…
Extract a value from a JSON string using dot-notation path (e.g., "user.address.city", "items.0.name", "meta.tags"). Supports array index access via numeric path segments.
| Parameter | Type | Description |
|---|---|---|
path | string | Dot-notation path, e.g. "user.address.city" or "items.0.name" |
input | string | object | array | The JSON to traverse — a JSON string, or the object/array itself. |
generate_json_ld3 paramsGenerate a ready-to-paste <script type="application/ld+json"> snippet for GEO / structured data optimization. Supported types: WebSite, F…
Generate a ready-to-paste <script type="application/ld+json"> snippet for GEO / structured data optimization. Supported types: WebSite, FAQPage, Article, Person, Organization, SoftwareApplication, HowTo.
| Parameter | Type | Description |
|---|---|---|
type | string | Schema @type: "WebSite", "FAQPage", "Article", "Person", "Organization", "SoftwareApplication", "HowTo" |
fields | object | Schema fields as key-value pairs (name, url, description, author, datePublished, etc.) |
faq_items | array | For FAQPage/HowTo: array of { question, answer } objects |
analyze_diff_bugs3 paramsPattern-based diff linter: flags a fixed set of risky shapes in changed code — query-string interpolation (SQL/Cypher/Mongo injection sha…
Pattern-based diff linter: flags a fixed set of risky shapes in changed code — query-string interpolation (SQL/Cypher/Mongo injection shape), shell interpolation, eval/new Function, empty catch blocks, regex built from a variable, fewer catch blocks than before, and named authorization guards that disappeared. Every finding cites the line that produced it. It does NOT do data-flow analysis: it cannot follow a value to a sink, across functions or files, and an empty result is not a safety verdict
| Parameter | Type | Description |
|---|---|---|
context | string | Optional PR title or feature context for better analysis |
version1 | string | Original code (before changes). If omitted, only the new version is analysed. |
version2 | string | New/modified code (after changes) |
generate_test_cases2 paramsGenerate a set of test cases (valid, edge, invalid) for a given feature description. Returns test matrix with Gherkin scenarios ready to …
Generate a set of test cases (valid, edge, invalid) for a given feature description. Returns test matrix with Gherkin scenarios ready to use.
| Parameter | Type | Description |
|---|---|---|
inputs | string | Optional: list of input parameters (one per line, e.g. "email: string [required]") |
feature | string | Feature or function to test. Be specific: describe inputs, expected behaviour, context. |
run_pr_gate_pipeline2 paramsReview triage for a pull request. Takes a unified git diff (`git diff HEAD`) and returns: diff-lint findings with the lines that produced…
Review triage for a pull request. Takes a unified git diff (`git diff HEAD`) and returns: diff-lint findings with the lines that produced them, regression impact areas, a risk score 0–100 with the factors that built it (churn, files touched, sensitive paths, whether any test file changed, lint severities), generated test cases, and a PASS / CONDITIONAL / BLOCK recommendation. Advisory: the score measures properties of the diff, not the correctness of the change — it does not read the code semant
| Parameter | Type | Description |
|---|---|---|
context | string | Optional PR title or description for richer analysis |
git_diff | string | Unified git diff (output of `git diff HEAD` or copied from GitHub diff view) |
validate_mcp_response8 paramsValidate that an MCP tool response conforms to expected format, schema, and content rules. Use this to QA-test any MCP server tool. Suppl…
Validate that an MCP tool response conforms to expected format, schema, and content rules. Use this to QA-test any MCP server tool. Supply the tool's actual JSON result and a set of checks to perform.
| Parameter | Type | Description |
|---|---|---|
response | string | The MCP tool result as a JSON string to validate |
min_items | number | If response is an array, minimum number of items expected |
expected_type | string | Expected top-level type: "object", "array", "string", "number" |
required_keys | string | Comma-separated list of keys that MUST exist in the response (dot-notation for nested: "data.id, data.name") |
actual_latency | number | Actual measured latency in ms (from the call) |
forbidden_keys | string | Comma-separated list of keys that MUST NOT exist (e.g. "password, secret, token") |
max_size_bytes | number | Maximum acceptable response size in bytes |
max_response_ms | number | Maximum acceptable latency in ms (will be compared if provided) |
llm_output_validator9 paramsValidate an LLM response against QA criteria: format checks (JSON, code, markdown), content rules (must-include, must-not-include), lengt…
Validate an LLM response against QA criteria: format checks (JSON, code, markdown), content rules (must-include, must-not-include), length constraints, language detection, and safety patterns. Essential for QA testing LLM-powered features.
| Parameter | Type | Description |
|---|---|---|
output | string | The LLM output text to validate |
max_length | number | Maximum character length for the output |
min_length | number | Minimum character length for the output |
check_safety | boolean | Check for PII patterns (emails, phones, SSN), profanity signals, and prompt leakage |
must_include | string | Comma-separated strings that MUST appear in the output |
expected_format | string | Expected output format |
must_not_include | string | Comma-separated strings that must NOT appear (e.g. "TODO, FIXME, undefined, NaN") |
check_json_schema | string | If expected_format is JSON, provide required keys as comma-separated list to validate the structure |
expected_language | string | Expected language of the output (en, fr, es, de…). Checks for common words. |
compare_responses9 paramsCompare two ALREADY-PRODUCED outputs (e.g. model A vs model B on the same task) side by side. Returns deterministic metrics (token cosine…
Compare two ALREADY-PRODUCED outputs (e.g. model A vs model B on the same task) side by side. Returns deterministic metrics (token cosine, ROUGE-L, Jaccard, length/structure deltas, JSON diff) and a verdict. If a `reference` (ground truth) is given, scores each output against it and picks the closer one. If `model` + `api_key` are given, an LLM judge also picks a qualitative winner for the task. No re-execution — you bring the outputs.
| Parameter | Type | Description |
|---|---|---|
task | string | The task/prompt both outputs were answering — used by the LLM judge for context |
model | string | Optional judge model id (BYOK). When set with api_key, an LLM judge picks a qualitative winner. |
api_key | string | Optional API key for the judge model (BYOK). Used only for the judge call; never stored. |
label_a | string | Label for output A (e.g. "GPT-4o", "v1.0") |
label_b | string | Label for output B (e.g. "GPT-5-nano", "v1.1") |
reference | string | Optional ground-truth / expected answer. If set, each output is scored against it and the closer one wins (deterministic). |
check_json | boolean | Try to parse as JSON and compare structurally (keys, types, values) |
response_a | string | First output (e.g. model A's answer) |
response_b | string | Second output (e.g. model B's answer) |
analyze_responses2 paramsSemantically analyze N already-produced model outputs for the SAME task (the MCP counterpart to the LLM Sandbox). Without a reference: co…
Semantically analyze N already-produced model outputs for the SAME task (the MCP counterpart to the LLM Sandbox). Without a reference: computes consensus — pairwise cosine agreement, the most-representative output, and the outlier. With a `reference` (ground truth): also ranks every output by closeness (token cosine + ROUGE-L composite) and names the closest. Deterministic, no LLM, no key — gate-able in CI. You bring the outputs (2+). For a 2-way head-to-head with structural JSON diff use compar
| Parameter | Type | Description |
|---|---|---|
reference | string | Optional ground-truth answer. If set, each output is also ranked by closeness to it and the closest one is named. |
responses | array | The outputs to analyze (same task, N models/prompts/versions). Each item is a plain string or { "label": "GPT-4o", "text": "..." }. At least 2 required. |
prompt_test_suite10 paramsDefine a test suite for a prompt: provide the system prompt, user prompt, and expected output criteria. Returns a test plan with scored r…
Define a test suite for a prompt: provide the system prompt, user prompt, and expected output criteria. Returns a test plan with scored rubric — use this as input for manual or automated LLM evaluation.
| Parameter | Type | Description |
|---|---|---|
max_tokens | number | Max token budget for the test |
temperature | number | Temperature to use |
user_prompt | string | The user prompt to send |
check_safety | boolean | Include safety/PII checks in the rubric |
must_include | string | Required content (comma-separated) |
system_prompt | string | The system prompt under test |
expected_format | string | Expected output format |
must_not_include | string | Forbidden content (comma-separated) |
expected_behavior | string | Description of what the LLM should do (free text) |
adversarial_prompts | boolean | Auto-generate adversarial test variants (jailbreak, injection, edge cases) |
mcp_server_health_check2 paramsGenerate a health check report for an MCP server's tool manifest. Validates tool definitions, schema quality, naming conventions, and doc…
Generate a health check report for an MCP server's tool manifest. Validates tool definitions, schema quality, naming conventions, and documentation completeness. Paste the server manifest JSON to audit.
| Parameter | Type | Description |
|---|---|---|
strict | boolean | Enable strict mode: also check for optional best practices (examples, default values, descriptions > 20 chars) |
manifest | string | MCP server manifest JSON (the response from GET /mcp or tools/list) |
mcp_server_evaluate2 paramsRun a full compliance evaluation against a live MCP server URL. Tests: server reachability (ping), manifest discovery (GET /mcp), schema …
Run a full compliance evaluation against a live MCP server URL. Tests: server reachability (ping), manifest discovery (GET /mcp), schema quality (snake_case names, descriptions, inputSchema), JSON-RPC 2.0 test call, and P50/P95 latency. Returns a PASS/FIX/BLOCK verdict with a 0-100 score and per-check details.
| Parameter | Type | Description |
|---|---|---|
url | string | Base URL of the MCP server (e.g. https://ia-qa.com or http://localhost:3001) |
test_tool_name | string | Specific tool name to use in the JSON-RPC test call (defaults to the first tool in the manifest) |
json_schema_validate2 paramsValidate a JSON value against a JSON Schema (draft-07 subset). Supports type, required, properties, items, enum, const, pattern, format (…
Validate a JSON value against a JSON Schema (draft-07 subset). Supports type, required, properties, items, enum, const, pattern, format (email/uri/date), minimum/maximum, minLength/maxLength, minItems/maxItems, uniqueItems, additionalProperties, anyOf, allOf, oneOf. Returns all validation errors with dot-notation paths.
| Parameter | Type | Description |
|---|---|---|
value | string | object | array | The JSON value to validate — a JSON string, or the value itself. |
schema | string | object | array | The JSON Schema — a JSON string, or the schema object itself. |
flatten_json3 paramsFlatten a nested JSON object to single-level dot-notation keys (e.g. {"a":{"b":1}} → {"a.b":1}), or unflatten dot-notation keys back to a…
Flatten a nested JSON object to single-level dot-notation keys (e.g. {"a":{"b":1}} → {"a.b":1}), or unflatten dot-notation keys back to a nested object. Supports custom separators.
| Parameter | Type | Description |
|---|---|---|
mode | string | "flatten" (default) or "unflatten" |
input | string | object | array | The JSON to flatten or unflatten — a JSON string, or the object itself. |
separator | string | Key separator (default: ".") |
xml_to_json4 paramsConvert an XML string to a JSON object. Supports attributes, nested elements, arrays, CDATA, and namespaces. Options: parse numbers, pars…
Convert an XML string to a JSON object. Supports attributes, nested elements, arrays, CDATA, and namespaces. Options: parse numbers, parse booleans, ignore attributes.
| Parameter | Type | Description |
|---|---|---|
input | string | XML string to convert |
attr_prefix | string | Prefix for attribute keys (default: "@_") |
ignore_attrs | boolean | Ignore XML attributes (default: false) |
parse_values | boolean | Auto-parse numbers and booleans (default: true) |
redact_pii3 paramsAutomatically detect and redact Personally Identifiable Information (PII) from text. Replaces emails, phone numbers, SSNs, credit cards, …
Automatically detect and redact Personally Identifiable Information (PII) from text. Replaces emails, phone numbers, SSNs, credit cards, IP addresses, and JWT tokens with [REDACTED_TYPE] placeholders. Safe to use before logging or sending to an LLM.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to redact PII from |
types | string | Comma-separated types to redact (default: all). Options: email, phone, ssn, credit_card, ip_address, jwt |
marker | string | Custom replacement marker (default: "REDACTED"). Result: [REDACTED_EMAIL] |
mock_from_schema3 paramsGenerate realistic mock data from a JSON Schema. Supports all common types (string, number, integer, boolean, array, object, null), forma…
Generate realistic mock data from a JSON Schema. Supports all common types (string, number, integer, boolean, array, object, null), format hints (email, date, date-time, uri, uuid), enum, const, and nested schemas. Perfect for testing MCP tools with realistic data.
| Parameter | Type | Description |
|---|---|---|
seed | string | Optional seed string for deterministic output (uses first char codes) |
count | number | Number of mock objects to generate (default: 1, max: 20) |
schema | string | object | array | The JSON Schema to generate from — a JSON string, or the schema object itself. |
transform_json_array9 paramsTransform a JSON array using common operations: pluck (extract specific fields), filter (by field value), sort_by (field), group_by (fiel…
Transform a JSON array using common operations: pluck (extract specific fields), filter (by field value), sort_by (field), group_by (field), count_by (field), uniq_by (field). Useful for processing MCP tool results and LLM structured outputs.
| Parameter | Type | Description |
|---|---|---|
n | number | For first_n / last_n: number of items |
path | string | Optional dot-notation path to the array within the JSON object (e.g. "data.items") |
field | string | Field to operate on (for sort_by, group_by, count_by, uniq_by, filter) |
input | string | object | array | The JSON containing an array (or an object with an array at `path`) — a JSON string, or the value itself. |
fields | string | Comma-separated field list for "pluck" (e.g. "id,name,email") |
filter_op | string | For "filter": "==" | "!=" | ">" | ">=" | "<" | "<=" | "contains" | "exists" | "!exists" |
operation | string | Operation: "pluck", "filter", "sort_by", "group_by", "count_by", "uniq_by", "reverse", "first_n", "last_n", "flatten" |
sort_order | string | For sort_by: "asc" (default) or "desc" |
filter_value | string | For "filter": value to compare against |
json_to_csv3 paramsConvert a JSON array of objects to CSV format. Automatically detects columns from all object keys. Handles quoting and escaping per RFC 4…
Convert a JSON array of objects to CSV format. Automatically detects columns from all object keys. Handles quoting and escaping per RFC 4180.
| Parameter | Type | Description |
|---|---|---|
input | string | object | array | The array of objects to convert — a JSON string, or the array itself. |
headers | boolean | Include header row (default: true) |
delimiter | string | Column delimiter (default: ",") |
case_convert2 paramsConvert a string between naming conventions: camelCase, PascalCase, snake_case, kebab-case, UPPER_SNAKE_CASE, dot.case, Title Case. Essen…
Convert a string between naming conventions: camelCase, PascalCase, snake_case, kebab-case, UPPER_SNAKE_CASE, dot.case, Title Case. Essential for code generation and refactoring.
| Parameter | Type | Description |
|---|---|---|
to | string | Target case: "camel", "pascal", "snake", "kebab", "upper_snake", "dot", "title" |
input | string | String to convert (e.g., "myVariableName", "my-css-class") |
sort_lines5 paramsSort, deduplicate, reverse, or filter lines of text. Useful for cleaning import lists, dependencies, log files, and config entries.
| Parameter | Type | Description |
|---|---|---|
trim | boolean | Trim whitespace from each line (default: true) |
input | string | Multi-line text to process |
filter | string | For "filter": keep lines containing this substring (case-insensitive) |
operation | string | "sort" (default), "sort_desc", "reverse", "deduplicate", "unique_sort", "filter" |
remove_empty | boolean | Remove empty lines (default: true) |
number_base_convert3 paramsConvert numbers between bases: decimal, binary, octal, hexadecimal, or any base 2–36. Auto-detects 0x, 0b, 0o prefixes.
| Parameter | Type | Description |
|---|---|---|
input | string | Number to convert (e.g., "255", "0xFF", "0b1010", "0o77") |
to_base | number | Target base 2–36 (omit to get all common bases) |
from_base | number | Source base 2–36 (auto-detects prefix if omitted) |
validate_url1 paramParse and validate a URL. Returns decomposed components: protocol, hostname, port, path, query parameters, hash, and origin.
| Parameter | Type | Description |
|---|---|---|
input | string | URL to validate and parse |
check_contrast_ratio2 paramsCalculate WCAG 2.1 contrast ratio between two colors. Returns ratio and compliance for AA/AAA normal and large text.
| Parameter | Type | Description |
|---|---|---|
background | string | Background color in hex (e.g., "#ffffff") |
foreground | string | Foreground color in hex (e.g., "#333333") |
html_to_markdown2 paramsConvert HTML to clean Markdown. Strips scripts, styles, nav, ads, and comments. Converts headings, lists, links, images, code blocks. Ide…
Convert HTML to clean Markdown. Strips scripts, styles, nav, ads, and comments. Converts headings, lists, links, images, code blocks. Ideal for preparing web content as LLM context.
| Parameter | Type | Description |
|---|---|---|
input | string | HTML string to convert |
strip_links | boolean | Strip link URLs, keep text only (default: false) |
cron_parse1 paramParse a cron expression into a human-readable schedule description. Supports standard 5-field cron (minute hour day month weekday).
| Parameter | Type | Description |
|---|---|---|
expression | string | Cron expression (e.g., "0 9 * * 1-5", "*/15 * * * *") |
cron_validator2 paramsValidate a 5-field cron expression, explain the schedule, and preview the next execution times. Use this to debug cron jobs before they r…
Validate a 5-field cron expression, explain the schedule, and preview the next execution times. Use this to debug cron jobs before they reach production. Returns parsed fields, a human-readable description, and upcoming ISO timestamps.
| Parameter | Type | Description |
|---|---|---|
expression | string | Cron expression with 5 fields, e.g. "*/15 9-18 * * 1-5" |
next_runs_count | number | How many upcoming runs to return (1-50, default: 10) |
calculate_readability1 paramCalculate readability scores: Flesch Reading Ease, Flesch-Kincaid Grade Level, Coleman-Liau Index, and Automated Readability Index. Usefu…
Calculate readability scores: Flesch Reading Ease, Flesch-Kincaid Grade Level, Coleman-Liau Index, and Automated Readability Index. Useful for evaluating LLM output quality.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to analyze for readability |
normalize_whitespace6 paramsNormalize whitespace: trim trailing spaces, collapse blank lines, normalize line endings (LF/CRLF), convert tabs to spaces. Useful for cl…
Normalize whitespace: trim trailing spaces, collapse blank lines, normalize line endings (LF/CRLF), convert tabs to spaces. Useful for cleaning code, configs, and text before processing.
| Parameter | Type | Description |
|---|---|---|
input | string | Text to normalize |
trim_file | boolean | Trim leading/trailing blank lines (default: true) |
trim_lines | boolean | Trim trailing whitespace from each line (default: true) |
line_ending | string | "lf" (default), "crlf", or "cr" |
tab_to_spaces | number | Convert tabs to N spaces (omit to keep tabs) |
collapse_blanks | boolean | Collapse 3+ consecutive blank lines to 2 (default: true) |
embedding_similarity4 paramsCompute text similarity using local algorithms (Bag of Words, TF-IDF, Character N-grams). No API key needed — runs entirely in-process. N…
Compute text similarity using local algorithms (Bag of Words, TF-IDF, Character N-grams). No API key needed — runs entirely in-process. NOT real embeddings: for true semantic similarity with vector embeddings, use run_semantic_tests with mode="embeddings" and your OpenAI API key. Supports single pair or batch mode with pipe-separated pairs. Useful for RAG retrieval testing, semantic search evaluation, and text deduplication.
| Parameter | Type | Description |
|---|---|---|
batch | array | Batch mode: array of { text_a, text_b } pairs. Overrides text_a/text_b if provided. |
text_a | string | First text to compare (single-pair mode) |
text_b | string | Second text to compare (single-pair mode) |
methods | array | Algorithms to use (default: all three). Options: "bow", "tfidf", "ngram" |
llm_format_check3 paramsValidate that an LLM output matches an expected format: JSON, Markdown, code block, bullet list, numbered list, table, YAML, XML, or cust…
Validate that an LLM output matches an expected format: JSON, Markdown, code block, bullet list, numbered list, table, YAML, XML, or custom regex. Essential for structured output testing.
| Parameter | Type | Description |
|---|---|---|
output | string | The LLM output to validate |
regex_pattern | string | Custom regex pattern (only when expected_format is "regex") |
expected_format | string | Expected format |
hallucination_check3 paramsWord-overlap based hallucination check: verifies if an LLM answer's words and numbers appear in the provided source/context. Fast, determ…
Word-overlap based hallucination check: verifies if an LLM answer's words and numbers appear in the provided source/context. Fast, deterministic, no API key needed. Limitations: not semantic — does not understand synonyms or paraphrases. For true semantic grounding, use run_semantic_tests with embedding mode. Essential for quick RAG accuracy testing.
| Parameter | Type | Description |
|---|---|---|
answer | string | The LLM-generated answer to verify |
strict | boolean | If true, every sentence in the answer must be supported (default: false) |
context | string | The source/reference text that should ground the answer |
prompt_injection_scan2 paramsScan user input or prompts for common prompt injection patterns. Detects system prompt overrides, jailbreak attempts, role manipulation, …
Scan user input or prompts for common prompt injection patterns. Detects system prompt overrides, jailbreak attempts, role manipulation, encoding tricks, delimiter attacks, template/interpolation injection ({{...}}, ${...}), and context-exfiltration attempts ("repeat everything above").
| Parameter | Type | Description |
|---|---|---|
input | string | The user input or prompt to scan for injection patterns |
sensitivity | string | Detection sensitivity (default: medium) |
token_budget_calculator8 paramsPlan token allocation across system prompt, user input, context/RAG chunks, and expected output. Warns if budget exceeds model context wi…
Plan token allocation across system prompt, user input, context/RAG chunks, and expected output. Warns if budget exceeds model context window. Supports 25+ models.
| Parameter | Type | Description |
|---|---|---|
model | string | Model name (e.g. gpt-4o, claude-3.5-sonnet, gemini-2.0-flash) |
context | string | Actual context text (will estimate tokens) |
user_input | string | Actual user input text (will estimate tokens) |
system_prompt | string | Actual system prompt text (will estimate tokens) |
context_tokens | number | Token count for RAG context / documents |
user_input_tokens | number | Token count for user message |
system_prompt_tokens | number | Token count for system prompt |
expected_output_tokens | number | Expected max output tokens |
consistency_check2 paramsCompare multiple LLM responses to the same prompt and detect inconsistencies using Jaccard word-overlap similarity and fact drift (number…
Compare multiple LLM responses to the same prompt and detect inconsistencies using Jaccard word-overlap similarity and fact drift (number comparison). Fast, deterministic, no API key needed. Limitations: relies on surface-level word matching — "Paris is the capital of France" vs "Paris is the French capital" may score low despite semantic equivalence. For true semantic consistency, use run_semantic_tests with embedding mode. Essential for determinism testing.
| Parameter | Type | Description |
|---|---|---|
responses | array | Array of 2+ LLM responses to compare (same prompt, different runs) |
check_facts | boolean | Check for contradictory numbers/facts across responses (default: true) |
llm_json_schema_check2 paramsValidate that an LLM JSON output matches a JSON Schema definition. Tests required fields, types, enums, nested objects, and arrays. Criti…
Validate that an LLM JSON output matches a JSON Schema definition. Tests required fields, types, enums, nested objects, and arrays. Critical for function-calling and structured output testing.
| Parameter | Type | Description |
|---|---|---|
output | string | The LLM JSON output (raw string, will be parsed) |
schema | object | JSON Schema (draft-07 subset) to validate against |
latency_benchmark2 paramsMeasure response time of one or more HTTP endpoints (GET/POST). Runs N iterations and returns min/max/avg/p95 latency. Useful for API and…
Measure response time of one or more HTTP endpoints (GET/POST). Runs N iterations and returns min/max/avg/p95 latency. Useful for API and MCP server benchmarking.
| Parameter | Type | Description |
|---|---|---|
endpoints | string | array | Endpoints to benchmark. Accepts a single URL string, an array of URL strings, or an array of {url, method?, body?, headers?, label?} objects. |
iterations | number | Number of iterations per endpoint (default: 3, max: 10) |
response_quality_score4 paramsScore an LLM response on multiple quality dimensions: relevance, completeness, clarity, conciseness, formatting. Returns a weighted 0-100…
Score an LLM response on multiple quality dimensions: relevance, completeness, clarity, conciseness, formatting. Returns a weighted 0-100 score with detailed breakdown.
| Parameter | Type | Description |
|---|---|---|
question | string | The original question/prompt |
response | string | The LLM response to score |
max_length | number | Ideal max character length (penalize if exceeded) |
expected_keywords | array | Keywords that should appear in a good answer |
rag_relevance_rank3 paramsRank an array of text chunks by relevance to a query using TF-IDF scoring. Simulates retrieval ranking for RAG testing without needing em…
Rank an array of text chunks by relevance to a query using TF-IDF scoring. Simulates retrieval ranking for RAG testing without needing embeddings or an API.
| Parameter | Type | Description |
|---|---|---|
query | string | The user query |
top_k | number | Return top K results (default: all) |
chunks | array | Array of text chunks to rank |
toxicity_scan2 paramsScan text for toxic language, bias indicators, profanity, and harmful content categories. Returns risk scores per category. Useful for LL…
Scan text for toxic language, bias indicators, profanity, and harmful content categories. Returns risk scores per category. Useful for LLM safety guardrail testing.
| Parameter | Type | Description |
|---|---|---|
text | string | Text to scan |
categories | array | Categories to check (default: all) |
guardrail_test2 paramsTest an LLM response against a set of guardrail rules: must-include, must-not-include, max length, required format, language, forbidden p…
Test an LLM response against a set of guardrail rules: must-include, must-not-include, max length, required format, language, forbidden patterns, and custom regex. Returns pass/fail per rule.
| Parameter | Type | Description |
|---|---|---|
rules | array | Array of guardrail rules to check |
response | string | The LLM response to test |
function_call_validate2 paramsValidate an LLM function call / tool_use output: check that function name is in allowed list, arguments match expected schema, no extra/m…
Validate an LLM function call / tool_use output: check that function name is in allowed list, arguments match expected schema, no extra/missing args. For OpenAI function calling & MCP tool_use testing.
| Parameter | Type | Description |
|---|---|---|
function_call | object | The function call object from LLM (e.g. { "name": "get_weather", "arguments": {"city":"Paris"} }) |
allowed_functions | array | List of allowed function definitions |
conversation_analyze1 paramAnalyze a multi-turn conversation for context retention, topic drift, instruction following, and repetition. Accepts messages array [{rol…
Analyze a multi-turn conversation for context retention, topic drift, instruction following, and repetition. Accepts messages array [{role, content}]. Essential for chatbot QA.
| Parameter | Type | Description |
|---|---|---|
messages | array | Conversation messages in order |
mcp_schema_lint1 paramLint an MCP tool definition for best practices: naming conventions, description quality, schema completeness, required fields consistency…
Lint an MCP tool definition for best practices: naming conventions, description quality, schema completeness, required fields consistency, description length. Returns actionable warnings.
| Parameter | Type | Description |
|---|---|---|
tool_definition | object | MCP tool definition object with name, description, inputSchema |
cot_analyzer2 paramsAnalyze a Chain-of-Thought (CoT) or reasoning trace from an LLM. Detects step count, logical flow, conclusion presence, backtracking, and…
Analyze a Chain-of-Thought (CoT) or reasoning trace from an LLM. Detects step count, logical flow, conclusion presence, backtracking, and estimates reasoning depth. Useful for o1/o3/DeepSeek-R1 evaluation.
| Parameter | Type | Description |
|---|---|---|
reasoning | string | The CoT / reasoning trace text (e.g. from <think> tags or step-by-step output) |
expected_conclusion | string | Expected final answer to check against (optional) |
ab_test_report2 paramsGenerate an A/B test report comparing two prompts or model configurations. Accepts arrays of scores and returns statistical comparison: m…
Generate an A/B test report comparing two prompts or model configurations. Accepts arrays of scores and returns statistical comparison: mean, median, std deviation, winner, and improvement percentage.
| Parameter | Type | Description |
|---|---|---|
variant_a | object | First variant configuration with name and score array |
variant_b | object | Second variant configuration with name and score array |
context_window_check3 paramsGiven an array of message objects [{role, content}], estimate total token usage and check if it fits in the target model's context window…
Given an array of message objects [{role, content}], estimate total token usage and check if it fits in the target model's context window. Warns about truncation risk.
| Parameter | Type | Description |
|---|---|---|
model | string | Target model name (e.g. gpt-4o, claude-3.5-sonnet) |
messages | array | Array of messages (system/user/assistant) |
max_output_tokens | number | Reserved tokens for output (default: 4096) |
vector_similarity3 paramsCompute similarity/distance between two float vectors: cosine similarity, dot product, Euclidean and Manhattan distance. Essential for ve…
Compute similarity/distance between two float vectors: cosine similarity, dot product, Euclidean and Manhattan distance. Essential for vector DB relevance scoring, embedding evaluation, and nearest-neighbor testing.
| Parameter | Type | Description |
|---|---|---|
metric | string | Distance metric (default: all) |
vector_a | array | First vector as array of floats |
vector_b | array | Second vector as array of floats |
normalize_vector2 paramsL2-normalize a float vector (produce a unit vector with norm=1). Required by many vector DBs (Pinecone, Qdrant cosine). Supports batch no…
L2-normalize a float vector (produce a unit vector with norm=1). Required by many vector DBs (Pinecone, Qdrant cosine). Supports batch normalization of up to 1000 vectors.
| Parameter | Type | Description |
|---|---|---|
batch | array | Batch of vectors to normalize (overrides vector) |
vector | array | Single vector to normalize |
vector_quantize2 paramsSimulate int8 or int4 quantization of float32 embedding vectors. Reduces storage by 4x (int8) or 8x (int4). Returns quantized values, sca…
Simulate int8 or int4 quantization of float32 embedding vectors. Reduces storage by 4x (int8) or 8x (int4). Returns quantized values, scale factor, and precision loss (MSE). Useful for understanding vector DB compression trade-offs.
| Parameter | Type | Description |
|---|---|---|
bits | number | Quantization bits: 8 (int8, default) or 4 (int4) |
vector | array | Float32 vector to quantize |
vector_stats3 paramsCompute statistics for a float vector or matrix of vectors: mean, std, L2 norm, min, max, sparsity, top-K indices. Useful for debugging e…
Compute statistics for a float vector or matrix of vectors: mean, std, L2 norm, min, max, sparsity, top-K indices. Useful for debugging embedding quality and analyzing vector distributions in a vector DB.
| Parameter | Type | Description |
|---|---|---|
top_k | number | Return indices of top K absolute values (default: 5) |
matrix | array | Matrix of vectors (overrides vector). Returns per-vector + matrix-level stats. Required unless `vector` is given. |
vector | array | Single vector to analyze. Required unless `matrix` is given. |