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 claude

Swap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.

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

ParameterTypeDescription
inputstringA raw JSON string, e.g. '{"key":"value"}'. Must already parse as JSON — plain text or truncated JSON is rejected, not repaired.
indentnumberIndent 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.

ParameterTypeDescription
countnumberNumber 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.

ParameterTypeDescription
inputstringText to hash
algorithmstringHash 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.

ParameterTypeDescription
inputstringText 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.

ParameterTypeDescription
inputstringText 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.

ParameterTypeDescription
inputstringBase64 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.

ParameterTypeDescription
modestring"component" (default) or "full" for encodeURI behavior
inputstringString 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.

ParameterTypeDescription
inputstringURL-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.

ParameterTypeDescription
inputstringString to slugify
separatorstringSeparator 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.

ParameterTypeDescription
emailstringEmail 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.

ParameterTypeDescription
codestringJavaScript 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.

ParameterTypeDescription
tokenstringThe 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.

ParameterTypeDescription
inputstringThe 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.

ParameterTypeDescription
lengthnumberPassword length (4–128, default: 16)
numbersbooleanInclude digits (default: true)
symbolsbooleanInclude symbols like !@#$ (default: false)
uppercasebooleanInclude 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.

ParameterTypeDescription
inputstringCSV content to parse
headerbooleanTreat the first row as headers (default: true)
delimiterstringField 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%).

ParameterTypeDescription
inputstringColor 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.

ParameterTypeDescription
flagsstringRegex flags: g (global), i (case-insensitive), m (multiline), s (dotAll) — default: ""
inputstringThe string to test against (max 50 KB)
patternstringRegular 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).

ParameterTypeDescription
paragraphsnumberNumber of paragraphs to generate (1–10, default: 1)
words_per_sentencenumberApproximate words per sentence (3–30, default: 10)
sentences_per_paragraphnumberSentences 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.

ParameterTypeDescription
inputUnix 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.

ParameterTypeDescription
astringOriginal (before) text
bstringModified (after) text
contextnumberContext 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.

ParameterTypeDescription
inputstringText to truncate
from_endbooleanKeep the end of the text instead of the start (default: false)
max_tokensnumberMaximum 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.
ParameterTypeDescription
inputstringText to split into chunks
overlapnumberToken overlap between consecutive chunks (default: 0)
chunk_tokensnumberMaximum 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.

ParameterTypeDescription
inputstringRaw 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.

ParameterTypeDescription
inputstringMarkdown 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.

ParameterTypeDescription
modelstringModel name, e.g. "gpt-4o", "claude-3.5-sonnet", "deepseek-v3"
input_tokensnumberNumber of input/prompt tokens
output_tokensnumberNumber 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.

ParameterTypeDescription
inputstringString to HTML-escape
unescape_html1 paramConvert HTML entities (&amp;, &lt;, &gt;, &quot;, &#x27;, and numeric &#NNN;) back to plain characters. Use when processing HTML-encoded …

Convert HTML entities (&amp;, &lt;, &gt;, &quot;, &#x27;, 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.

ParameterTypeDescription
inputstringHTML-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.

ParameterTypeDescription
limitnumberMax articles to return (default: 20, max: 50)
categorystringFilter: "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.).

ParameterTypeDescription
head_htmlstringRaw 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.

ParameterTypeDescription
pathstringDot-notation path, e.g. "user.address.city" or "items.0.name"
inputstring | object | arrayThe 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.

ParameterTypeDescription
typestringSchema @type: "WebSite", "FAQPage", "Article", "Person", "Organization", "SoftwareApplication", "HowTo"
fieldsobjectSchema fields as key-value pairs (name, url, description, author, datePublished, etc.)
faq_itemsarrayFor 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

ParameterTypeDescription
contextstringOptional PR title or feature context for better analysis
version1stringOriginal code (before changes). If omitted, only the new version is analysed.
version2stringNew/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.

ParameterTypeDescription
inputsstringOptional: list of input parameters (one per line, e.g. "email: string [required]")
featurestringFeature 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

ParameterTypeDescription
contextstringOptional PR title or description for richer analysis
git_diffstringUnified 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.

ParameterTypeDescription
responsestringThe MCP tool result as a JSON string to validate
min_itemsnumberIf response is an array, minimum number of items expected
expected_typestringExpected top-level type: "object", "array", "string", "number"
required_keysstringComma-separated list of keys that MUST exist in the response (dot-notation for nested: "data.id, data.name")
actual_latencynumberActual measured latency in ms (from the call)
forbidden_keysstringComma-separated list of keys that MUST NOT exist (e.g. "password, secret, token")
max_size_bytesnumberMaximum acceptable response size in bytes
max_response_msnumberMaximum 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.

ParameterTypeDescription
outputstringThe LLM output text to validate
max_lengthnumberMaximum character length for the output
min_lengthnumberMinimum character length for the output
check_safetybooleanCheck for PII patterns (emails, phones, SSN), profanity signals, and prompt leakage
must_includestringComma-separated strings that MUST appear in the output
expected_formatstringExpected output format
must_not_includestringComma-separated strings that must NOT appear (e.g. "TODO, FIXME, undefined, NaN")
check_json_schemastringIf expected_format is JSON, provide required keys as comma-separated list to validate the structure
expected_languagestringExpected 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.

ParameterTypeDescription
taskstringThe task/prompt both outputs were answering — used by the LLM judge for context
modelstringOptional judge model id (BYOK). When set with api_key, an LLM judge picks a qualitative winner.
api_keystringOptional API key for the judge model (BYOK). Used only for the judge call; never stored.
label_astringLabel for output A (e.g. "GPT-4o", "v1.0")
label_bstringLabel for output B (e.g. "GPT-5-nano", "v1.1")
referencestringOptional ground-truth / expected answer. If set, each output is scored against it and the closer one wins (deterministic).
check_jsonbooleanTry to parse as JSON and compare structurally (keys, types, values)
response_astringFirst output (e.g. model A's answer)
response_bstringSecond 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

ParameterTypeDescription
referencestringOptional ground-truth answer. If set, each output is also ranked by closeness to it and the closest one is named.
responsesarrayThe 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.

ParameterTypeDescription
max_tokensnumberMax token budget for the test
temperaturenumberTemperature to use
user_promptstringThe user prompt to send
check_safetybooleanInclude safety/PII checks in the rubric
must_includestringRequired content (comma-separated)
system_promptstringThe system prompt under test
expected_formatstringExpected output format
must_not_includestringForbidden content (comma-separated)
expected_behaviorstringDescription of what the LLM should do (free text)
adversarial_promptsbooleanAuto-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.

ParameterTypeDescription
strictbooleanEnable strict mode: also check for optional best practices (examples, default values, descriptions > 20 chars)
manifeststringMCP 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.

ParameterTypeDescription
urlstringBase URL of the MCP server (e.g. https://ia-qa.com or http://localhost:3001)
test_tool_namestringSpecific 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.

ParameterTypeDescription
valuestring | object | arrayThe JSON value to validate — a JSON string, or the value itself.
schemastring | object | arrayThe 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.

ParameterTypeDescription
modestring"flatten" (default) or "unflatten"
inputstring | object | arrayThe JSON to flatten or unflatten — a JSON string, or the object itself.
separatorstringKey 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.

ParameterTypeDescription
inputstringXML string to convert
attr_prefixstringPrefix for attribute keys (default: "@_")
ignore_attrsbooleanIgnore XML attributes (default: false)
parse_valuesbooleanAuto-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.

ParameterTypeDescription
inputstringText to redact PII from
typesstringComma-separated types to redact (default: all). Options: email, phone, ssn, credit_card, ip_address, jwt
markerstringCustom 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.

ParameterTypeDescription
seedstringOptional seed string for deterministic output (uses first char codes)
countnumberNumber of mock objects to generate (default: 1, max: 20)
schemastring | object | arrayThe 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.

ParameterTypeDescription
nnumberFor first_n / last_n: number of items
pathstringOptional dot-notation path to the array within the JSON object (e.g. "data.items")
fieldstringField to operate on (for sort_by, group_by, count_by, uniq_by, filter)
inputstring | object | arrayThe JSON containing an array (or an object with an array at `path`) — a JSON string, or the value itself.
fieldsstringComma-separated field list for "pluck" (e.g. "id,name,email")
filter_opstringFor "filter": "==" | "!=" | ">" | ">=" | "<" | "<=" | "contains" | "exists" | "!exists"
operationstringOperation: "pluck", "filter", "sort_by", "group_by", "count_by", "uniq_by", "reverse", "first_n", "last_n", "flatten"
sort_orderstringFor sort_by: "asc" (default) or "desc"
filter_valuestringFor "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.

ParameterTypeDescription
inputstring | object | arrayThe array of objects to convert — a JSON string, or the array itself.
headersbooleanInclude header row (default: true)
delimiterstringColumn 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.

ParameterTypeDescription
tostringTarget case: "camel", "pascal", "snake", "kebab", "upper_snake", "dot", "title"
inputstringString 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.
ParameterTypeDescription
trimbooleanTrim whitespace from each line (default: true)
inputstringMulti-line text to process
filterstringFor "filter": keep lines containing this substring (case-insensitive)
operationstring"sort" (default), "sort_desc", "reverse", "deduplicate", "unique_sort", "filter"
remove_emptybooleanRemove 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.
ParameterTypeDescription
inputstringNumber to convert (e.g., "255", "0xFF", "0b1010", "0o77")
to_basenumberTarget base 2–36 (omit to get all common bases)
from_basenumberSource 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.
ParameterTypeDescription
inputstringURL 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.
ParameterTypeDescription
backgroundstringBackground color in hex (e.g., "#ffffff")
foregroundstringForeground 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.

ParameterTypeDescription
inputstringHTML string to convert
strip_linksbooleanStrip 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).
ParameterTypeDescription
expressionstringCron 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.

ParameterTypeDescription
expressionstringCron expression with 5 fields, e.g. "*/15 9-18 * * 1-5"
next_runs_countnumberHow 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.

ParameterTypeDescription
inputstringText 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.

ParameterTypeDescription
inputstringText to normalize
trim_filebooleanTrim leading/trailing blank lines (default: true)
trim_linesbooleanTrim trailing whitespace from each line (default: true)
line_endingstring"lf" (default), "crlf", or "cr"
tab_to_spacesnumberConvert tabs to N spaces (omit to keep tabs)
collapse_blanksbooleanCollapse 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.

ParameterTypeDescription
batcharrayBatch mode: array of { text_a, text_b } pairs. Overrides text_a/text_b if provided.
text_astringFirst text to compare (single-pair mode)
text_bstringSecond text to compare (single-pair mode)
methodsarrayAlgorithms 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.

ParameterTypeDescription
outputstringThe LLM output to validate
regex_patternstringCustom regex pattern (only when expected_format is "regex")
expected_formatstringExpected 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.

ParameterTypeDescription
answerstringThe LLM-generated answer to verify
strictbooleanIf true, every sentence in the answer must be supported (default: false)
contextstringThe 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").

ParameterTypeDescription
inputstringThe user input or prompt to scan for injection patterns
sensitivitystringDetection 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.

ParameterTypeDescription
modelstringModel name (e.g. gpt-4o, claude-3.5-sonnet, gemini-2.0-flash)
contextstringActual context text (will estimate tokens)
user_inputstringActual user input text (will estimate tokens)
system_promptstringActual system prompt text (will estimate tokens)
context_tokensnumberToken count for RAG context / documents
user_input_tokensnumberToken count for user message
system_prompt_tokensnumberToken count for system prompt
expected_output_tokensnumberExpected 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.

ParameterTypeDescription
responsesarrayArray of 2+ LLM responses to compare (same prompt, different runs)
check_factsbooleanCheck 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.

ParameterTypeDescription
outputstringThe LLM JSON output (raw string, will be parsed)
schemaobjectJSON 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.

ParameterTypeDescription
endpointsstring | arrayEndpoints to benchmark. Accepts a single URL string, an array of URL strings, or an array of {url, method?, body?, headers?, label?} objects.
iterationsnumberNumber 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.

ParameterTypeDescription
questionstringThe original question/prompt
responsestringThe LLM response to score
max_lengthnumberIdeal max character length (penalize if exceeded)
expected_keywordsarrayKeywords 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.

ParameterTypeDescription
querystringThe user query
top_knumberReturn top K results (default: all)
chunksarrayArray 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.

ParameterTypeDescription
textstringText to scan
categoriesarrayCategories 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.

ParameterTypeDescription
rulesarrayArray of guardrail rules to check
responsestringThe 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.

ParameterTypeDescription
function_callobjectThe function call object from LLM (e.g. { "name": "get_weather", "arguments": {"city":"Paris"} })
allowed_functionsarrayList 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.

ParameterTypeDescription
messagesarrayConversation 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.

ParameterTypeDescription
tool_definitionobjectMCP 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.

ParameterTypeDescription
reasoningstringThe CoT / reasoning trace text (e.g. from <think> tags or step-by-step output)
expected_conclusionstringExpected 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.

ParameterTypeDescription
variant_aobjectFirst variant configuration with name and score array
variant_bobjectSecond 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.

ParameterTypeDescription
modelstringTarget model name (e.g. gpt-4o, claude-3.5-sonnet)
messagesarrayArray of messages (system/user/assistant)
max_output_tokensnumberReserved 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.

ParameterTypeDescription
metricstringDistance metric (default: all)
vector_aarrayFirst vector as array of floats
vector_barraySecond 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.

ParameterTypeDescription
batcharrayBatch of vectors to normalize (overrides vector)
vectorarraySingle 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.

ParameterTypeDescription
bitsnumberQuantization bits: 8 (int8, default) or 4 (int4)
vectorarrayFloat32 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.

ParameterTypeDescription
top_knumberReturn indices of top K absolute values (default: 5)
matrixarrayMatrix of vectors (overrides vector). Returns per-vector + matrix-level stats. Required unless `vector` is given.
vectorarraySingle vector to analyze. Required unless `matrix` is given.