IA-QA Eval & RAG — 38 tools

io.github.JcJamet由 GitHub 账号 JcJamet 发布v1.0.1更新于 Oct 29, 2026

LLM & RAG evals: hallucination, eval contracts, semantic tests, tokens & model info. Free, no key.

已验证Streamable HTTP可网页运行开发者工具AI 与机器学习

概览

AI 生成的概览

托管式 IA-QA 评测工具包,含 38 个工具,用于测试 LLM 输出与 RAG 流程:幻觉检查、评测契约、相似度评分、token 与模型信息。

可以做什么
  • 检查 LLM 回答:幻觉、一致性、格式、JSON Schema、质量评分,以及多轮对话与推理链分析
  • 运行评测套件:.ia-eval.yaml 契约、语义测试、变形稳定性检查、A/B 报告与 CI 工作流生成
  • 评估 RAG 质量:相似度指标、BM25 与 TF-IDF 排序、重排评估、RAG 提示词组装
  • 规划 token 与模型:token 计数、预算、上下文窗口检查、成本估算、模型规格与对比
  • 用托管开源模型生成文本,并查找或评价工具
适用场景
适合在上线 LLM 功能、RAG 流程或智能体时,对回答质量、稳定性和检索效果获得通过/失败判定;也适合在调用模型 API 前查询 token、成本与模型参数。
运行要求
ia-qa.com 上的远程 Streamable HTTP 端点;多数工具无需账号或 API 密钥。少数工具需自带密钥(例如 embedding 模式语义测试需 OpenAI 密钥,VLM 测试套件需模型提供商密钥)。限速为每 IP 每分钟 60 次请求。
安装前请注意
所有调用都在 ia-qa.com 上执行,传入工具的内容都会发送到该站点,包括自带密钥工具中提供的提供商 API 密钥。调用模型的工具可能在你自己的密钥上产生费用。提交的评分会被维护者读取。

安装

在 SourceWeft 中

  1. 打开 控制台中的 IA-QA Eval & RAG — 38 tools,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.JcJamet%2Fia-qa-eval/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ia-qa-eval-rag-38-tools": {
      "type": "http",
      "url": "https://www.ia-qa.com/mcp/eval"
    }
  }
}

README

IA-QA MCP server

Free QA and LLM-testing tools for AI agents, served over MCP (Streamable HTTP). No account, no API key. Every tool returns a verdict an agent can act on: pass/fail, a score, a diff.

This repository describes the hosted server; it holds no server code. The live tool list is always GET https://www.ia-qa.com/mcp.

Endpoints

EndpointTools listedFor
https://www.ia-qa.com/mcpall 152clients with no tool limit
https://www.ia-qa.com/mcp/security30prompt injection, PII and secret scans, TLS/header/CORS audits, MCP server checks
https://www.ia-qa.com/mcp/eval38hallucination, eval contracts, semantic and RAG tests, tokens and models
https://www.ia-qa.com/mcp/data36JSON/YAML/CSV, schema validation, encoding, text and time utilities

Clients cap how many tools they load (VS Code Copilot 128 per request, Cursor about 40). A pack lists only its tools; for a tool outside it, add the full server or the pack that lists it — find_tool searches everything and says which pack lists each tool.

Install

Claude Code

sh
claude mcp add --transport http ia-qa https://www.ia-qa.com/mcp# or one pack:claude mcp add --transport http ia-qa-security https://www.ia-qa.com/mcp/security

Cursor — .cursor/mcp.json (this project) or ~/.cursor/mcp.json (all projects) (use a pack: Cursor loads about 40 tools)

json
{  "mcpServers": {    "ia-qa-security": {      "url": "https://www.ia-qa.com/mcp/security"    }  }}

VS Code (GitHub Copilot, agent mode) — .vscode/mcp.json

json
{  "servers": {    "ia-qa": {      "type": "http",      "url": "https://www.ia-qa.com/mcp"    }  }}

Claude Desktop — Settings → Connectors → Add custom connector, URL https://www.ia-qa.com/mcp (or a pack URL).

Any other MCP client — Streamable HTTP at one of the URLs above. More clients, and a prompt you can paste into any agent: https://www.ia-qa.com/mcp-server

What leaves your machine

Every call runs on ia-qa.com: whatever you pass to a tool is sent there — including a provider API key given to one of the few bring-your-own-key tools. The call journal stores no IP address: a monthly pseudonym (an HMAC, not reversible) to count distinct callers within a month, and each entry is deleted 400 days after the call. Rate limit: 60 requests per minute per IP.

For tools that must run next to your app (selector self-healing, app discovery), use the local packages instead — nothing is sent to ia-qa.com: @ia-qa/pal, @ia-qa/self-healing, @ia-qa/qa-discovery.

Packs

security — https://www.ia-qa.com/mcp/security

prompt_injection_scan · shield_analyze · guardrail_test · toxicity_scan · bias_detect · redact_pii · secret_scan · detect_secrets · security_headers_check · ssl_certificate_check · cors_test · cors_checker · cookie_security_audit · web_security_audit · validate_url · decode_jwt · generate_hmac · hash_text · generate_password · mcp_server_evaluate · mcp_server_health_check · mcp_schema_lint · validate_mcp_response · function_call_validate · validate_agent_trajectory · latency_benchmark · parse_http_headers · http_status_lookup · find_tool · rate_tool

eval — https://www.ia-qa.com/mcp/eval

get_testing_guidelines · run_eval_contract · run_semantic_tests · generate_eval_yaml · generate_ci_workflow · metamorphic_check · needle_haystack_generate · test_skill · hallucination_check · similarity_score · consistency_check · llm_output_validator · llm_format_check · llm_json_schema_check · response_quality_score · compare_responses · analyze_responses · prompt_test_suite · cot_analyzer · conversation_analyze · ab_test_report · embedding_similarity · rag_relevance_rank · rerank_evaluate · bm25_score · build_rag_prompt · count_tokens · token_budget_calculator · context_window_check · list_llm_models · model_info · compare_models · estimate_llm_cost · llm_generate · run_vlm_test_suite · extract_json_from_text · find_tool · rate_tool

data — https://www.ia-qa.com/mcp/data

format_json · json_schema_validate · json_diff · extract_json_path · flatten_json · json_to_yaml · yaml_to_json · xml_to_json · parse_csv · json_to_csv · mock_from_schema · json_schema_generate · openapi_validate · timestamp_convert · cron_parse · validate_email · regex_test · diff_text · text_stats · case_convert · generate_slug · base64_encode · base64_decode · url_encode · url_decode · generate_uuid · hash_text · number_base_convert · color_convert · lorem_ipsum · decode_jwt · env_parse · count_code_lines · lint_commit_message · find_tool · rate_tool

All 152 tools, by category: TOOLS.md.


Generated from the server's own definitions on 2026-11-05. The live list (GET https://www.ia-qa.com/mcp) wins if this page disagrees.

来源:README.md,提交 4196b2a

工具

38

get_testing_guidelines

Query the IA-QA methodology knowledge base. Returns structured testing guidelines, assertion strategies, thresholds, best practices, and relevant MCP tools for a given topic. Call without a topic to list all available topics. Topics: llm-unit-testing, rag-pipeline, prompt-stability, prompt-ab-testing, embedding-quality, eval-framework, semantic-testing, auto-testing, security, api-testing, ci-cd, multimodal, llm-data-security, agent-observability, pro-tips, learning-paths, golden-dataset, selector-drift, qa-recipes, playbooks. Not sure where to start testing an LLM, RAG pipeline or agent? Call without a topic (or with "start-here"): it maps what you are testing to the tools to call and the output field to gate CI on. A plain question such as "how do I test my RAG" also resolves to the right topic.

输入参数topic

find_tool

Search available MCP tools by keyword or category before calling them. Returns matching tool names, descriptions, and optionally their inputSchemas. Call this when you are unsure which tool to use or want to explore the catalogue. Categories: data, encoding, text, llm, qa, rag, dev, security, web.

输入参数query必填categorymax_resultswith_schema

hallucination_check

Lexical hallucination check: verifies an LLM answer's words, numbers and polarity against the provided source/context. Fast, deterministic, no API key needed. Each answer sentence is aligned to its best-matching source sentence, so a number only counts as support when it sits on the SAME statement ("founded in 1998" is not grounded by "sold 1998 units"), and a negation or antonym flip against that sentence returns verdict "contradicted" — the corrupted-fact hallucination that reuses source vocabulary. Limitations: still lexical — it cannot follow a paraphrase, a synonym, or multi-sentence reasoning, so a "well_grounded" verdict means "nothing lexical found", never "verified true". For entailment use run_semantic_tests (NLI/embedding) or a calibrated judge.

输入参数answer必填strictcontext必填

run_eval_contract

Parse a .ia-eval.yaml LLM test suite, call the specified LLM model for each scenario, run all configured scorers, and return a structured JSON report with per-scenario Pass/Fail verdicts and a Markdown summary. Use list_local_tests to discover available test files.

输入参数api_keysoverridescontract_pathvalidate_onlyinline_contract

run_semantic_tests

Semantic assertion primitive: compare actual vs expected text pairs using cosine similarity + ROUGE-L. Two modes: tfidf (default, free, no API key) or embeddings (OpenAI text-embedding-3-small, BYOK, true semantic similarity). Returns per-case PASS/FAIL verdicts and an overall verdict. CI-ready: pipe the JSON verdict field to gate a build.

输入参数modecases必填api_keythresholdsrequire_all

generate_ci_workflow

Generate a ready-to-commit GitHub Actions workflow that gates a build on IA-QA. Two gate types, combinable: "eval_contract" runs a .ia-eval.yaml through ia-qa-com/eval-action@v1 (LLM quality gate, needs a provider API key as a repo secret), and "cli_checks" runs deterministic primitives via npx @ia-qa/cli (secret scan, prompt-injection scan, security headers…) whose exit code fails the build. Deterministic template — no LLM call, no API key, same inputs give the same file. Returns the YAML, the secrets to create, and the remaining steps. Pair with generate_eval_yaml to produce the contract itself.

输入参数crongateprovidertriggerscli_toolsmin_scoreapp_base_urlfail_on_failnode_versioncontract_pathworkflow_nameapp_start_command

needle_haystack_generate

Generate a "needle in a haystack" test: embeds a target fact into a large block of filler text at a specified position. Use this to test LLM context window retrieval accuracy. Returns the full haystack, the question to ask, and metadata. No API key needed.

输入参数needle必填tokenspositionquestion必填

generate_eval_yaml

Generate a complete .ia-eval.yaml evaluation contract from a plain-language description of what your LLM should do. Uses Groq openai/gpt-oss-20b (server-side, no API key needed). Returns ready-to-run YAML for the LLM Test Runner (run_eval_contract). Picks appropriate evaluators (cosine_similarity, contains_check, hallucination_check, etc.) based on the task type.

输入参数task_typedescription必填system_promptscenario_count

metamorphic_check

Reference-free stability primitive: instead of comparing an answer to a ground truth, it checks that an assistant's answer stays INVARIANT when the QUESTION is transformed (typo, casing, paraphrase, reordering, translation). Catches the failure class no reference answer can expose — an assistant that handles one phrasing well and a trivial variant of it badly. You bring the outputs (no model is called), so it is deterministic and free in tfidf mode. Relations: case (θ .95), typo (.90), paraphrase (.80), reorder (.80), translation (.75, embeddings only), specialization (.60, ADVISORY — directional, never gated). Returns PASS / FAIL / INVALID, where INVALID means the BASE answer was a refusal or too short so invariance was never measurable — an assistant that refuses every variant would otherwise score a perfect 1.0. Use run_semantic_tests alongside it: invariance without a correctness floor is a green light for a broken assistant.

输入参数base必填modeapi_keyvariants必填thresholdsrequire_allbaseline_guard

test_skill

Test a SKILL.md in the open Agent Skills format (https://agentskills.io/specification — read by Claude Code, Codex, GitHub Copilot, Cursor, Gemini CLI, OpenCode and others) in two stages. (1) lint: the spec's frontmatter rules checked without a model (name 1-64 chars, lowercase/digits/single hyphens, matches dir_name when given; description 1-1024 chars; compatibility ≤500; metadata string map) — any error returns BLOCK and calls no model; gate on lint.valid, it is deterministic. (2) triggering, measured the way an agent decides: the model sees ONLY the name + description of this skill and of the other installed skills (other_skills, or six built-in neighbours) and answers which one it would load, at temperature 0. trigger_accuracy = share of requests routed correctly (should load / should not); verdict PASS ≥80, FIX ≥50, else BLOCK. Pass your own scenarios [{prompt, should_trigger}] for a reproducible gate; without them requests are generated (half should-load, half near misses) and the result is a signal, flagged by scenarios_source. step_adherence is keyword overlap on the skill body's run and never enters the verdict. A request the model never answered readably (rate limit, empty output) is not counted as a miss: the run is INCONCLUSIVE instead. Uses the server's default Groq model (server key, rate-limited). Pass api_key + model to use your own provider; the SKILL.md and scenarios are sent to ia-qa.com and to that provider.

输入参数modelapi_keydir_nameskill_md必填lint_onlyscenariosother_skillsscenario_count

llm_output_validator

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.

输入参数output必填max_lengthmin_lengthcheck_safetymust_includeexpected_formatmust_not_includecheck_json_schemaexpected_language

compare_responses

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.

输入参数taskmodelapi_keylabel_alabel_breferencecheck_jsonresponse_a必填response_b必填

analyze_responses

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. No LLM, no key, runs locally. The reference mode is gate-able in CI; the consensus/outlier mode is a signal (no reference to fail against). You bring the outputs (2+). For a 2-way head-to-head with structural JSON diff use compare_responses instead.

输入参数referenceresponses必填

prompt_test_suite

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.

输入参数max_tokenstemperatureuser_prompt必填check_safetymust_includesystem_prompt必填expected_formatmust_not_includeexpected_behavioradversarial_prompts

llm_format_check

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.

输入参数output必填regex_patternexpected_format必填

consistency_check

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.

输入参数responses必填check_facts

llm_json_schema_check

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.

输入参数output必填schema必填

response_quality_score

Score an LLM response against the criteria you pass: coverage of expected_keywords and compliance with max_length. Returns a 0-100 score over the criteria actually measured — or total_score null with the reason when none is given, because relevance and correctness cannot be read off word overlap (a correct one-word answer shares no words with its question). For meaning against a reference answer, use run_semantic_tests. Also returns unscored signals: question-term overlap, average sentence length, markdown.

输入参数question必填response必填max_lengthexpected_keywords

conversation_analyze

Analyze a multi-turn conversation for context retention, topic drift, instruction following, and repetition. Accepts messages array [{role, content}]. Essential for chatbot QA.

输入参数messages必填

cot_analyzer

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.

输入参数reasoning必填expected_conclusion

ab_test_report

Generate an A/B test report comparing two prompts or model configurations. Accepts arrays of scores and returns mean, median, std deviation, improvement percentage, and a Welch t-test at 95 %: `winner` names a variant only when the difference is significant — otherwise "no_significant_difference", or "insufficient_samples" under 2 scores per variant.

输入参数variant_a必填variant_b必填

similarity_score

Compute text similarity between reference and hypothesis using multiple metrics: Cosine (BoW, TF-IDF), Jaccard, ROUGE-1, ROUGE-2, ROUGE-L, and BLEU. No API key needed. Ideal for LLM eval (expected vs actual), RAG quality checks, and NLG benchmarking. Supports batch mode.

输入参数batchmetricsreferencethresholdhypothesis

run_vlm_test_suite

Run a test suite against a Vision-Language Model (VLM) — send an image (URL or base64) + N test cases (each with a question + assertion) to GPT-4o, Claude 3.5, or Gemini. Returns per-case PASS/FAIL verdicts, a pass rate, an overall PASS/WARNING/FAIL verdict (customizable threshold), and latency stats. Assertion types: contains, not_contains, json_format, min_length, max_length, semantic_contains (TF-IDF cosine similarity ≥ 0.4). BYOK: requires your own API key for the target provider.

输入参数model必填api_key必填image_urlthresholdtest_cases必填image_base64system_promptimage_mime_type

embedding_similarity

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.

输入参数batchtext_atext_bmethods

rag_relevance_rank

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.

输入参数query必填top_kchunks必填

bm25_score

Compute BM25 relevance score between a query and one or more documents. BM25 is the industry-standard keyword-based ranking algorithm used in Elasticsearch, OpenSearch, and Weaviate hybrid search. Returns ranked results with normalized scores.

输入参数bk1query必填top_kdocuments必填

build_rag_prompt

Assemble a complete RAG (Retrieval-Augmented Generation) prompt from retrieved context chunks and a user query. Handles token budgeting, citation numbering, system instruction injection, and source attribution.

输入参数query必填chunks必填languagecite_sourcesmax_context_tokenssystem_instruction

rerank_evaluate

Evaluate RAG retrieval quality: rank passages against a query and compute Precision@k / Recall@k plus a PASS/FAIL CI verdict from ground-truth relevance labels. Three modes, all keyless except the last. (1) BYO scores — give each passage the `score` your own reranker produced (Cohere, Jina, a self-hosted NIM, a cross-encoder): deterministic, offline, and it evaluates YOUR reranker rather than someone else's. This is the mode to gate CI on. (2) Default, no scores and no key — ranks with local BM25, a lexical keyword baseline: it answers "does a keyword floor already surface my relevant passages?", never "is my neural reranker good". (3) Live NVIDIA reranker — supply `api_key` for an NVIDIA account that still has reranking entitlement; NVIDIA retired its hosted reranking endpoints on 2026-05-18, so this one is for accounts that were grandfathered in.

输入参数query必填top_kapi_keypassages必填threshold

count_tokens

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.

输入参数input必填

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

输入参数input必填

estimate_llm_cost

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.

输入参数model必填input_tokens必填output_tokens

token_budget_calculator

Plan token allocation across system prompt, user input, context/RAG chunks, and expected output. Warns if budget exceeds model context window. Supports 25+ models.

输入参数model必填contextuser_inputsystem_promptcontext_tokensuser_input_tokenssystem_prompt_tokensexpected_output_tokens

context_window_check

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.

输入参数model必填messages必填max_output_tokens

model_info

Get detailed specs for an AI model: context window, pricing per 1K tokens, knowledge cutoff, provider, multimodal support, reasoning capabilities, and feature list. Covers 30+ models from OpenAI, Anthropic, Google, DeepSeek, Meta, Mistral, Cohere, xAI.

输入参数model必填

compare_models

Compare 2-5 AI models side by side: context window, pricing, multimodal, reasoning capabilities, and provider. Returns a comparison table with a recommendation based on your use case.

输入参数models必填use_case

list_llm_models

List all LLM models available on ia-qa.com with their provider, API endpoint, and capabilities. Filter by provider name (e.g. "Groq", "HuggingFace", "OpenAI") or return the full catalog. Use this to discover which models are available before calling an LLM API, or to compare providers.

输入参数provider

llm_generate

Generate text with an open-source model hosted on Groq, on the server's key — no API key needed. Models: openai/gpt-oss-20b, openai/gpt-oss-120b (default "openai/gpt-oss-20b"). HuggingFace models are not served on the server key. A reasoning model that spends max_tokens thinking is retried once at 4096. Rate-limited to prevent abuse.

输入参数modelprompt必填systemmax_tokenstemperature

rate_tool

Give honest usage feedback on an IA-QA MCP tool. Provide a score (1-5) and a comment. Rate low (1-2) if the tool was wrong, irrelevant, or a poor fit; rate high (4-5) only if it genuinely solved your need. Ratings are read by the IA-QA maintainers and are not published, one vote per agent and tool a month. Comments are screened before storing: one carrying a credential is not stored and personal data is replaced by placeholders — describe what happened rather than what a model should do. Skip rating routine successes — we want signal, not praise. Example: rate_tool({ tool_name: "format_json", score: 2, comment: "Tried to pretty-print a JSON5 file, it rejected trailing commas — not usable for my case." })

输入参数score必填commenttool_name必填

版本历史

1
  1. v1.0.1最新Oct 29, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分