Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate recorded, valid to 2027-01-08
Authorization not required
Changed the definition of "bias_detect", "cookie_security_audit", "cors_checker" and 27 more
{"examples":[{"responses":["He is great.","She is great."]}],"properties":{"responses":{"description":"Array ⟨51 unchanged words⟩
{"examples":[{"url":"https://www.ia-qa.com"}],"properties":{"url":{"description":"Full ⟨12 unchanged words⟩
{"examples":[{"url":"https://www.ia-qa.com/mcp"}],"properties":{"method":{"description":"HTTP ⟨33 unchanged words⟩
{"examples":[{"origin":"https://other.example","url":"https://www.ia-qa.com/mcp"}],"properties":{"origin":{"description":"Custom ⟨26 unchanged words⟩
{"examples":[{"token":"eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjQxMDI0NDQ4MDB9.sig"}],"properties":{"token":{"description":"The ⟨11 unchanged words⟩
⟨12 unchanged words⟩ OpenAI/Anthropic API keys, Stripe secrets, JWTs, Slack/Teams/Discord webhook URLs, session cookies, database connection strings, and generic passwords. Returns findings ⟨6 unchanged words⟩
{"examples":[{"input":"redis://cache:6379"}],"properties":{"filename":{"description":"Optional ⟨26 unchanged words⟩
{"examples":[{"query":"leaked api key"}],"properties":{"category":{"description":"Optional: ⟨92 unchanged words⟩
{"examples":[{"allowed_functions":[{"name":"get_weather","required_args":["city"]}],"function_call":{"arguments":{"city":"Paris"},"name":"get_weather"}}],"properties":{"allowed_functions":{"description":"List ⟨94 unchanged words⟩
{"examples":[{"algorithm":"sha256","message":"msg","secret":"k"}],"properties":{"algorithm":{"description":"Hash ⟨38 unchanged words⟩
{"examples":[{"length":24,"numbers":true,"symbols":true,"uppercase":true}],"properties":{"length":{"description":"Password ⟨35 unchanged words⟩
{"examples":[{"response":"Your refund is approved.","rules":[{"type":"must_include","value":"refund"},"no_pii"]}],"properties":{"response":{"description":"The ⟨63 unchanged words⟩
{"examples":[{"algorithm":"md5","input":"héllo wörld 🌍"}],"properties":{"algorithm":{"description":"Hash ⟨19 unchanged words⟩
{"examples":[{"code":418}],"properties":{"code":{"description":"HTTP ⟨13 unchanged words⟩
{"examples":[{"endpoints":"https://www.ia-qa.com/mcp/ping","iterations":3}],"properties":{"endpoints":{"description":"Endpoints ⟨92 unchanged words⟩
Lintanone MCP tool definitionforwithbestthepracticessame rules as mcp_server_health_check:namingerrorsconventionsbreak the MCP spec (FAIL), documentation_issues are what its strict mode refuses — a parameter without descriptionquality,orschematypecompleteness(FIX,requiredneverfieldsanconsistency,A)
{"examples":[{"url":"https://www.ia-qa.com/mcp"}],"properties":{"test_tool_name":{"description":"Tool ⟨47 unchanged words⟩
{"examples":[{"manifest":"{\"tools\":[{\"name\":\"get_weather\",\"description\":\"Return the current weather for a city. Use it when the user asks about the weather now.\",\"inputSchema\":{\"type\":\"object\",\"required\":[\"city\"],\"properties\":{\"city\":{\"type\":\"string\",\"description\":\"City name, e.g. Paris\"}}}}]}"}],"properties":{"manifest":{"description":"JSON ⟨48 unchanged words⟩
{"examples":[{"headers":"Content-Type: text/html\nSet-Cookie: a=1\nSet-Cookie: b=2"}],"properties":{"analyze_security":{"description":"Audit ⟨25 unchanged words⟩
Scan user input or prompts forcommonprompt injection patterns. Pattern-based: it recognises known phrasings andstructural markersstructures, not intent —a paraphrase it has noanpatternuncoveredfor,paraphrase oralanguageit does not cover,reads clean, soacleanresultis not proof of safety.The instruction-overrideInstructionphrasingoverridesisare covered inEnglish,11French,languages
{"examples":[{"comment":"Formatted a 2 MB payload correctly.","score":4,"tool_name":"format_json"}],"properties":{"comment":{"description":"Strongly ⟨102 unchanged words⟩
{"examples":[{"input":"order #12345678"}],"properties":{"input":{"description":"Text ⟨42 unchanged words⟩
⟨16 unchanged words⟩ GitLab, Slack, Twilio, SendGrid, HuggingFace), Slack / Teams / Discord webhook URLs, private keys(RSA/EC/PGP), JWTs, database connection strings, Bearertokens,and Basic authheaders.headers,Returnsandahard-codedlistvaluesofassignedfindingstowithpassword/secret/tokentype,namesseverity,(alinevaluenumber,
{"examples":[{"url":"https://www.ia-qa.com"}],"properties":{"headers":{"description":"Optional, ⟨78 unchanged words⟩
Run a comprehensive AI guardrail analysis on an LLM response. Orchestrates 7 deterministicOne-call safetychecksgateplusfor anoptional LLM-powered deep analysis inLLMparallelresponse:hallucination detectiongrounding (groundingwithscoresource), prompt injectionscanonBOTHthe responseandAND theoriginalprompt (reported separately aschecks.injection / checks.injection_prompt, scored once at the worse of the two
{"examples":[{"host":"www.ia-qa.com"}],"properties":{"host":{"description":"Hostname ⟨25 unchanged words⟩
{"examples":[{"text":"Ce contrat est conclu avec un partenaire."}],"properties":{"categories":{"description":"Categories ⟨27 unchanged words⟩
Run declarative assertions on an agent trace (OpenAItool-calltoolmessagescalls, Anthropictool_use/tool_result blockstool_use, LangChain run trees,or plain textReAct logs).No LLM call —Deterministic,deterministic.noAssertionLLM.typesAssertions: order (tool A before B), must_call, must_not_call,max_calls,max/minmin_callscalls, no_error, recovery (agent completesa successful step afteritsthe last error).
{"examples":[{"forbidden_keys":"password","response":"{\"user\":{\"name\":\"x\"}}"}],"properties":{"actual_latency":{"description":"Actual ⟨122 unchanged words⟩
{"examples":[{"input":"https://www.ia-qa.com/mcp?x=1#y"}],"properties":{"input":{"description":"URL ⟨10 unchanged words⟩
{"examples":[{"model":"none","url":"https://www.ia-qa.com"}],"properties":{"api_key":{"description":"Your ⟨48 unchanged words⟩
Unknown → Live
First tool surface recorded: 30 tools (server version 1.0.0)
https://www.ia-qa.com/mcp/security (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"examples":[{"tool_definition":{"description":"Return the current weather for a city. Use it when the user asks about the weather now.","inputSchema":{"properties":{"city":{"description":"City name, e.g. Paris","type":"string"}},"required":["city"],"type":"object"},"name":"get_weather"}}],"properties":{"tool_definition":{"additionalProperties":true," ⟨15 unchanged words⟩
{"examples":[{"input":"以前の注文をキャンセルしてください。"}],"properties":{"input":{"description":"The ⟨27 unchanged words⟩
{"examples":[{"input":"redis://cache:6379"}],"properties":{"input":{"description":"Text to scan — orcodeantoarrayscanof texts / {id, text} forsecretsa batch (one result each, worst gate on top).","type":["string","array"]},"types":{"description":"Comma-separated familiesto scan(default:all): aws, gcp, azure, openai, anthropic, huggingface, github, gitlab, stripe, slack, teams, discord, cookie, twilio, sendgrid, jwt, private_key, connection_string, bearer, basic_auth,generic. Individual pattern names (e.g. \"aws_access_key\"generic,\"github_fine\") areoralsopatternaccepted.names. An unknown value is rejectedwith an error — a scoped scan, neversilentlyareturnssilent \"clean\".","type":"string"} ⟨4 unchanged words⟩
{"propertiesexamples":[{"model":{"descriptionnone","prompt":"LLM model for AI-poweredWhendeepwillanalysismy(default:order\arrive?"openai/gpt-oss-20b\,").response":"YourSetorderto#1234\will arrive tomorrow."none\}],"toproperties":{"model":{"description":"LLMskipreviewLLMmodel:check.openai/gpt-oss-20b,Supportsopenai/gpt-oss-120bany(defaultmodelopenai/gpt-oss-20b),fromorlist_llm_models.\"none\".","type":"string"},"prompt":{"description":"OptionalThe originalprompt. Used for qualitypromptscoring—ANDalso scanned forprompt injection in its own right (checks.injection_prompt) —injection; pass it whenever you haveit, it is where the attack actually lands.it.","type":"string"},"response":{"description":"TheLLM-generatedLLM response toanalyzecheck.","type":"string"},"rules":{"description":"Optional guardrail rules array (sameSame format asguardrail_test tool)guardrail_test.","items":{"properties":{"label": ⟨11 unchanged words⟩ :"array"},"source":{"description":"Optional reference/sourceReference text forhallucinationthe groundingcheckcheck.","type":"string"}},"required": ⟨3 unchanged words⟩
{"propertiesexamples":[{"assertions":[{"descriptiontool":"List of assertions to validate against the trace.search","type":"must_call"}],"trace":[{"role":"assistant","tool_calls":[{"function":{"arguments":"{}","name":"search"}}]}]}],"properties":{"assertions":{"items":{"properties":{"after":{"description":"[order]Tool that must be calledCalled after.","type":"string"},"before":{"description":"[order]Tool that must be calledCalled first.","type":"string"},"id":{"description":"Optional assertion identifier.","type":"string"},"max":{"description":"[max_calls]Maximum number of allowed calls.","type":"number"},"min":{"description":"[min_calls]Minimum number of required calls.","type":"number"},"sensitivity":{"description":"[no_injection] Default low=(critical patterns only(override, jailbreak, fake role delimiters). Higher catches;morehigherandalso fires on ordinarytext (\"act as\", {{templates}}) — pattern matching, not a classifier.text.","enum":["low","medium","high"],"type":"string"},"tool":{"description":"Tool name to check (forFor must_call, must_not_call, max_calls,min_calls).min_calls.","type":"string"},"type":{"description":"Assertion type.no_injectionruns prompt_injection_scan on everyscans toolresultresults (indirect injection: text a third party wrote that the agent then reads); no_piiruns redact_pii onscans the finalanswer (a leak to the user).answer. Both report types and counts, neverthe matchedvalues.","enum":["order","must_call", ⟨9 unchanged words⟩ ,"types":{"description":"[no_pii] Comma-separatedPII types:(email, phone, ssn, credit_card, ip_address,jwt).jwt. Default:all.","type":"string"},"where":{"description":"[no_injection, no_pii]What to scan. Defaults: no_injection → tool_results, no_pii → answer (PII in a toolOverrideresultwhat isoften legitimate — an order carries the customer email).scanned.","enum":["tool_results","answer"], ⟨9 unchanged words⟩ :"array"},"format":{"description":"Trace format. auto (default) detectsDefaultautomatically.auto.","enum":["auto","openai","langchain"],"type":"string"},"trace":{"description":"Agent executionThe traceas: JSON (OpenAImessages array,LangChainrun tree) orplain text loga(Thought/Action/Observationformat).text log.","oneOf":[{"type":"string"} ⟨12 unchanged words⟩