@guardbee/mcp-security-proxy
OfficialProvides a KVKK/GDPR-compliant database gateway with a MySQL adapter, supporting PII masking, RBAC, rate limiting, and audit logging for LLM-to-database access.
Scans npm dependencies for known CVEs using OSV, helping identify vulnerable packages in npm projects.
Provides a KVKK/GDPR-compliant database gateway with a Prisma adapter, supporting PII masking, RBAC, rate limiting, and audit logging for LLM-to-database access.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@guardbee/mcp-security-proxyguard this MCP session against leaked secrets and PII"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
guardbee-mcp
π¬π§ English | πΉπ· TΓΌrkΓ§e | π¨π³ δΈζ | π―π΅ ζ₯ζ¬θͺ | π°π· νκ΅μ΄ | π§π· PortuguΓͺs | πͺπΈ EspaΓ±ol | π©πͺ Deutsch
guardbee.ai β AI Security Copilot for websites.
GuardBee's family of MCP (Model Context Protocol) servers β a single monorepo, independent npm packages.
Packages
Package | npm | Description |
| Scans a codebase for insecure LLM/AI integration patterns (client-exposed keys, unsafe output handling, excessive agency, PIIβprompt, prompt injection) | |
| KVKK/GDPR/CCPA compliance checks | |
| CVE scanning for npm/pip/cargo dependencies (OSV) | |
| DNS record enumeration, misconfiguration and dangling-subdomain detection | |
| KVKK/GDPR-compliant gateway between an LLM and a database (PII masking, RBAC, rate limiting, queryable audit log; Prisma/Postgres/MySQL/SQLite/MongoDB adapters; optional insert/update/delete support) | |
| Scans other MCP servers' tool definitions for insecure patterns (excessive agency, shell/eval/SQL/SSRF sinks, loose schemas, hardcoded secrets, wildcard CORS) | |
| Scans RAG content/scraped pages for indirect prompt injection (instruction override, spoofed role/chat-template tokens, hidden text, "Dear AI" direct address, data-exfiltration instructions) | |
| Actively red-teams a live LLM endpoint/chatbot with canary-based jailbreak/extraction/obfuscation probes (OpenAI/Anthropic/webhook targets) | |
| Scans ML model files (PyTorch, pickle, safetensors, Keras/H5, ONNX) for supply-chain risks β dangerous pickle deserialization globals, disguised/malformed safetensors headers, Keras Lambda-layer RCE, ONNX external-data path traversal | |
| Probes vector-database endpoints (Weaviate, Qdrant, Chroma, Elasticsearch/OpenSearch, Redis, Postgres/pgvector) for unauthenticated exposure of embeddings and RAG data | |
| Catches leaked credentials and PII (API keys, TC Kimlik No, credit cards, IBANs) in outbound LLM prompts β as MCP scan tools, and as a live reverse proxy in front of a real LLM API | |
| Finds PII and credentials inside PDFs, screenshots and scanned documents β PDF text layer plus optional OCR (Turkish and English) β before they reach an LLM | |
| Builds a reachability graph across multi-agent orchestration configs (LangGraph, CrewAI, AutoGen/ag2) to find transitive excessive agency β an agent that reaches a dangerous tool only through delegation to another agent | |
| Scans MCP server tool definitions for tool poisoning (hidden instructions embedded in a tool's description) and confused-deputy mismatches (a read-only-sounding tool whose handler has a shell/eval/file-write/env-dump sink) | |
| Connects live to another MCP server (stdio/HTTP), baselines its tools/list response, and detects an "MCP rug pull" β a tool's description/schema/annotations silently changing after it was already approved | |
| Scans agent code for memory poisoning β untrusted input written into persistent, cross-session memory (MemGPT-style archival/core memory, or a long-term vector store) that later gets recalled and trusted as context | |
| Scans an MCP server's own authorization code for OAuth 2.1 anti-patterns named in the MCP spec's Security Considerations β token passthrough, missing audience validation, OAuth/OIDC discovery SSRF, missing PKCE, loose redirect_uri validation, hardcoded client secrets | |
| Scans MCP server code for elicitation anti-patterns in the 2026-07-28 spec β form mode asking for secrets or payment data, URL mode pointed straight at a third-party authorize endpoint, credentials or PII embedded in the elicitation URL | |
| Audits an MCP tool catalog for toxic flows (Simon Willison's lethal trifecta) β untrusted content + sensitive/private data + exfiltration or destruction on the same server; AβF grade, KVKK-aware heuristics, OWASP MCP10:2025 | |
| Audits MCP server source for OWASP MCP08:2025 (Lack of Audit and Telemetry) β missing tool-call trails, raw args/results in logs, hard-disabled audit, silent catches, audit events without correlation ids | |
| Audits agent/MCP source for OWASP MCP10:2025 context oversharing β full conversation dumps, unscoped memory tools, shared global session stores, system-prompt leaks via tools, cross-session tool-result bleed, unfiltered vector queries (complements toxic-flowβs catalog trifecta) | |
| Unified OWASP MCP Top 10 meta-scanner β path orchestration of GuardBee auditors + live/catalog | |
| Audits MCP client configs (Cursor/Claude/Windsurf/VS Code) and agent | |
| MCP bridge to Agent Threat Rules (ATR) β runtime detection for prompt injection, tool poisoning, and MCP attacks, with GuardBee follow-up scanner hints | |
| Scans an agent's Agent2Agent (A2A) protocol implementation (TypeScript and Python) for anti-patterns found in the reference SDKs' own source β unauthenticated push-notification webhook fetches (SSRF), Agent Cards with no authentication requirement, credentials embedded in publicly-served Agent Card metadata | |
| Checks every dependency declared in a project's own manifest (package.json, requirements.txt, pyproject.toml) against the real npm/PyPI registry β flags names that don't exist at all (likely LLM-hallucinated, i.e. slopsquatting) and names that exist but were only very recently published | |
| Scans LLM/agent application code for Unbounded Consumption ("denial of wallet", OWASP LLM Top 10 2026 #6) β missing output token limits, missing timeouts on hand-rolled LLM HTTP calls, unbounded agent tool-calling/retry loops, explicitly disabled framework safety limits (LangChain max_iterations, openai-agents max_turns), and MCP tool handlers with no visible rate limiting | |
| Scans files for leaked secrets and API keys | |
| MCP security gateway: several MCP servers behind one policy, with toxic-flow (lethal trifecta) blocking, approvals, PII masking and a hash-chained audit log | |
| Bundle of secret-scanner + dependency-auditor + ssl-inspector + dns-intelligence | |
| TLS certificate/cipher/protocol inspection | |
| Triggers GuardBee scans, queries findings, AI-assisted remediation guidance | |
| (internal) Shared detector library β PII/secret masking, prompt injection rules, tool classification; not an MCP server on its own | |
| (internal) Shared usage-telemetry client β not an MCP server on its own |
Related MCP server: MCP Agent Firewall
Recent Changes (2026-10-06, cont'd 2)
AI-security MCP gap pass follow-up: shipped @guardbee/mcp-owasp-scan (unified OWASP MCP Top 10 path + live tools/list, AβF, SARIF), @guardbee/mcp-context-oversharing-auditor (MCP10 context oversharing distinct from toxic-flow), Python MCP05/OAuth patterns on mcp-server-auditor / oauth-auditor, and a reusable .github/actions/mcp-security-scan (+ workflow) that uploads SARIF for toxic-flow / audit-gap / context-oversharing / owasp-scan.
Recent Changes (2026-10-06, cont'd)
Gap pass against OWASP MCP Top 10 + github.com/topics/mcp-security: MCP05 and MCP08 had no dedicated coverage tags/packages. Shipped @guardbee/mcp-audit-gap-auditor for MCP08 and tagged mcp-server-auditor's shell/eval/SQL sinks as MCP05:2025. MCP09 Shadow MCP host discovery landed in mcp-config-auditor (discover CLI / discover_shadow_mcp tool): walks Cursor/Claude/Windsurf/VS Code well-known paths and flags servers missing from an organization allowlist.
Recent Changes (2026-10-06)
Bridged the industry detection standard into the monorepo: @guardbee/mcp-threat-rules wraps MIT-licensed Agent Threat Rules (ATR) as a GuardBee MCP server. ATR scores runtime agent/MCP events (prompt injection, tool poisoning, exfiltration); each match includes a follow-up hint to the matching GuardBee static auditor. Also tagged GuardBee/guardbee-mcp on GitHub with mcp-security / ai-security so the suite appears on github.com/topics/mcp-security.
Recent Changes (2026-09-30)
Added a new AI-security MCP after a gap pass against the current MCP/AI-security landscape (OWASP MCP Top 10, Simon Willison's lethal trifecta, competitor scanners that score individual tools but not combinations): @guardbee/mcp-toxic-flow-auditor. Every other GuardBee MCP auditor looks at one tool, one file, or one pattern at a time; this one asks whether the catalog as a whole can chain untrusted content + sensitive data + an exfil/destruct path β the failure mode where a prompt injection in a fetched page can reach vault/DB tools and then send_* / delete_*. Grades AβF, reports dangerous pairs when the full trifecta is absent, includes KVKK (tc_kimlik, mΓΌΕteri) heuristics, CLI (audit / scan) + MCP tools + SARIF. Mapped to OWASP MCP10:2025.
Recent Changes (2026-09-27)
Completed and shipped work found sitting uncommitted in ai-code-scanner from an earlier session: custom rule packs (0.2.2 β 0.3.0, minor β new capability, no breaking change). Built-in patterns cover common AI/LLM integration mistakes, but field names and internal conventions (e.g. which prop carries KVKK-regulated data) are project-specific β rather than forking the package per customer, a project can now drop JSON rule files into .guardbee/rules/ (configurable via a new rules-dir key in guardbee.yml) that get merged with the built-ins at scan time, for both the CLI and the MCP server (list_patterns marks loaded custom rules (custom)). A rule id colliding with a built-in or another custom rule is rejected β reported on stderr, scan keeps running rather than crashing. 8 new tests (36 total): valid single-rule and multi-rule files, a rule that actually matches, and four rejection paths (id collision, missing field, invalid regex, invalid JSON) plus a missing-rules-dir case. Verified beyond the unit tests with a real end-to-end run: a genuine .guardbee/rules/kvkk.json file scanned against a real target file via the actual CLI binary, confirming the custom rule fires alongside the built-in patterns in the same run. tsc --noEmit and npm run build both clean.
Recent Changes (2026-09-26, cont'd 4)
Follow-up to the dogfooding pass below: went further on secret-scanner's doc/placeholder noise, since the first suppression-comment fix alone only cut findings 28% (1,623 β 1,162) against IBM/mcp-context-forge β the fork's own report had flagged this as still noisy, and sampling the actual remaining findings turned up three more concrete, fixable patterns rather than vague "noise":
bearer_tokenrequired no minimum length at all, so test fixtures like"Bearer alpha"and"Bearer test-token"(from that repo's own Rust test suite) matched just as readily as a real OAuth token β and turned out to be nearly the entire problem: 1,008 of 1,149 remaining findings, from a handful of literal test strings reused across hundreds of call sites. Real bearer tokens (JWTs, OAuth2 opaque tokens) are essentially never under 20 characters; added that floor to the pattern.Added a value-shape placeholder filter, applied across all patterns except connection strings (which have their own allowlist and can legitimately contain "example" in a hostname, e.g.
example.com): an 8+ run of one repeated character, an 8+ ascending sequential run (abcdefgh,01234567β the exact shape this package's own test fixtures used as filler, which needed rewriting to realistic pseudo-random values as a result), or a dictionary placeholder word embedded in the value (EXAMPLE,PLACEHOLDER,CHANGEME, etc. β this is exactly why AWS's own officially-published example key,AKIAIOSFODNN7EXAMPLE, is a famous universal false positive across every secret scanner; it's now correctly recognized here too).Broadened the existing
<UPPER_CASE>bracket-placeholder allowlist (already present in the connection-string and generic-secret patterns) to any bracketed text, since real docs write descriptive placeholders like<admin login password>, not just<UPPER_CASE>tokens.Split Stripe's secret/restricted key patterns into live (critical, unchanged) and test-mode (new, low severity) β Stripe's own documentation states test-mode keys are safe to embed in code samples, so treating every
sk_test_...example in a docs-heavy repo as critical was itself a source of false alarm, not a real one.
Net effect on the same target repo: 1,623 β 173 findings (89%). 9 new/updated tests (33 total), covering both the new suppressions and explicit "must still detect a realistic-looking secret" cases so the fix can't regress into swallowing real positives. Verified against the real target repo, plus a monorepo-wide smoke test (21 findings, all pre-existing own-test-fixture matches). secret-scanner 0.2.3 β 0.2.4.
Recent Changes (2026-09-26, cont'd 3)
Dogfooding pass: ran the whole scanner family against 5 real, popular open-source MCP projects (modelcontextprotocol/servers, IBM/mcp-context-forge, cisco-ai-defense/mcp-scanner, semgrep/mcp, invariantlabs-ai/mcp-injection-experiments) to validate against code we don't control. No real vulnerabilities turned up β every medium+ finding was a false positive β but the exercise found two real bugs in our own patterns, both fixed here with regression tests:
mcp-server-auditor'ssql_injection_via_tool_input(0.1.2 β 0.1.3) matched JS's.delete(/.select(/.update(/.insert(method-call syntax as if it were SQL DML, case-insensitively βparams.delete(prefix + "tags")next to an unrelated${params.toString()}template literal was enough to trip it (IBM/mcp-context-forge'sadmin_ui/search.js, a plain browserURLSearchParamshelper, zero SQL anywhere nearby). Tightened to require a real SQL clause keyword (FROM/INTO/SET/WHERE/VALUES) between the DML keyword and the interpolation, and added a negative lookbehind so a keyword preceded by.(a method call) never matches. Verified isolated before/after against both the real false positive and all existing positive fixtures; re-scanned the target repo (0 findings, was 1) and the whole monorepo (0 false positives across 247 files).secret-scanner's scanner had no suppression-comment support at all, so a mature codebase that already annotates known-safe matches (# pragma: allowlist secret,gitleaks:allow,nosec, etc. β 464 files' worth inIBM/mcp-context-forgealone) got flagged anyway. Added recognition of the common conventions (detect-secrets, gitleaks, trufflehog, plus aguardbee:allow/guardbee-ignorepair) checked against the same line as the match. Re-scanning the target repo dropped findings from 1,623 to 1,162 (28%) from this alone; still noisy from unrelated doc/placeholder content, which is a separate, larger fix not attempted here. 4 new tests (3 positive suppression cases + 1 negative β an annotation on an unrelated nearby line must not suppress a real secret).secret-scanner0.2.2 β 0.2.3.
Also surfaced, not yet acted on: the whole family is JS/TS-pattern-oriented, so 3 of the 5 target repos (all-Python, including IBM/mcp-context-forge's actual OAuth/gateway logic β exactly what oauth-auditor targets) got no meaningful pattern coverage.
Recent Changes (2026-09-26, cont'd 2)
Added a 21st package, the last of three follow-on additions from a research pass on the current MCP/AI-security landscape: @guardbee/mcp-oauth-auditor β scans an MCP server's own authorization code for the exact anti-patterns the MCP specification's Security Considerations section names as the central authorization risks. Token passthrough: a client's token forwarded unchanged to a downstream API instead of being exchanged/re-scoped β the token was audienced for this server, not whatever it gets forwarded to. Missing audience validation: a jwt.verify() call that checks a token's signature but never its aud claim, so a token minted for a completely different resource server verifies successfully here too β the same confused-deputy substitution from the other direction. Three adjacent patterns round it out: an OAuth/OIDC discovery URL built from client-supplied input (the shape behind a real disclosed CVE), redirect_uri validated with startsWith/includes instead of exact match (open-redirect bypass), and a hardcoded client_secret. Two of the six checks (audience, PKCE) look for an absence near a call site rather than a fixed regex, extracting the full call/URL construction first. 18 tests; found and fixed a real regex bug during development (a trailing \b after a ] character can never match, since ] isn't a word character β silently missed the bracket-notation form of header access, req.headers['authorization']). End-to-end verified against a fixture with all 6 anti-patterns deliberately planted (caught all 6) and the entire monorepo (401 files β zero findings in real code; the only non-test matches were the scanner's own pattern-definition source textually containing the string jwt.verify( inside a regex literal, not actual vulnerable usage). New package, so no changeset added.
Recent Changes (2026-09-26, cont'd)
Added a 20th package: @guardbee/mcp-memory-poisoning-scanner β targets a gap prompt-injection-scanner doesn't cover: that package catches an injection payload sitting in content the model reads once (a document, a scraped page); this one catches the code pattern that lets a payload become part of what the model treats as its own long-term knowledge β the same gap between reflected and stored XSS, applied to an agent's memory. Deliberately scoped narrow: ordinary conversation-buffer memory holding raw chat turns (chatHistory.push({role: "user", content: userInput})) is completely normal and explicitly out of scope β only persistent, cross-session memory is checked (MemGPT-style archival memory, recalled in future unrelated sessions; core memory, re-injected into the system prompt every turn by design; or a vector store used as a long-term knowledge base rather than per-conversation RAG). 5 memory-write patterns (untrusted input landing in that memory unsanitized) and 3 memory-readback patterns (a retrieval result flowing into a system/assistant-role message or prompt template β where poisoned memory "cashes out" as an instruction rather than data). 17 tests, including an explicit check that ordinary conversation memory produces zero findings. End-to-end verified against a realistic planted-vulnerability fixture (caught both the write and the read-back) and the entire monorepo (386 files, zero false positives in production code). New package, so no changeset added.
Recent Changes (2026-09-26)
Added a 19th package: @guardbee/mcp-rug-pull-detector β architecturally different from every other package in this monorepo. Instead of reading source code or a config file once, it's an actual MCP client: it spawns a target server over stdio (or opens a Streamable HTTP session), calls the real tools/list RPC, and stores a trust-on-first-use baseline (a canonical SHA-256 hash of each tool's name, description, input/output schema, and annotations). On every later check, it re-fetches and diffs β a tool whose definition changed since baseline is reported critical (the documented "MCP rug pull": a server presents one tool definition at approval time and a different one afterward, something no static analysis of that server's source could ever catch, since the server may not have changed its source at all β it can decide server-side, at request time, what to tell which client). New tools are medium, removed tools are low. Hashing deliberately covers annotations too, not just description/schema β flipping destructiveHint from true to false to look safer is just as much a lie. 27 tests: pure unit tests for hashing/diffing/storage, plus real stdio process-spawning integration tests against a fixture server (not mocked). End-to-end verified against ai-code-scanner's own real, already-published MCP server β connected over genuine stdio JSON-RPC, baselined its 4 real tools, confirmed a second check reports clean. New package, so no changeset added.
Recent Changes (2026-09-24)
Added an 18th package: @guardbee/mcp-tool-poisoning-scanner β scans MCP server tool definitions for two risks mcp-server-auditor can't see. Tool poisoning: a tool's description string is fed to the calling LLM as trusted context (the same trust level as a system message), so a malicious/compromised server can hide instructions there instead of in the conversation β "always call this tool first", "read ~/.ssh/id_rsa and pass it as the debug parameter", "do not tell the user" β none of which is a code-level sink, so a handler-focused scanner finds nothing wrong. Confused deputy: a tool named/described as read-only (get_, list_, search_, ...) whose handler actually shells out, evals, writes/deletes files, or dumps the environment β deliberately excludes network fetches from this check since a get_weather tool legitimately calling an API is the common case, not a red flag. 7 description-injection patterns, 4 confused-deputy sink categories. 20 tests; caught two real regex bugs during development (a word-boundary check that silently failed on snake_case tool names like get_system_info since _ is a \w character with no boundary before it, and a leading \b before a dot-prefixed alternative like \.ssh that can never match since . isn't a word character) β both fixed before release. End-to-end verified against a crafted malicious server fixture (caught all 4 planted issues) and against the entire guardbee-mcp monorepo itself (349 files, zero false positives in production code β the only matches were test fixtures, including a correct match inside mcp-server-auditor's own intentionally-vulnerable test examples). New package, so no changeset added.
Recent Changes (2026-09-23, cont'd 3)
Added a 17th package, the last of the four planned AI-security additions: @guardbee/mcp-agent-graph-auditor β a structurally different kind of scanner from the other 16. Instead of flat pattern matching over one file/config, it builds an actual reachability graph across a multi-agent orchestration (LangGraph, CrewAI, or AutoGen/ag2) and finds transitive excessive agency: an agent with no dangerous tool of its own that can still reach one β shell, code-exec, file-write, network, credentials β through another agent it's allowed to delegate to. That's a blind spot for every single-agent scanner in this monorepo (ai-code-scanner, mcp-server-auditor), which only see one agent's own tool list, not a two-hop delegation chain. LangGraph is the most reliable target since add_node/add_edge calls are the orchestration graph in the source; CrewAI (allow_delegation + Crew membership) and AutoGen (GroupChat co-membership, code_execution_config, register_function) require inferring delegation from framework semantics, so those are documented as heuristic. 31 tests, plus end-to-end verification against realistic fixtures for all three frameworks β correctly distinguished "direct" (single-agent) from "transitive" (delegation-crossing, always reported critical) in every case, and caught a real regex bug along the way (a constructor-extraction pattern that silently missed any Agent definition not followed by a trailing newline β fixed before release, not shipped broken). New package, so no changeset added.
Recent Changes (2026-09-23, cont'd 2)
Added a 16th package, third of the four planned AI-security additions: @guardbee/mcp-prompt-leak-scanner β catches leaked credentials and PII in outbound LLM prompts, the moment before they leave your application, rather than in code at rest (secret-scanner's job). Detection uses real checksum algorithms where one exists β the actual 11-digit Turkish national ID (TC Kimlik No) algorithm, Luhn for credit cards, ISO 7064 MOD97-10 for IBANs β instead of bare digit-count regexes, which would otherwise flag order numbers and timestamps constantly. Findings never echo the real value back (maskedMatch shows only sk-β¦wx-style partial reveals). Beyond the usual scan_text/scan_file/scan_directory MCP tools, it also ships a scan_messages tool that understands OpenAI/Anthropic-style chat bodies (messages[].content, string or content-block array, plus system), and a standalone proxy CLI command β a real reverse proxy you point your app's baseURL at instead of the real LLM API, which inspects only the outbound request body (monitor/redact/block policies) and streams the upstream response back untouched, so SSE/streaming completions pass through unaffected. Audit events are credential-free by design β they record which pattern fired and where, never the matched text. 29 tests, including the proxy tested in all three modes via a real local HTTP client/server round trip (not just in-process mocks), plus a manual end-to-end run as an actual subprocess against a mock upstream confirming the redacted body β not the real key β was what got forwarded. New package, so no changeset added.
Recent Changes (2026-09-23, cont'd)
Added a 15th package, second of the four planned AI-security additions: @guardbee/mcp-vector-store-scanner β probes a vector-database endpoint for unauthenticated exposure, the same misconfiguration class behind repeated open-Elasticsearch/MongoDB/Redis incidents, now aimed at the RAG-era stack. Fingerprints Weaviate/Qdrant/Chroma/Elasticsearch via HTTP and escalates through three levels (instance info β schema/collection listing β actual stored data), so a "critical" finding always means real data was actually read back without credentials, not just that a port responded. Redis and Postgres/pgvector get from-scratch raw-protocol implementations instead of HTTP: a RESP PING for Redis, and a wire-protocol SSLRequest+StartupMessage handshake for Postgres that reads whether AuthenticationOk comes back with no password challenge β no client library, no real credentials ever sent. 22 tests against local mock HTTP/TCP servers, covering every probe's matched/unmatched fingerprint and each escalation level. New package, so no changeset added.
Recent Changes (2026-09-23)
Added a 14th package, the first of four planned additions to the AI-security family: @guardbee/mcp-model-scanner β unlike the other scanners, which look at your integration code or content flowing through a model, this one looks at the model file itself as a supply-chain artifact. A .pt/.pth/.pkl checkpoint is a pickle stream, and unpickling can execute arbitrary Python the instant it's loaded (torch.load()), not just deserialize data. The package implements a from-scratch pickle opcode disassembler (protocols 0β5, including protocol 4+'s STACK_GLOBAL encoding) that walks the byte stream to find every GLOBAL/STACK_GLOBAL/INST reference, then checks it against a 31-rule denylist (os, subprocess, socket, builtins.eval, ctypes, β¦) and an allowlist of legitimate ML-framework globals (numpy, torch, sklearn, β¦). For PyTorch's default zip-based checkpoint format, it reads the ZIP central directory directly off disk (with Zip64 support) to extract just the small data.pkl entry without loading a multi-gigabyte file into memory. Also validates .safetensors header structure (including detecting a pickle/zip disguised with a safe-looking extension), flags Keras .h5/.keras Lambda-layer RCE patterns, and flags ONNX external_data path-traversal references. 45 tests, end-to-end verified against fixtures produced by real CPython pickle/zipfile (not just hand-built byte buffers) β correctly caught os.system in both protocol-2 (GLOBAL) and protocol-4 (STACK_GLOBAL) pickle encodings, resolved to posix.system exactly as CPython's own pickler records it. New package, so no changeset added (existing project convention).
Recent Changes (2026-09-15)
Continued growing the AI Gateway (db-gateway) work:
query_audit_logtool β the gateway's own audit history is now queryable, filterable bytable/tool/operation/deniedOnly/since. It reads from an always-on in-memory ring buffer (audit.bufferSize, default 200) that is independent of the configured sink (console/file/http). This also fixed a bug where read and write tools each built their ownAuditLogger, so write events would never have shown up in query results.SQLite adapter β
createSqliteAdapteraccepts abetter-sqlite3Databaseinstance, following the same pattern as thepg/mysql2adapters (identifiers validated against the live schema viaPRAGMA table_infobefore being embedded in SQL).MongoDB adapter β
createMongoAdapteraccepts a MongoDBDbinstance. Guards against a different risk class (not SQL injection, but "operator injection" β$-prefixed keys, dotted paths, operator-object filter values).
Full write-up: packages/db-gateway/README.md#recent-changes-2026-09-15.
Also added a new package: @guardbee/mcp-server-auditor β follows ai-code-scanner's architecture (a regex pattern list, scanText/scanFile/scanDirectory, SARIF, guardbee.yml) but points it at a different target: not general LLM integration code, but an MCP server's own tool definitions. Does a tool name registered via server.tool(...) imply shell/SQL execution, does its handler pass raw tool input straight into an exec/eval/fetch/SQL sink, is a parameter typed z.any(), does it leak the entire process.env β 10 patterns, 5 categories, 32 tests.
And a third: @guardbee/mcp-prompt-injection-scanner β reuses the same engine (scanText/scanFile/scanDirectory/SARIF) but scans data, not code: a RAG chunk, a scraped web page, a document. Unlike classic prompt injection, indirect prompt injection never talks to the model directly β it embeds instructions in content the model will later read (via RAG retrieval or a web fetch). Detects override phrases ("ignore previous instructions"), spoofed System:/<|im_start|> role tokens, text hidden from a human reviewer via zero-width characters or display:none while a scraper still extracts it, phrasing that addresses "the AI" directly, and instructions to leak the system prompt or send data to an external URL. 10 patterns, 5 categories, 30 tests β with explicit negative tests against known false-positive sources like emoji ZWJ sequences and ordinary display:none modals.
And a fourth, a different kind of tool entirely: @guardbee/mcp-llm-redteam β while the other three scan code or content at rest, this one actively probes a live LLM endpoint or chatbot you control (OpenAI-compatible, Anthropic, or your own webhook) with known jailbreak/extraction/obfuscation/refusal-suppression techniques. Every probe is canary-based, not harm-based: it never asks the target to produce genuinely harmful content β success is a deterministic check for whether the target reproduced a random, single-use token, proving an override instruction was obeyed. 12 probes, 5 categories, 29 tests (target adapters tested against a mocked fetch), verified end-to-end via the CLI against local fake chatbot servers (a naive one that leaked 5/6 canaries, a safe one that leaked none).
Telemetry
Every package sends usage telemetry to GuardBee via @guardbee/mcp-telemetry, enabled by default: which tool is called, how often, and how long it takes. A one-time notice is printed to stderr on first use.
To disable:
GUARDBEE_TELEMETRY=0(orfalse/off)What's sent: tool name, short (β€40 character) parameter values (e.g.
table: "users",limit: 50), success/failure, durationWhat's NEVER sent: values under keys like
content/text/data/filter/password/email/apiKey/token, and any string longer than 40 characters β all replaced with"[redacted: ...]"byredactParams()inpackages/telemetry/src/redact.ts. So the full content of scanned files/code, or the real row data from aninsert_row/update_rowcall, is never sent.
Details: packages/telemetry/README.md.
Development
pnpm install
pnpm build # turbo run build β all packages, in dependency order
pnpm test # turbo run testTo work on a single package:
pnpm --filter @guardbee/mcp-ssl-inspector devVersioning and publishing
Packages are versioned independently (Changesets). If you changed something in a PR:
pnpm changesetAfter merging to main, CI automatically opens a version PR; merging that PR publishes the changed packages to npm (see .github/workflows/release.yml).
Structure
pnpm workspaces β
packages/*, realworkspace:*dependencies (e.g.security-suitedepends on the other 4 packages directly from the workspace, not a registry version)Turborepo β
build/test/type-checkpipeline, dependency-graph-aware ordering and cachingShared config β
tsconfig.base.jsonandvitest.shared.tsat the root; each package layers its own settings on top
Available Tools
129 toolsa2a_auditor__list_patternsB
List every A2A (Agent2Agent) protocol pattern this auditor detects, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but for a zero-parameter read-only enumeration the burden is light. It does disclose the output shape ('grouped by category'), which is genuinely useful context, yet it omits any note on whether results are static/cached, how large the listing can get, or what the category values are.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action, domain, and result structure in order. No filler, no repetition of the tool name, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only source of return-value information, and it partly supplies that ('grouped by category'). However, it leaves the agent guessing about the pattern identifiers returned, how many exist, and whether those identifiers map to anything the scan tools consume, which is the main use case for a list_patterns call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema cannot be improved by description text. Baseline of 4 applies; the description correctly implies a parameterless enumeration with no configurable filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('A2A (Agent2Agent) protocol pattern') scoped to this auditor, and adds that results are grouped by category. The A2A qualifier separates it from the many sibling *__list_patterns tools (agent_graph, secret_scanner, etc.), so an agent can identify the domain without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer this over the sibling a2a_auditor__scan_text/scan_file/scan_directory tools, and no statement of prerequisites. The purpose is self-evident for a list-style tool, but nothing in the text routes the agent or sets exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
a2a_auditor__scan_directoryC
Recursively scan a directory of A2A agent source for protocol anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It conveys recursion but says nothing about permissions, read-only nature, expected runtime, file-count limits beyond the schema's maxFiles, or how findings are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is lean but arguably too terse for a four-parameter scanner, leaving room that the description could have used productively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what a scan produces and what 'protocol anti-patterns' means. It never addresses return format, result grouping, or relationship to list_patterns, leaving the agent under-informed for a scanning tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (path, exclude, include, maxFiles) are already documented in the schema. The description adds no parameter syntax or semantics beyond the schema, which is the baseline expectation at full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (directory of A2A agent source), and target (protocol anti-patterns), plus the recursive traversal scope. The 'directory' scope implicitly distinguishes it from a2a_auditor__scan_file and scan_text, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to pick this over a2a_auditor__scan_file, scan_text, or list_patterns. With many near-identical scan_* siblings across auditors, the agent gets no routing help beyond the name's 'directory' hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
a2a_auditor__scan_fileB
Scan a single file for A2A (Agent2Agent) protocol anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It never states that the operation is read-only, what the scan produces (findings, severities, counts), whether it needs file access permissions, or how large files are handled. Only the target domain is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action and scope with zero redundant phrasing. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only place to learn what a scan returns, but it stops at the purpose. For a one-parameter scanning tool the gap is modest, yet an agent still cannot anticipate the result shape or any constraints before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage, so the schema already explains that 'path' is an absolute or relative file path. The description adds nothing about the parameter beyond what the schema provides, which is the expected baseline for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Scan), the resource scope (a single file), and the domain (A2A Agent2Agent protocol anti-patterns). Combined with the name, an agent can distinguish it from scan_directory and scan_text by input granularity, but it never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Scan a single file' implies the usage condition (you have one file rather than a directory or raw text), which is adequate routing context. However, there is no explicit when-to-use/when-not-to-use guidance and no mention of the sibling tools the agent should prefer for other input shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
a2a_auditor__scan_textA
Scan Agent2Agent (A2A) protocol implementation code for anti-patterns found in the reference SDKs and sample agents: an Agent Card fetching a client-supplied push-notification webhook URL with no host allowlist (SSRF), a request handler wired up with no authentication at all, and a literal credential embedded directly in Agent Card metadata (which is served publicly).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the detection semantics (what it looks for and why - e.g. SSRF, auth bypass, credential leakage in public Agent Cards), which is substantive. However, it says nothing about the output shape, severity levels, read-only nature, or whether it performs any network calls. This is a meaningful gap for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense front-loaded sentence that names the target and enumerates the three pattern categories with parenthetical rationale. No filler, but the long enumerative clause stretches readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a text-scanning tool with no output schema, the description sufficiently explains what will be flagged and why each pattern is dangerous. It lacks return-format detail and expected-input guidance, but is largely complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% - both parameters (label, content) are documented in the schema itself. The description adds no parameter-level semantics (e.g. expected content format, size limits). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (A2A protocol implementation code) and enumerates the exact anti-patterns it detects. Clearly distinguishes itself from sibling scanners (secret_scanner, mcp_server_auditor, etc.) by naming A2A-specific threats like SSRF via push-notification webhooks and literal credentials in publicly-served Agent Cards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing what it detects for A2A code, but never says when to prefer scan_text over a2a_auditor__scan_file or scan_directory, nor when A2A scanning is inappropriate. Guidance is inferable from the enumerated patterns but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_graph_auditor__list_patternsA
List every dangerous-capability rule this auditor looks for at the end of a delegation path, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses scope ("at the end of a delegation path") and return shape ("grouped by category"), which implies a read-only, side-effect-free enumeration, but it never states that explicitly nor covers anything about ordering or volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, redundant restatement of the name, or hedging. Every clause (scope, grouping) adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-annotation tool with no output schema, the description supplies the essential scope and the category-grouped result shape. It stops short of detailing the rule entry structure, which is the only material omission given no output schema exists to carry it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is nothing for the description to clarify; the phrase "grouped by category" is a bonus. No parameter-related gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("List") and resource ("dangerous-capability rule this auditor looks for at the end of a delegation path"), with the qualifier "this auditor" cleanly separating it from the ~15 other list_patterns/list_* siblings. An agent can identify it without opening the empty schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names no explicit alternative and gives no when/when-not condition, but usage is strongly implied: call this to enumerate the agent-graph rules rather than the sibling scan_text/scan_file/scan_directory tools. Adequate but leaves the routing inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_graph_auditor__scan_directoryA
Recursively scan a directory of Python files and report excessive-agency paths found in each. Each file's agent/tool graph is analyzed independently β variable references don't resolve across files, so a Crew/GroupChat whose members are defined in a different file than the assembling call won't be connected.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 2000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden, and it does disclose a genuinely important limitation: each file is analyzed independently and variable references do not resolve across files, so cross-file Crew/GroupChat assembly is not connected. That is exactly the kind of caveat an agent needs to interpret results correctly. It still omits read-only-ness, performance/scale behavior, and what the report looks like, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action is front-loaded and the second sentence is a non-obvious caveat that earns its place by preventing misreading of results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-annotation, no-output-schema scanning tool, the description tells the agent what is scanned, what is reported, and the key analytical limitation. It does not describe the shape of the report or pagination/truncation behavior, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with path, exclude, include and maxFiles all documented in the schema, so the baseline is 3. The description adds no extra meaning about path syntax, exclude/include matching semantics, or the default file cap beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recursively scan), resource (a directory of Python files) and output (excessive-agency paths found in each). It is clearly the batch counterpart to the sibling scan_file/scan_text tools, but it never names them, so the differentiation is implied by the word 'directory' rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'directory' and 'Recursively' imply the right usage context versus a single-file scan, but there is no explicit when-to-use statement, no mention of when to prefer scan_file or scan_text, and no prerequisites. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_graph_auditor__scan_fileA
Scan a single Python file for excessive-agency paths across LangGraph/CrewAI/AutoGen orchestration constructs
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the .py file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Scan' implies a non-mutating read, which is a useful signal, but nothing is said about the return shape, whether it needs auth or a specific Python environment, or how it handles non-matching files or syntax errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence that leads with the verb and resource and packs the domain scope without filler. Nothing is wasted and nothing essential is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-argument scanner this is largely adequate, but with no annotations and no output schema the description leaves the return format and file-handling behavior undocumented. It is sufficient to call correctly but not to anticipate results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema fully documents the 'path' argument. The description adds no format, scope, or constraint detail beyond what the schema already provides, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (a single Python file), and the exact subject matter (excessive-agency paths in LangGraph/CrewAI/AutoGen constructs). The 'single ... file' qualifier implicitly distinguishes it from the directory/text variants, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'single Python file' phrasing implies the use case and partially separates it from scan_directory/scan_text siblings, but there is no explicit when-to-use, when-not-to-use, or named alternative. Guidance is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent_graph_auditor__scan_textA
Scan a Python snippet defining a multi-agent orchestration (LangGraph, CrewAI, or AutoGen/ag2) for excessive agency reachable through delegation or group membership β an agent with no dangerous tool of its own that can still reach one (shell/code-exec/file-write/network/credentials) through another agent it can hand off to.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The Python source to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the substantive analysis logic in detail β what the graph is checked for (an agent with no dangerous tool of its own that reaches shell/code-exec/file-write/network/credentials through a handoff). It omits return shape and performance traits, but the safety profile (a pure text read) is self-evident from 'Scan'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the core action and target come first, and the em-dash clause economically explains the detection logic. It is somewhat long, but no sentence is filler. Slightly dense for one sentence, hence not a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description still gives an agent enough to call it correctly and understand what it checks. It stops short of describing the finding/return structure, which would be the main remaining gap for a scanner with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('label', 'content') are already documented in the schema. The description's mention of the Python snippet aligns with the 'content' param but adds no syntax, format, or handling detail beyond what the schema provides. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-resource pair ('Scan a Python snippet defining a multi-agent orchestration') plus the target frameworks (LangGraph, CrewAI, AutoGen/ag2) and the precise defect sought (excessive agency reachable via delegation/group membership). An agent can distinguish it from scan_file/scan_directory siblings and from other auditors like a2a_auditor or toxic_flow_auditor without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context (inline Python snippet for multi-agent frameworks) but never states when to use this over the sibling scan_file or scan_directory, nor any exclusion. The text-vs-file distinction is only inferable from the tool name, leaving usage implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_code_scanner__list_patternsA
List all AI/LLM security patterns that the scanner can detect, grouped by category (including any custom rules loaded from .guardbee/rules)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that results are grouped by category and include custom rules from .guardbee/rules, which adds useful output context. However, it does not explicitly state that the operation is read-only or whether permissions are required, though 'List' strongly implies a safe read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action and resource, then adds grouping and custom rules. No wasted words; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description covers what the tool does and how results are organized. It omits usage context and safety confirmation, but those are minor given the tool's simplicity. Adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4 per the rules. The schema is empty and the description does not need to add parameter semantics. No gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'List' and resource 'AI/LLM security patterns that the scanner can detect', plus grouping and custom rules. It does not explicitly differentiate from sibling list_patterns in other scanners, though the tool name prefix helps disambiguate. Clear but no sibling differentiation in description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as other list_patterns tools or scan_* tools. No prerequisites or exclusions mentioned. The implied use case is pattern discovery, but no explicit context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_code_scanner__scan_directoryA
Recursively scan a directory for insecure AI/LLM integration patterns. Automatically skips node_modules, .git, dist, and binary files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings (e.g. [".ts", "src/agents"]) | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose meaningful behavior: recursive traversal and auto-skipping of node_modules, .git, dist, and binary files. The schema does not state these default exclusions, so this is genuine added context, though return format and large-directory behavior remain unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the auto-skip caveat immediately after. No filler or restated name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only directory scanner with four fully documented parameters and no output schema, the description covers purpose, scope, and default exclusions adequately. It could note the output shape (findings list) but the absence of an output schema lowers the bar.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so path, exclude, include, and maxFiles are already documented, including the default of 5000. The description adds no parameter-level detail beyond the schema, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (scan) + resource (directory) + scope (insecure AI/LLM integration patterns) with recursion noted. This clearly separates it from ai_code_scanner__scan_file and scan_text via the directory/recursive framing, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The directory-scoped, recursive wording implicitly tells an agent when this applies versus scan_file/scan_text, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is inferable from the name and phrasing rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_code_scanner__scan_fileB
Scan a single file for insecure AI/LLM integration patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it mostly does not. It never states that the operation is read-only/non-mutating, what the scan returns, whether findings are cached, or any auth/rate constraints. Only the detection domain is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action first and no filler; appropriately sized for a one-parameter tool. It sacrifices a little useful context for brevity, which keeps it just short of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a low-complexity tool (one required param, no output schema, no nested objects), the description is minimally adequate: it tells the agent what is scanned but not what comes back (findings shape) or that it is a safe read. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole 'path' parameter is already documented as 'Absolute or relative path to the file to scan'. The description adds no syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Scan') plus a precise resource ('a single file') and a clear detection domain ('insecure AI/LLM integration patterns'). The word 'single' implicitly distinguishes it from the scan_directory sibling, though it never names scan_text or scan_directory explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the singular 'a single file' β an agent can infer this is for one file rather than a directory or free text, but there is no explicit when-to-use or when-to-prefer-an-alternative statement, and no prerequisites given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_code_scanner__scan_textC
Scan a text string or code snippet for insecure AI/LLM integration patterns (client-exposed keys, unsafe output handling, excessive agent tool permissions, PII sent to a model, prompt injection surface).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that the operation is read-only, whether permissions are required, what the findings look like, or any rate limitsβit only implies a read operation via "Scan."
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with the verb first and a compact parenthetical list of pattern types. Every phrase contributes to defining the scan scope with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should ideally disclose that the tool is read-only and explain the shape of returned findings. It only lists pattern categories, leaving both safety behavior and return format undocumented for an agent that cannot rely on structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (content, label) are fully documented in the schema. The description adds no parameter syntax, constraints, or examples, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Scan") and resource ("text string or code snippet") plus a clear scope with five named pattern categories. This distinguishes it from ai_code_scanner__scan_file and scan_directory by input type, but it does not explicitly differentiate from the many other *_scan_text siblings (e.g., a2a_auditor__scan_text, secret_scanner__scan_text) or name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance. The only usage cue is the implied distinction of scanning a text string rather than a file, which is not enough to route an agent among the many sibling scanners.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_gap_auditor__list_patternsB
List every OWASP MCP08 audit-gap check this auditor runs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does convey one useful trait: it returns every check (exhaustive, unfiltered listing). It says nothing about whether the operation is read-only, how results are shaped, or whether pagination applies, leaving meaningful gaps for a discovery tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the scope word 'every' is placed early. It is appropriately sized, though terse enough that the missing routing information is noticeable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Invocation is trivial with zero parameters, but there is no output schema, so the description should describe the shape of a returned 'check' (id, name, description) and it does not. Combined with the absence of usage guidance, it is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema is empty and there is nothing for the description to explain. Baseline 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (OWASP MCP08 audit-gap checks run by this auditor), which separates it from the many other *__list_patterns siblings from different auditors. It stops short of explicitly naming or contrasting those siblings, but an agent can identify that it enumerates this auditor's own check catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the sibling scan_text/scan_file/scan_directory tools, nor any prerequisite or ordering guidance. The discovery-then-scan workflow is only inferable from the tool family convention, which is weak guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_gap_auditor__scan_directoryB
Recursively scan a directory of MCP server source for OWASP MCP08 audit/telemetry gaps
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. 'Recursively' usefully discloses that subdirectories are traversed, but it says nothing about whether this is a read-only operation, how loaded directories are handled, default exclusions (the schema's default maxFiles of 5000 is unmentioned), or what a 'gap' finding actually represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding β the action, the input type, and the analysis target all appear before any filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because no output schema exists, the description should convey something about the shape of results (findings, severities, counts), and it does not. Similarly it omits when to prefer it over scan_file. It is adequate for identifying the tool but leaves the return contract and usage context unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so path, exclude, include, and maxFiles are already documented with their semantics and defaults. The description adds no extra meaning beyond the schema (e.g., no guidance on how exclude/include interact or typical patterns worth filtering), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Recursively scan'), resource ('directory of MCP server source'), and a precise target of analysis ('OWASP MCP08 audit/telemetry gaps'). The 'directory' scope inherently separates it from the same-namespace siblings scan_file and scan_text, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'directory' β an agent can infer this is the tool for scanning a whole tree rather than a single file, but there is no explicit when-to-use statement, no prerequisite (e.g., source must be an MCP server project), and no routing against the adjacent scan_file/scan_text/list_patterns tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_gap_auditor__scan_fileB
Scan a single file for OWASP MCP08 audit/telemetry gaps
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about whether the scan is read-only, whether it executes or resolves the file's contents, what happens on binary/unreadable input, or how results are surfaced. 'Audit/telemetry gaps' hints at what it looks for but discloses no operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the scope qualifier ('single file') precedes the purpose clause. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description is minimal but mostly sufficient on intent. It omits the expected output shape (findings list? pass/fail?) and any coverage caveats about what MCP08 checks are performed, which an agent would need to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% β the single 'path' parameter is already documented as an absolute or relative file path. The description adds nothing about path handling (globs, symlinks, size limits), so baseline 3 applies with the schema doing the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scan'), a precise resource ('a single file'), and a well-defined target domain ('OWASP MCP08 audit/telemetry gaps'). It implicitly separates itself from audit_gap_auditor__scan_directory and scan_text by scoping to one file, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'single file' implies when this tool applies versus the directory/text variants, but there is no explicit when-to-use statement, no prerequisite (e.g. file must be readable/text-based), and no named alternative. Usage must be inferred from the scope noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_gap_auditor__scan_textB
Scan MCP server source for OWASP MCP08:2025 (Lack of Audit and Telemetry) gaps: tools registered with no audit trail, raw args/results logged, audit hard-disabled, silent catch blocks, audit events without a session/request id.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the detection categories and indirectly that results are surfaced as 'findings', but says nothing about whether the scan is read-only, whether it has side effects, rate limits, or execution cost for a code-analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a colon-delimited list of detected gaps. It is dense but every clause contributes a distinct detection category, so little is wasted; the list slightly hurts readability but not enough to penalize heavily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should ideally describe the shape of the returned findings (severity, location, remediation). It thoroughly covers what is detected but leaves the return format unaddressed, which is a gap for a scanner whose output the agent must interpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (label, content), so the schema already documents their meaning. The description adds no parameter-level detail beyond what the schema states, giving the standard baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (MCP server source) and enumerates the exact gap categories it detects (no audit trail, raw args/results logged, audit hard-disabled, silent catch blocks, missing session/request id). However, it never explicitly distinguishes itself from the sibling scan_file/scan_directory variants, leaving the input-form distinction to be inferred from the name and schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope implies usage (scanning source for audit/telemetry gaps), but there is no explicit 'use this when...' guidance and no mention of the alternative scan_file/scan_directory tools or when one should be preferred over another. Usage is inferable from the description but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_checker__analyze_privacy_policyB
Fetch and analyze a privacy policy page for completeness against GDPR/KVKK requirements. Works without an API key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Direct URL to the privacy policy page (or homepage to auto-detect) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses one genuine behavioral trait, that no API key is required, and fetch/analyze implies a read-only network operation. It says nothing about return format, analysis depth, rate limits, or failure behavior for a non-existent/unreachable URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action and scope front-loaded ahead of the secondary access note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only place to learn what the analysis yields (findings, gap list, score, framework breakdown). It never describes the return value, which is a material gap for an analysis tool whose output shape is otherwise unknowable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single url parameter is fully documented in the schema, including the homepage auto-detect behavior. The description adds no parameter syntax or format detail beyond that, so the baseline 3 for schema-documented parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair (fetch and analyze) and a specific resource (privacy policy page) scoped to GDPR/KVKK completeness, which is concrete enough for an agent to know exactly what it produces. It does not, however, differentiate itself from the sibling compliance_checker__check_compliance, so the agent cannot tell the two apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of the sibling alternatives (check_compliance, list_requirements, compare_frameworks). 'Works without an API key' is an access hint, not usage guidance, leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_checker__check_complianceB
Run a full compliance scan for a URL against a regulatory framework (KVKK, GDPR, or CCPA) using the GuardBee scanner. Returns a gap analysis and action plan.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to audit for compliance | |
| wait | No | Wait for scan to complete (default: true) | |
| framework | Yes | Regulatory framework: KVKK, GDPR, or CCPA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return shape (gap analysis plus action plan) and names the underlying GuardBee engine, but says nothing about whether the scan is long-running, what happens when wait=false, network egress implications, or rate/cost limits β all material for an unbounded web scan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences (~30 words) with the action and target front-loaded and the return value second. No filler, no redundancy, and the return-value sentence is valuable given the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, no-annotation, no-output-schema tool, the description covers purpose, frameworks, and return shape, which is the minimum viable set. It still omits execution semantics (sync vs async, expected duration, whether a separate findings call is required), which an agent would need before invoking it on a live URL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so url, wait, and the framework enum are already documented in the schema; baseline 3 applies. The description repeats the framework values but never mentions the wait parameter or its async implications, so it adds essentially no parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (scan a URL for regulatory compliance) and names the three supported frameworks, so the agent knows exactly what is produced. It does not, however, distinguish itself from close siblings such as get_compliance_findings or analyze_privacy_policy, leaving the agent to infer that this is the entry-point scan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'full' hints that this is the comprehensive scan, but there is no explicit when-to-use, when-not-to-use, or named alternative. Nothing tells the agent whether to call this first and then get_compliance_findings, or how it relates to compare_frameworks/list_requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_checker__compare_frameworksB
Compare KVKK, GDPR, and CCPA requirements side by side to understand overlaps and gaps
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it says nothing about whether the operation is read-only, whether it requires any inputs, or what the comparison output looks like. It does not contradict anything, but it discloses no traits beyond the bare purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action, the subjects, and the goal with no filler. It is efficient, though the one sentence is the entirety of the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is minimal but serviceable β it conveys what is compared and why. However, with no annotations and no output schema, it does not tell the agent enough about the result shape or scope to be fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so the baseline of 4 applies. There is no parameter syntax or meaning for the description to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (compare) and concrete resources (KVKK, GDPR, CCPA requirements), plus the goal of surfacing overlaps and gaps. It is clearly distinguishable in intent from siblings like check_compliance or analyze_privacy_policy, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no sibling alternative is named. The comparison scenario is only implied by the verb 'compare', leaving the agent to infer when this tool beats check_compliance or list_requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_checker__get_compliance_findingsB
Get compliance findings from a completed GuardBee scan, optionally filtered by severity
| Name | Required | Description | Default |
|---|---|---|---|
| scanId | Yes | Scan ID returned by check_compliance | |
| severity | No | Filter by severity | |
| framework | No | Framework label for the report header |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Get' implies a read-only retrieval and the description discloses the precondition that a scan must be completed, which is genuine behavioral context. It omits any details on pagination, result size, or behavior when findings are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the core action first and the optional filter trailing. No wasted words, though the brevity contributes to the coverage gaps noted elsewhere rather than being optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three parameters, no output schema, and no annotations means the description must do more work. It conveys the retrieval purpose and the scan prerequisite, but says nothing about the shape of returned findings and drops the framework filter, leaving an agent to infer the response and one of the filter dimensions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description only mentions the severity filter and entirely omits the framework parameter, so it adds no meaning beyond the schema and even under-describes the available filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('compliance findings') and names the source ('a completed GuardBee scan'), so it is distinguishable from siblings like check_compliance, which runs a scan. However, it does not explicitly contrast itself with check_compliance/list_requirements, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from a completed GuardBee scan' plus the schema note that scanId comes from check_compliance implies the prerequisite workflow (run check_compliance first). But there is no explicit when-to-use/when-not-to-use or statement of alternatives among the compliance_checker siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance_checker__list_requirementsA
List all compliance requirements for a framework with legal basis references
| Name | Required | Description | Default |
|---|---|---|---|
| severity | No | Filter by severity | |
| framework | Yes | Framework: KVKK, GDPR, or CCPA |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that results include legal basis references, and 'List all' implies a read-only operation, but it says nothing about pagination, volume of results, or whether the catalog is static versus evaluated per call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; the resource and its scope come first and every word carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial two-parameter read-only lookup with no output schema, the description is nearly sufficient: it states the resource, the scoping key, and one attribute of the return value (legal basis references). It could say more about result shape, but nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented and enum'd, so the schema carries parameter meaning. The description only echoes the framework scoping and adds no format or default guidance beyond it, matching the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) plus resource (compliance requirements) scoped to a framework, which distinguishes it from the sibling compliance_checker__check_compliance and get_compliance_findings tools. It does not explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The framework-scoped catalog framing implies when to reach for it (enumerating requirements for a given regulation rather than running a check or comparing frameworks), but there is no explicit when-to-use or when-not-to-use guidance and no alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_oversharing_auditor__list_patternsA
List every OWASP MCP10 context-oversharing check this auditor runs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but this is a zero-parameter, read-only enumeration tool, so the safety burden is minimal and the 'List' verb conveys the non-mutating nature. It still omits any note on output shape, whether the catalog covers all MCP10 checks or a subset, or whether the list is static.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, though 'this auditor runs' is slightly indirect phrasing that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no output schema, the description tells the agent what will be listed, which is the essential information. However, with no output schema to define the return, the description could have sketched the shape of the returned check entries and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate; the baseline for a parameterless tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a specific resource ('every OWASP MCP10 context-oversharing check this auditor runs'), naming the domain that separates it from the many sibling list_patterns tools. It stops short of explicitly contrasting itself with context_oversharing_auditor__scan_text/scan_file, so it is clear but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a discovery call to see which checks exist before invoking a scan, but the description never says when to use it, when not to, or that scan_text/scan_file are the alternatives for actually running the checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_oversharing_auditor__scan_directoryC
Recursively scan a directory for OWASP MCP10 context-oversharing issues
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden but discloses only that traversal is recursive. It never states the operation is read-only/non-destructive, says nothing about permissions needed, and does not mention that scanning is bounded by maxFiles β all relevant for a recursive filesystem walk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and scope front-loaded and zero filler. It is efficient, though the extreme brevity is precisely what leaves the behavioral gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter recursive scan with no annotations and no output schema, the description covers purpose but omits safety profile, side effects, and any hint of what findings are produced. Adequate to invoke, incomplete to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so path, exclude, include, and maxFiles are already fully documented in the schema (including the 5000 default). The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (directory), traversal mode (recursively), and target domain (OWASP MCP10 context-oversharing issues). This implicitly separates it from scan_file/scan_text siblings, but it never names or contrasts those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, prerequisites, or alternative tools. The agent must infer from the word 'directory' that this is the folder-level variant of scan_file/scan_text β pure inference, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_oversharing_auditor__scan_fileB
Scan a single file for OWASP MCP10 context-oversharing issues
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the basic action. It does not state that the operation is read-only, whether it mutates or caches anything, what the findings look like, or how severity is reported for a scanner tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler; the identifying information (action, scope, detected issue class) arrives immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only place to explain what a scan returns (finding format, severity, location) and whether the call is safe, and it covers none of that. It is minimally sufficient for a one-parameter tool but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter and schema description coverage is 100%, so the 'path' semantics are fully documented in the schema. The description adds no format detail (e.g., file-vs-directory expectations, extension handling) beyond what structured data already supplies, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (a single file) plus the target domain (OWASP MCP10 context-oversharing issues), so the agent knows exactly what it does. The word 'single' implicitly distinguishes it from the sibling scan_text and scan_directory tools, but it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through 'single file' and the OWASP MCP10 framing; the description never states when to prefer this over context_oversharing_auditor__scan_text or scan_directory. No prerequisites, no exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_oversharing_auditor__scan_textB
Scan agent/MCP source for OWASP MCP10:2025 context oversharing β full conversation dumps, unscoped memory tools, shared global session stores, system-prompt leaks via tools, cross-session tool-result bleed, and unfiltered vector queries.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it only describes what patterns are detected β not what is returned, whether findings carry severities/locations, whether scanning is read-only, or any limits. The pattern list is useful scope information but not behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the action and target lead, and the pattern enumeration trails as qualification. No filler sentences and nothing to trim without losing detection scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter text scanner with no output schema, the description is adequate on scope but silent on result shape and on how it differs operationally from scan_file/scan_directory. It is the minimum viable definition rather than a complete one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'content' and 'label' are already documented in the schema. The description adds no syntax, format, or constraint detail beyond that, so the baseline of 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan), a resource (agent/MCP source), and a named standard (OWASP MCP10:2025 context oversharing), then enumerates the exact defect classes it hunts (conversation dumps, unscoped memory tools, session-store leaks, prompt leaks, tool-result bleed, unfiltered vector queries). The enumeration lets an agent distinguish this from the sibling scan_file/scan_directory tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Nothing says when to reach for scan_text over the sibling scan_file or scan_directory variants, nor what input shape it expects (inline text vs path). Usage is only inferable from the tool name. No prerequisites, no exclusions, no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_gateway__describe_tableA
Get the column names and gateway masking policy for a table β helps the LLM understand what data it can access.
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that output includes a gateway masking policy β non-obvious behavioral context that tells the agent some columns may be restricted β but says nothing about read-only safety, behavior for unknown/missing tables, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the core action front-loaded ahead of the rationale. Nothing is wasted, though the final clause restates the value proposition rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description adequately conveys what comes back (column names plus masking policy). Minor gaps remain around error behavior and whether the table argument needs a schema/qualifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'table' parameter, so the baseline is 3. The description adds no extra detail (naming conventions, qualified vs unqualified names, case sensitivity) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get/describe) and resource (a table's column names and gateway masking policy), which distinguishes it from list_tables and query_table without naming them. The masked-data framing makes the purpose concrete rather than a generic 'describe'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing clause 'helps the LLM understand what data it can access' implies the intended workflow (inspect a table before querying it), but there is no explicit when-to-use statement, no mention of query_table as the alternative, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_gateway__gateway_statusA
Show the active gateway configuration: field masking rules, table policies, and audit settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Show ... active configuration' implies a non-mutating read, and it names the categories of data returned (masking rules, table policies, audit settings). However it says nothing about permissions required, whether any state changes, or sensitivity of the exposed config, leaving real behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource and then enumerates the returned content categories. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool with no output schema, the description adequately tells the agent what it will see. It could be more complete by noting read-only semantics or any access requirements, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document; baseline 4 applies. The description correctly avoids inventing input arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Show') and resource ('active gateway configuration') and enumerates the contents (field masking rules, table policies, audit settings), which distinguishes it from data-query siblings like query_table/list_tables. It does not explicitly contrast with query_audit_log, which touches the same 'audit' domain, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied β a status tool is used to inspect current configuration β but the description never says when to call it versus alternatives such as describe_table or query_audit_log, and lists no prerequisites or trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_gateway__list_tablesA
List all available database tables. Tables marked as 'deny' in gateway policy are omitted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a non-obvious behavioral trait: tables marked 'deny' in gateway policy are omitted. This is valuable context an agent would not otherwise know. It does not mention authentication or return format, but for a zero-parameter read-only list operation the main behavioral nuance is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose and followed by a single useful constraint. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list tool with no output schema and no annotations, the description is largely complete: it states what is listed and what is excluded. It could optionally mention the return shape (e.g., table names), but that is not required without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. The baseline for zero parameters is 4, and the description appropriately does not introduce unnecessary parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List all available database tables.' It is unambiguous what the tool does, but it does not explicitly differentiate itself from siblings like db_gateway__describe_table or db_gateway__query_table, which would be needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. It does not mention alternatives (e.g., describe_table, query_table) or any prerequisite context, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_gateway__query_audit_logA
Query the gateway's own audit log β inspect which tools were called, on which tables, whether they were allowed or denied (and why), and which fields were redacted/written. Covers events since this server process started; count is capped by the gateway's audit.bufferSize (default 200).
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | Filter by MCP tool name, e.g. 'query_table', 'update_row' | |
| limit | No | Max events to return, most recent first (default 50) | |
| since | No | ISO 8601 timestamp β only events at or after this time | |
| table | No | Filter by table name | |
| operation | No | Filter by operation type | |
| deniedOnly | No | Only return calls the gateway denied/blocked |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose two important constraints: results are limited to events since this server process started, and the count is capped by audit.bufferSize (default 200). It does not state whether the call is read-only/side-effect free, permission requirements, or how results behave past the cap, so it falls short of complete disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler: the primary purpose and queryable dimensions come first, and the retention/cap caveats follow. Every clause carries information an agent needs before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema read tool with six fully documented optional params, the description covers purpose, filters, and retention limits well. It could go further by sketching the returned event shape or empty-result behavior, which is the one remaining gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above baseline by mapping the queryable dimensions (tool, table, allow/deny, redaction/write) directly onto the filter parameters, giving the agent a conceptual model of what each filter selects. It adds no syntax or format details beyond the schema, so it stays short of 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Query the gateway's own audit log') and immediately enumerates what is inspectable: tool calls, tables, allow/deny outcomes with reasons, and redacted/written fields. This clearly separates it from siblings like query_table and gateway_status, which read data or server state rather than the gateway's own event log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful scope context (events since process start, capped by audit.bufferSize, default 200) but never states when to reach for this tool versus alternatives, nor any exclusions or prerequisites. Usage is implied by the scope statement rather than explicitly framed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
db_gateway__query_tableA
Query rows from a database table with optional filters. All results pass through the KVKK/GDPR gateway β sensitive fields are automatically masked.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to fetch before gateway limit is applied (default 50) | |
| table | Yes | Table name to query | |
| filter | No | Key-value filter pairs, e.g. { status: 'active' } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, and it does deliver a meaningful behavioral trait: all results are routed through the KVKK/GDPR gateway and sensitive fields are automatically masked. That is genuinely useful output-transformation context the schema cannot convey. It still omits read-only confirmation, failure modes, and whether the gateway can further truncate results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with purpose and followed by the one non-obvious behavioral fact. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's masking note usefully pre-empts questions about returned field values, and the schema fully documents the three parameters including the limit cap. Given low tool complexity, this is close to complete, though a note on read-only safety and gateway-imposed limits would fully close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, covering table, filter, and the limit cap, so the schema already does the heavy lifting. The description's "optional filters" phrasing adds no syntax or semantics beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Query rows from a database table") plus scope ("with optional filters"), which clearly separates it from read-only metadata siblings like describe_table and list_tables. It stops short of explicitly naming those siblings, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer you call this when you need row data from a named table. There is no explicit when-to-use vs. describe_table/list_tables routing, no stated prerequisites (e.g., table must exist, permissions), and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dependency_auditor__audit_directoryB
Auto-detect and audit every supported project in a directory: npm (package-lock, pnpm, yarn, bun), Python (uv, Poetry, Pipenv, requirements), Rust (Cargo.lock), Go (go.mod), Ruby (Gemfile.lock) and PHP (composer.lock)
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the project root directory | |
| exploitData | No | Add CISA KEV (exploited in the wild) and FIRST EPSS data and order findings by it (default: true; sends CVE IDs only) | |
| includeDevDeps | No | Include dev dependencies (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does not discharge it. It discloses nothing about network egress (KEV/EPSS lookups), performance cost on large trees, how unsupported or ambiguous projects are handled, or whether the scan is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence with a clean ecosystem list; every clause earns its place. It is slightly list-heavy and omits any second sentence that could carry usage or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should carry more of the load for this multi-ecosystem scanner. It covers scope well but leaves behavior, egress, and result shape entirely undisclosed, so it is adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (directory, exploitData, includeDevDeps) are already fully documented in the schema; the description adds no parameter-level meaning beyond that. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Auto-detect and audit every supported project in a directory') and enumerates the exact ecosystems and lockfiles covered. This clearly distinguishes it from the single-ecosystem siblings audit_npm, audit_pip, and audit_package without the agent needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the directory-vs-single-package framing and by the sibling names, but the description never explicitly says 'use this for multi-project/mixed-ecosystem directories; use audit_npm/audit_pip for a single manifest.' No when-not or prerequisite guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dependency_auditor__audit_npmA
Audit npm dependencies for known CVEs using the OSV database. Reads exact versions from package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock (v1 and berry) or bun.lock, falling back to package.json ranges
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the directory containing package.json | |
| exploitData | No | Add CISA KEV (exploited in the wild) and FIRST EPSS data and order findings by it (default: true; sends CVE IDs only) | |
| includeDevDeps | No | Include devDependencies in the audit (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that versions are read from lockfiles with a documented fallback to package.json ranges (implying ranges yield less accurate results) and that OSV is an external lookup, but it never states read-only nature, network/privacy implications of sending dependency data, or rate limits. Adequate but incomplete for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the action and data source; the lockfile enumeration earns its length by telling the agent exactly which inputs are honored without needing to consult external docs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should cover more of the call contract. It fully explains input resolution but says nothing about the shape of findings, severity ordering (only hinted via the exploitData schema field), or that the tool performs an external lookup. Enough to invoke, not enough to be confident about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents directory, exploitData, and includeDevDeps thoroughly, including defaults. The description adds no parameter-level meaning beyond the lockfile resolution behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Audit) and resource (npm dependencies) plus the mechanism (OSV database), and enumerates the exact lockfile formats resolved (package-lock.json, pnpm-lock.yaml, yarn.lock v1/berry, bun.lock). This is clearly distinguishable from the sibling ecosystem tools audit_pip and from slopsquat_scanner__scan_npm, which targets hallucinated packages rather than CVEs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context of use (an npm project with a lockfile) is implied, but there is no explicit when-to-use vs the siblings audit_package / audit_directory, nor any exclusion or prerequisite guidance. An agent must infer which of the four dependency_auditor tools to pick from scope alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dependency_auditor__audit_packageB
Audit a single package by name, version, and ecosystem
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name | |
| version | Yes | Package version (e.g. 1.2.3) | |
| ecosystem | Yes | Package ecosystem | |
| exploitData | No | Add CISA KEV (exploited in the wild) and FIRST EPSS data and order findings by it (default: true; sends CVE IDs only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only says 'audit'. It never discloses that the result is vulnerability/exploit analysis, whether the call is read-only, what the response contains, or how the exploitData flag changes behavior. The safety-relevant context lives entirely in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler and no redundancy against the schema. It is efficient, though its brevity borders on under-specification rather than true economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A four-parameter tool with no annotations and no output schema gets only one sentence of description. Nothing explains what an 'audit' produces, how findings are ordered, or how this differs from the ecosystem-specific siblings, leaving the agent under-informed for correct selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (including the enum values and the exploitData default) are already documented structurally. The description adds no format, ordering, or semantics beyond restating the field names, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (audit) and resource (single package) with the identifying dimensions (name, version, ecosystem). The word 'single' implicitly separates it from the directory-scoped sibling, but it never names audit_npm/audit_pip/audit_directory, so the agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, when-not-to-use, or alternatives are given, even though sibling tools audit_npm and audit_pip are direct shortcuts for specific ecosystems. The 'by name, version, and ecosystem' phrasing only weakly implies this is the generic cross-ecosystem entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dependency_auditor__audit_pipB
Audit Python dependencies for known CVEs using the OSV database. Reads exact versions from uv.lock, poetry.lock or Pipfile.lock, falling back to requirements.txt / pyproject.toml
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the directory containing requirements.txt or pyproject.toml | |
| exploitData | No | Add CISA KEV (exploited in the wild) and FIRST EPSS data and order findings by it (default: true; sends CVE IDs only) | |
| includeDevDeps | No | Include dev groups from poetry.lock, uv.lock or Pipfile.lock (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the version-resolution strategy (exact versions from lock files, falling back to requirements.txt/pyproject.toml) and the OSV data source, but says nothing about network/auth requirements, rate limits, or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the resolution fallback trailing as supporting detail. No filler, though the manifest list slightly blurs into schema territory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description covers what it does and how it resolves versions but omits any sense of the return shape or the read-only nature of the operation. Adequate for selection, incomplete for invocation expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level detail: it never mentions exploitData (CISA KEV/EPSS enrichment) or includeDevDeps, leaving the schema to carry all three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Audit') with a specific resource ('Python dependencies') and states the threat model ('known CVEs using the OSV database'). The Python-specific lock-file list implicitly separates it from sibling audit_npm, though it never explicitly names a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for Python projects because the description enumerates the Python manifests it reads. It never says when to prefer this over audit_package, audit_directory, or slopsquat_scanner__scan_pip, and offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__audit_domainsA
Audit several domains at once (e.g. every brand or country domain) and compare them: an AβF grade per domain from all DNS, email, DNSSEC, CAA and nameserver checks, plus each domain's most serious findings
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Domains to audit, e.g. ["example.com", "example.de"] | |
| nameserverProbe | No | Query nameservers directly (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose the analysis composition (DNS, email, DNSSEC, CAA, nameserver checks) and output shape. However it says nothing about latency/cost of running live DNS checks across up to 20 domains, partial-failure behavior per domain, or whether results are cached β operational traits an agent planning a call would want.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence; the batch scope comes first and the output preview follows via a colon-list. It is dense but every clause earns its place, with no restatement of the name or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must cover both the action and the return; it does describe the return (per-domain grade plus top findings). What is missing is only the edge-case behavior (partial results, failures on individual domains), which is a modest gap for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there, so the baseline is 3. The description reinforces the array/batch semantics of 'domains' but adds no format or constraint detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Audit several domains at once') plus the batch scope, which is what separates it from the single-target siblings like lookup_dns, enumerate_dns, check_email_security and check_takeover. It also previews the deliverable ('AβF grade per domain ... plus each domain's most serious findings'), so an agent knows exactly what comes back.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'e.g. every brand or country domain' implies the batch use case, but there is no explicit when-to-use/when-not, no named alternative for single-domain lookups, and no guidance on when the more targeted checks are preferable. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__check_email_securityA
Check a domain's email security: MX, SPF (nested lookup count), DMARC, DKIM key strength, MTA-STS and TLS-RPT, with remediation advice
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check email security for | |
| dkimSelectors | No | Additional DKIM selectors to check (default: common selectors) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the scope of checks and that remediation advice is included, and 'Check' implies a read-only operation. However, it does not state safety, permissions, rate limits, timeouts, or output format, leaving meaningful behavioral context unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with a clean colon-separated list of checks. Every element is informative and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a domain-based read-only security check with a simple input schema and no output schema, the description does well by listing all record types examined and mentioning remediation advice. It still omits any indication of output format, limits, or execution characteristics, but is largely complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (domain and dkimSelectors) are already fully documented in the input schema. The description adds no further parameter meaning beyond the schema, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('a domain's email security') and enumerates exactly what is inspected: MX, SPF nested lookup count, DMARC, DKIM key strength, MTA-STS, TLS-RPT, plus remediation advice. This clearly distinguishes it from sibling DNS tools like enumerate_dns or lookup_dns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it versus alternatives, nor any prerequisites or exclusions. Usage is only implied by the purpose itself, which is a gap for an agent choosing between this and the other dns_intelligence tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__check_takeoverB
Check specific hostnames (e.g. from your DNS zone or certificate logs) for subdomain takeover
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes | Hostnames to check, e.g. ["blog.example.com"] | |
| httpProbe | No | Fetch pages to match takeover fingerprints (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether checks perform network requests, how long they take, rate/permission requirements, or that only the 200-host cap applies; the httpProbe fetching behavior is disclosed only in the schema, not here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical example earns its place. It is short but could have absorbed one more clause of substance at negligible length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must carry the operational context, yet it omits what a result contains, whether checks are safe/read-only, the batch limit, and any latency implications of HTTP probing. For a 2-parameter security-scan tool this leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only that the hostnames are 'specific' and come from DNS zones or certificate logs; it never mentions the httpProbe toggle or the 1-200 host bounds, so it does not go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Check specific hostnames ... for subdomain takeover'. The security intent (subdomain takeover) is distinctive and separates it from sibling lookup/enumeration tools, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(e.g. from your DNS zone or certificate logs)' implies where the host list comes from, which hints at when to use it. However, it never states when to prefer this over enumerate_subdomains, lookup_dns, or audit_domains, nor any exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__enumerate_dnsB
Enumerate all DNS records for a domain and detect misconfigurations: SPF, DMARC, DKIM key strength, MTA-STS/TLS-RPT, MX, DNSSEC (signed / broken / weak algorithms) and CAA (including whether it blocks the CA of the live certificate) and nameservers (lame delegation, anonymous zone transfer, open recursion)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to enumerate (e.g. example.com) | |
| nameserverProbe | No | Query each nameserver directly for lame delegation, SOA serial drift, anonymous zone transfer (AXFR) and open recursion (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It discloses active probing behaviors (lame delegation, anonymous zone transfer/AXFR, open recursion) and the DNSSEC state model (signed/broken/weak), which is useful. But it does not state the safety profile, expected query volume, or whether probes are intrusive or time-consuming.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first, followed by a dense but purposeful detection list. Every clause names a distinct record type or misconfiguration, so little is wasted despite the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no annotations and no output schema, the description adequately states what is enumerated but leaves the operator without guidance on cost, intrusiveness, or how it differs from sibling DNS tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description's mention of zone transfer, open recursion, and lame delegation loosely maps to nameserverProbe but adds no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (enumerate) and resource (DNS records) plus an explicit inventory of what it inspects: SPF, DMARC, DKIM, MTA-STS/TLS-RPT, MX, DNSSEC, CAA, nameservers. However, it does not differentiate itself from siblings like check_email_security (which also covers SPF/DMARC/DKIM) or lookup_dns, so the agent cannot tell which to pick without opening the schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives. The overlap with check_email_security and lookup_dns makes the absence of routing guidance a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__enumerate_subdomainsB
Find subdomains from Certificate Transparency logs and a common-name wordlist, and detect subdomain takeovers: CNAMEs to S3, GitHub Pages, Azure, Heroku, Netlify and other providers whose resource is gone (verified fingerprints), or to targets that no longer exist
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Root domain to enumerate subdomains for (e.g. example.com) | |
| httpProbe | No | Fetch pages behind provider CNAMEs to match takeover fingerprints (default: true) | |
| certificateTransparency | No | Add names found in Certificate Transparency logs via crt.sh and Cert Spotter (default: true; sends only the domain name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the method and that takeovers are confirmed via 'verified fingerprints', but says nothing about network dependence, rate limits, runtime, third-party exposure, or return format β gaps for a multi-source network enumeration tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense but front-loaded sentence that leads with the primary purpose before the takeover-detection secondary function. No filler, though the tail listing of providers is somewhat verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param enumeration tool with no output schema and no annotations, the description covers inputs and behavior reasonably. It omits output shape and operational constraints, but the core capability set is conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are fully documented in the schema. The description's mention of CT logs and provider CNAMEs loosely maps to the params but adds no syntax or format details beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find subdomains') and details its two data sources plus takeover detection. However, it does not distinguish itself from the sibling check_takeover, which appears to cover the same takeover capability, leaving some ambiguity about which tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative guidance. The description never mentions enumerate_dns, lookup_dns, or check_takeover, so an agent must infer routing from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_intelligence__lookup_dnsB
Perform a targeted DNS lookup for specific record types on a domain
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | DNS record type to look up | |
| domain | Yes | Domain to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and discloses almost nothing: no mention of network access, rate limits, timeouts, error behavior for non-existent domains, or caching. Only the intent of the operation is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The verb and scope appear immediately, which is exactly what an agent needs for scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The parameters are fully documented in the schema, but there is no output schema and no annotation coverage, so the agent gets no signal about what the lookup returns (records, TTLs, error shapes) or how it relates to the sibling DNS tools. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the enum on 'type' already enumerates all supported record types, so the baseline is 3. The description's 'specific record types on a domain' merely restates the two parameters without adding format or interpretation guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lookup) and resource (DNS records) plus the scope (specific record types on a domain). The word 'targeted' hints at a contrast with bulk enumeration, but no sibling such as enumerate_dns is named, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no alternative tools are mentioned. Siblings like enumerate_dns, enumerate_subdomains, check_email_security and check_takeover clearly overlap in the DNS space, yet the description gives the agent nothing to route between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
document_scanner__list_detectorsA
List the PII and credential detectors this scanner runs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. 'List' implies a safe read-only operation, but the description does not state the return shape, whether the list is static or dynamically discovered, or what detector identifiers look like. It conveys only that detectors exist to be enumerated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, scoping the resource precisely. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only enumerator with no output schema, the description adequately conveys what the tool returns (the scanner's PII and credential detectors). It is slightly thin on the form of the returned items, but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List'), resource ('detectors'), and the scope of that resource ('PII and credential detectors this scanner runs'). This cleanly distinguishes it from the sibling storage tools like document_scanner__scan_document and scan_base64, which perform scans rather than enumerate detectors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'list' β an agent would call it when it wants to know what detectors are available. However, there is no explicit when-to-use guidance, no statement of when not to call it, and no named alternative such as scan_document for actually running a scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
document_scanner__scan_base64A
Scan a document given as base64 (an attachment, an image a tool returned) for PII and credentials. The type is detected from the bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| ocr | No | OCR images and PDF pages without a text layer (default true; needs tesseract.js) | |
| data | Yes | Base64 bytes (a data: URL prefix is allowed) | |
| label | No | ||
| include | No | Opt-in detectors: ip_address, mac_address, plate_tr | |
| languages | No | Tesseract languages, default ["tur", "eng"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does add one real trait β 'the type is detected from the bytes' β clarifying that no explicit document-type argument is needed. But it says nothing about whether scanning is read-only, how large inputs are handled, or rate limits, leaving substantial behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the auto-detection note second. There is no filler and the examples earn their place by clarifying the input format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and no output schema, the description is on the thin side: it never explains the shape of findings, whether it is safe/read-only, or how the opt-in detectors interact with the default scan. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents data, ocr, include, and languages. The description adds no parameter-level detail beyond confirming base64 input, which the schema already states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Scan a document given as base64') and the target ('PII and credentials'). The 'as base64' qualifier implicitly separates it from the sibling document_scanner__scan_document, which presumably takes a path, but it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'an attachment, an image a tool returned' gives concrete scenarios where base64 input arises, which is useful routing context. However it offers no explicit when-not guidance and never compares itself to scan_document or the other scan_* siblings, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
document_scanner__scan_documentA
Find PII (TC Kimlik No, IBAN, card, passport, e-mail, phone, addressβ¦) and credentials inside a PDF, an image (screenshot, scanned page) or a text file on disk, before it is given to an LLM. PDFs are read from their text layer; images and scanned pages with OCR (Turkish and English).
| Name | Required | Description | Default |
|---|---|---|---|
| ocr | No | OCR images and PDF pages without a text layer (default true; needs tesseract.js) | |
| path | Yes | Path to a file, or a folder to scan every PDF and image in it | |
| include | No | Opt-in detectors: ip_address, mac_address, plate_tr | |
| languages | No | Tesseract languages, default ["tur", "eng"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose non-obvious mechanics: PDFs are read from the text layer, images/scanned pages go through OCR, OCR languages default to Turkish and English. It omits whether the operation is read-only/non-mutating, whether tesseract.js must be installed, and what happens on unreadable files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the detector scope and file types, followed by the parsing mechanics. No filler, no repetition, and each clause contributes distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should also orient the agent on what a scan returns (finding shape, severity, counts, error handling). It covers inputs and detection coverage well but says nothing about results, leaving the agent to invoke blind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; every parameter (path, ocr, include, languages) already has a description in the schema. The prose restates and lightly contextualizes the OCR/language behavior but adds no syntax, format, or default information the schema does not already carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Find PII... and credentials') plus concrete resource types (PDF, image, text file on disk) and a clear motivating context ('before it is given to an LLM'). The phrase 'on disk' implicitly separates it from document_scanner__scan_base64, but that sibling is never named, so differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'before it is given to an LLM', which tells the agent the intent, but there is no explicit when/when-not guidance and no routing to scan_base64 (for in-memory/base64 input) or list_detectors (to enumerate what can be found). The agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elicitation_auditor__list_patternsB
List every elicitation check this auditor runs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden, and it does convey that the listing is exhaustive ("every ... check") for this auditor only. It says nothing about side effects, permissions, ordering, or what a listed check looks like, so a read-only, low-risk profile must be assumed rather than stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clause with the verb and scope front-loaded and no filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only source of information, and it omits the shape of a returned check (name, ID, severity, category) that an agent would need to chain into a scan call. Adequate for a trivial zero-arg lister, but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. No missing parameter documentation exists to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("List") plus a bounded resource ("every elicitation check this auditor runs"). The domain noun "elicitation" separates it from the many sibling list_patterns tools belonging to other auditors, though it never explicitly contrasts itself with elicitation_auditor__scan_text/file/directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: nothing says to call this before running a scan, or that it is a discovery/introspection aid. The family naming convention lets a careful agent infer the scan-vs-list split, but the description itself provides none of it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elicitation_auditor__scan_directoryC
Recursively scan a directory of MCP server source for elicitation anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It mentions recursion but does not disclose read-only status, side effects, output format, rate limits, or error behavior for a scanner that may process large directory trees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant clauses. It communicates the core action, scope, and target efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description should explain return values and behavior. It only states what is scanned, not what findings look like or how results are returned, leaving an important gap for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters (path, exclude, include, maxFiles) have clear schema descriptions. The description adds no parameter-level information beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('scan'), resource ('directory of MCP server source'), scope ('recursively'), and target ('elicitation anti-patterns'). It does not explicitly name sibling tools like scan_file or scan_text, but the directory scope distinguishes it from single-file or text scanners.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over scan_file or scan_text, nor any prerequisites or exclusions. The description only states what the tool does, leaving the agent to infer usage from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elicitation_auditor__scan_fileB
Scan a single file for elicitation anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say the scan is read-only/non-mutating, does not describe what findings or severity output looks like, and gives no indication of cost, rate limits, or file-size constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the target (single file) front-loaded and zero padding. It is efficient, though its brevity borders on under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter scanner with no annotations and no output schema, an agent still lacks a description of what the scan returns (findings? pattern matches? severity?) and whether the operation is safe/read-only. The definition is minimally workable but not complete given the structural metadata present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single 'path' parameter is already documented as 'Absolute or relative path to the file to scan' in the schema. The description adds only the confirmation that the path targets a single file, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (scan), a specific resource (a single file), and the target domain (elicitation anti-patterns). The word 'single file' implicitly separates it from the sibling scan_text and scan_directory tools, but it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for when the content already lives on disk rather than in a string. There is no explicit when-to-use guidance, no prerequisites, and no routing to scanner vs list_patterns or directory alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elicitation_auditor__scan_textB
Scan MCP server source for elicitation anti-patterns from the 2026-07-28 spec: form mode requesting secrets or embedding a link, URL mode opened directly on a third-party authorize endpoint, credentials in the elicitation URL, a form answer used as the user's identity, and a result used without checking decline or cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does useful behavioral work by enumerating the five anti-pattern categories that constitute a finding, but says nothing about severity levels, finding output shape, or limits, which matters for a scanner with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence whose colon-delimited list consists entirely of distinct, load-bearing pattern descriptions rather than filler. Slightly dense, but every clause maps to a real detection category.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scanner with an empty annotation set and no output schema, the description covers the detection scope adequately but leaves the return contract unspecified β an agent cannot tell what a finding looks like or how 'label' surfaces in results. That is a meaningful gap given the absence of structured coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters ('label', 'content') are documented in the schema itself, so the description need not restate them. It adds no extra syntax or format guidance for either parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Scan MCP server source') and enumerates the exact elicitation anti-pattern classes it detects, which clearly sets it apart from other auditors' scan_text tools. It does not, however, distinguish itself from its own siblings scan_file/scan_directory beyond the word 'text' in the name and the 'content' parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the domain context (elicitation anti-patterns from the 2026-07-28 spec) but gives no explicit when-to-use vs when-not guidance, and never mentions the sibling alternatives scan_file, scan_directory, or list_patterns. Usage is only implied by the tool name and the requirement for a 'content' string.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llm_redteam__list_probesA
List all red-team probes this tool can run against a target LLM/chatbot, grouped by category. Every probe is canary-based (safe) β none ask the target to produce genuinely harmful content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It usefully discloses that every probe is canary-based and safe, which is key context. However, it does not explicitly state that this listing call has no side effects or that it does not execute any probes against a target.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with zero waste. The primary action and return format are front-loaded, and the safety caveat follows naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter listing tool with no output schema, the description is largely sufficient: it says what is listed and how it is grouped. It could go slightly further by noting that each probe entry includes identifying metadata, but the low complexity makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and schema coverage is 100% (empty object). Per the baseline rule for zero-param tools, a 4 is appropriate; the description adds no parameter detail because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (red-team probes), and specifies the return grouping (by category). It implicitly distinguishes itself from the sibling run_probe_suite by being a listing tool, but the phrase 'this tool can run' is slightly ambiguous about which tool actually executes probes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for discovering available probes, likely before invoking run_probe_suite. There is no explicit when-to-use statement, no mention of the sibling run tool, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llm_redteam__run_probe_suiteA
Run canary-based red-team probes against a live LLM endpoint or chatbot you control, to test whether known jailbreak/extraction/obfuscation techniques bypass its guardrails. ONLY point this at an endpoint you own or are explicitly authorized to test β every probe consumes API quota on the target. Probes never request genuinely harmful content; success is measured by whether the target reproduces a random one-time token, proving an override instruction was obeyed.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| probeIds | No | Only run these specific probe IDs (see list_probes) | |
| maxProbes | No | Cap the number of probes run, to limit API cost | |
| categories | No | Only run probes in these categories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful context beyond the annotations: every probe consumes API quota on the target, probes never request genuinely harmful content, and success is measured by reproduction of a random one-time token. The annotations declare openWorldHint/readOnlyHint=false, but the description supplies the cost and mechanism detail those hints cannot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action, followed by the safety constraint and then the mechanism. Every sentence carries distinct value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex nested target config and no output schema, the description covers what is being tested and how success is judged (canary token). It omits the shape of the returned findings, but the safety, cost, and success-criterion context make it largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with the target oneOf variants and probeIds/maxProbes/categories all documented in-schema. The description adds no parameter-level detail (e.g., how probeIds and categories interact or what maxProbes defaults to), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run) and resource (canary-based red-team probes) against a named target type (live LLM endpoint or chatbot). An agent can distinguish this from the sibling llm_redteam__list_probes without opening either schema, since it clearly describes active probing rather than enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong context: test whether jailbreak/extraction/obfuscation techniques bypass guardrails, with an explicit authorization boundary ('ONLY point this at an endpoint you own or are explicitly authorized to test'). It does not explicitly name list_probes as the discovery alternative, but the when-to-use condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__discover_shadow_mcpA
OWASP MCP09:2025 β discover MCP client configs in well-known host paths (Cursor, Claude Desktop, Windsurf, VS Code, Claude Code) and flag servers that are not on an organization allowlist (Shadow MCP). Does not start any MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| home | No | Override home directory used to resolve well-known config paths | |
| allowlist | No | JSON allowlist: {"names":["filesystem"],"packages":["@modelcontextprotocol/server-filesystem"],"hosts":["mcp.example.com"]} or line form name:/package:/host: | |
| includeContentAudit | No | Also run the normal config content checks on each discovered file (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses that it does not start any MCP server, but it does not state whether it modifies files, whether it only reads config contents, or what permissions or side effects are involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: the first front-loads the OWASP category, action, scope, hosts, and flagging logic; the second adds a key safety constraint. The structure is appropriately sized for a discovery tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's purpose and a key safety behavior, but with no output schema and no annotations, it leaves the return shape and behavioral boundaries unexplained. An agent can tell what the tool does but not exactly what findings it produces or how they are structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (home, allowlist, includeContentAudit) are already documented in the input schema. The description references the organization allowlist at a high level but adds no syntax or format details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (discover), resource (MCP client configs), scope (well-known host paths with named hosts), and outcome (flag non-allowlisted servers as Shadow MCP). This clearly distinguishes it from siblings like scan_file and list_host_config_paths, which cover narrower or different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The OWASP MCP09:2025 reference and 'Shadow MCP' framing imply the use case (auditing MCP client configs against an allowlist), but the description never states when to choose this tool over siblings such as scan_inventory, scan_directory, or list_host_config_paths. No explicit exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__list_host_config_pathsA
List the well-known MCP client config paths this auditor checks during shadow (MCP09) discovery on the current OS.
| Name | Required | Description | Default |
|---|---|---|---|
| home | No | Override home directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read-only, non-destructive operation and it discloses the OS-scoped, MCP09-relevant nature of the paths, but it does not clarify whether it returns only paths that exist on disk or the canonical candidate list, nor any return/format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the verb and resource come first and the qualifier follows. Nothing needs trimming or reordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema, one-parameter tool the description covers the essentials of what it lists, but it leaves the return shape and the distinction between 'checked' vs 'existing' paths unstated. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'home' parameter ('Override home directory') is already fully documented in the schema. The description adds no further meaning about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (well-known MCP client config paths), with scope qualifiers ('on the current OS') and ties itself to shadow MCP09 discovery. It is clearly a discovery/listing tool, distinguishable from scan_* siblings, though it does not name which sibling it complements (e.g., discover_shadow_mcp).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'this auditor checks during shadow (MCP09) discovery,' which suggests it is a reconnaissance step before scanning, but there is no explicit when-to-use, when-not-to-use, or named alternative. An agent must infer its place in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__list_patternsA
List the MCP config, agent skill, shadow-MCP discovery, and cross-server shadowing checks, with their OWASP MCP Top 10 tags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return content (each check carries its OWASP MCP Top 10 tags), which is useful, but it does not state that the call is read-only, requires no auth, or has side effects, and there is no output schema to fall back on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the verb first, then the four check categories, then the tagging detail. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter enumeration tool with no annotations or output schema, the description conveys what will be listed and that results are OWASP-tagged. Only the exact fields returned (e.g., pattern IDs vs. human-readable names) are left unspecified, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to document beyond what the empty schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb (List) and the specific resource: the MCP config, agent skill, shadow-MCP discovery, and cross-server shadowing checks for this auditor, plus the OWASP tagging. It is clearer than a bare 'list patterns', though it never names a sibling to distinguish itself from the many other *_list_patterns tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative is given. With roughly thirty sibling list_patterns tools in the environment, the description leaves the agent to infer from the tool name alone that this enumerates this auditor's checks rather than another auditor's.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__scan_config_textA
Scan an MCP client config JSON string (Cursor mcp.json, Claude Desktop, Windsurf, or VS Code) for unpinned packages, secrets, wildcard auto-approve, unauthenticated remote endpoints, and typosquats.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional filename shown in findings | |
| content | Yes | Raw JSON config |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the detection taxonomy the agent will get back, and 'Scan ... for' strongly implies a non-destructive read. However it says nothing about whether the content is executed, network access, auth needs, or result shape, leaving real behavioral gaps for an unaided tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the verb and input first and the check list after. Every listed item (unpinned packages, secrets, wildcard auto-approve, unauthenticated endpoints, typosquats) earns its place as distinct scope information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the enumerated detection categories usefully stand in for describing what findings are produced. With no annotations and a trivial two-parameter schema, the description is nearly sufficient; only return format, severity, and pagination are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'label' and 'content' are already documented. The description's 'JSON string' phrasing loosely corroborates the content parameter but adds no format, size, or parsing constraints beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) and resource (an MCP client config JSON string), naming the concrete client formats it accepts (Cursor mcp.json, Claude Desktop, Windsurf, VS Code) and enumerating the defect classes it targets. The 'JSON string' input hint implicitly separates it from the sibling scan_file/scan_directory tools without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The list of detection categories implies when the tool is useful (auditing MCP client configs), but there is no explicit when-to-use statement, no prerequisites, and no routing to alternatives such as scan_file for a path or scan_directory for a tree. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__scan_directoryB
Find mcp.json, mcp_config.json, claude_desktop_config.json, and SKILL.md under a directory and audit each one. A directory scan also compares skill names. Does not start any MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory to search | |
| exclude | No | Skip paths containing one of these strings | |
| maxFiles | No | Maximum files to consider (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose two useful traits: it only reads/audits (no server startup) and a directory scan additionally compares skill names. It omits other behavioral facts an agent would want β whether scanning is recursive, what happens on huge trees (it caps at maxFiles), and whether anything is mutated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and target file list, with zero filler. The 'compares skill names' clause is slightly abrupt but still earns its place as a behavioral note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema scan tool with a fully documented 3-param schema, the description covers what it targets and that it does not execute servers. It leaves gaps around recursion scope and what an audit returns, which matters for an agent deciding between this and the file/inventory variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (path, exclude, maxFiles) are documented in the schema. The description adds no parameter-level detail such as recursion behavior or how exclude/maxFiles interact with the scan, so this is the baseline case where the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb-plus-resource: find named config files (mcp.json, mcp_config.json, claude_desktop_config.json, SKILL.md) under a directory and audit each one, plus an extra behavior (comparing skill names). This clearly distinguishes it from sibling file/text scanners in the same family, but it does not explicitly contrast itself with mcp_config_auditor__scan_file or scan_inventory, so it stops short of full sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (call it when you have a directory rather than a single file), and the negative clause 'Does not start any MCP server' rules out an expected-but-unwanted behavior. However, it never states when to prefer this over scan_file, scan_text, or scan_inventory for the same config content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__scan_fileA
Scan one MCP client config file, or a SKILL.md agent skill when the file has that name.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the config file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose one genuinely behavioral trait beyond the schema: the tool switches to skill-scanning mode based on the filename (SKILL.md). However, it omits the read-only nature, what the scan produces, and any error/permission behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, dense sentence with zero filler, and the primary purpose ('Scan one MCP client config file') is front-loaded ahead of the qualifying clause about SKILL.md.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description would ideally explain what the scan returns or detects (e.g., risky MCP config patterns). It fully covers the simple one-argument call signature but leaves the result semantics unstated, making it minimum viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single documented 'path' parameter, so the baseline is 3. The description hints that the path may point either to a config file or to a SKILL.md, but adds no format, extension, or path-resolution detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Scan') and a specific resource ('one MCP client config file'), and further clarifies the alternate target ('a SKILL.md agent skill'). This distinguishes it from scan_directory, which implies scanning many files, but it does not explicitly name the sibling alternatives (scan_config_text, scan_skill_text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'one ... file' suggests this is the single-file entry point versus the directory variant, but the description never states when to choose this over mcp_config_auditor__scan_config_text or scan_skill_text, nor any prerequisites. Adequate but leaves the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__scan_inventoryA
Detect cross-server tool shadowing from an inventory of tool catalogs. Pass the tool names and descriptions already collected from each installed server. This tool does not connect to those servers.
| Name | Required | Description | Default |
|---|---|---|---|
| inventory | Yes | JSON: {"servers":[{"name":"github","tools":[{"name":"create_issue","description":"..."}]}]} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool 'does not connect to those servers', i.e. it is a pure offline computation with no network side effects, but it says nothing about determinism, cost, or what the analysis produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the detection goal, then the input expectation, then the non-connection caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, required input provenance, and the key behavioral caveat for a one-parameter tool. With no output schema, a sentence on the shape of the shadowing findings would have closed the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter carries an inline JSON example, so the schema already fully defines the input. The description reinforces what belongs in the inventory (tool names and descriptions per server) but adds no syntax or format detail beyond it. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Detect cross-server tool shadowing from an inventory of tool catalogs.' The input mode (pre-collected inventory rather than live servers) distinguishes it from the many scan_file/scan_directory siblings and from discover_shadow_mcp, but it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('Pass the tool names and descriptions already collected from each installed server'), which implies you must have already gathered the catalogs. However, it names no alternative tools and states no explicit when-not, leaving the routing decision between this and discover_shadow_mcp or scan_file to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_config_auditor__scan_skill_textA
Scan one agent SKILL.md (YAML frontmatter plus body) for unrestricted allowed-tools, instruction override, credential file reads, and literal secrets. Name collisions across skills require a directory scan.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional filename shown in findings | |
| content | Yes | Raw SKILL.md text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the four detection categories, which is useful behavioral context, but says nothing about output/findings structure, whether the scan is purely read-only, or any safety/authorization profile. For a scanner this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences. The first front-loads what is scanned and what is detected; the second immediately handles the alternative routing case. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for selecting and invoking the tool: it names the input type and the detection targets. Because there is no output schema, it could say more about the findings format, but the label parameter's schema note ('shown in findings') partially covers that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no parameter-specific syntax or format details beyond implying that 'content' is raw SKILL.md text, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Scan one agent SKILL.md (YAML frontmatter plus body)'. It also enumerates the exact issue classes it detects, and its closing sentence distinguishes it from the directory-scan sibling by noting when name collisions require the latter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames this as a single-file text scan and explicitly names the alternative for cross-skill name collisions: 'Name collisions across skills require a directory scan.' It does not explicitly contrast with scan_file or scan_config_text, but the single-SKILL.md scope is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_server_auditor__list_patternsB
List all MCP server security patterns that the auditor can detect, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose that results are 'grouped by category' and that this is a pure enumeration of detectable patterns rather than a scan. It omits any return format, pattern ID scheme, or severity/confidence metadata an agent would want before building on the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler, front-loading the verb and resource and closing with the grouping behavior. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only source of return-value information, and 'grouped by category' is a thin hint about shape. It does not say what fields each pattern entry carries, which limits how confidently an agent can consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the schema itself is trivially complete. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('MCP server security patterns that the auditor can detect'), scoped to this auditor's domain. This distinguishes it from the numerous sibling scan_* tools, though it does not explicitly contrast itself with mcp_server_auditor__scan_file/scan_directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no stated workflow (e.g., 'call this first to learn pattern IDs before scanning'). Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_server_auditor__scan_directoryB
Recursively scan an MCP server's codebase for insecure tool-definition patterns. Automatically skips node_modules, .git, dist, and binary files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings (e.g. [".ts", "src/tools"]) | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses an automatic behavior (skipping node_modules, .git, dist, binaries), which an agent could not learn from the schema. It leaves unstated whether it is a read-only operation, any resource/time limits, and what the scan emits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the skip behavior appended as useful detail. No filler; slightly under-developed for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a directory scan with no output schema, the description never indicates what the scan produces (findings, counts, file list) or the result shape. The parameter and skip story is complete, but the return-value gap keeps it at a minimum-viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no syntax or format nuance for path/include/exclude/maxFiles, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (recursively scan), clear resource (an MCP server's codebase) and a precise target (insecure tool-definition patterns). It does not explicitly distinguish itself from the sibling scan_file, but the directory scope is unambiguous from the name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'recursively scan ... codebase' and the auto-skip behavior, which signals this is the whole-project entry point. However, there is no explicit statement of when to choose this over scan_file or list_patterns, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_server_auditor__scan_fileB
Scan a single file for insecure MCP server/tool-definition patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it reveals almost nothing: no read-only assurance, no indication of what is reported, whether findings are persisted, or any performance/rate considerations. 'Scan' implies a non-mutating read but this is inferred, not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the action, scope, and target domain all appear before any dependent clause. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should say more about what the scan produces and which pattern families it covers (a sibling list_patterns implies a pattern catalog exists). Adequate to invoke, but an agent cannot predict the shape or breadth of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'path' parameter is fully documented in the schema. The description adds no format, size, or file-type constraints beyond what the schema already says; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scan') on a specific resource ('a single file') restricted to 'insecure MCP server/tool-definition patterns'. The 'single file' scope implicitly separates it from sibling scan_directory and scan_text, though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'single file' implies when this tool applies versus scan_directory or scan_text, but there is no explicit when/when-not guidance and no mention of the sibling mcp_config_auditor__scan_file that overlaps in surface domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_server_auditor__scan_textB
Scan a text string or code snippet for insecure MCP server/tool-definition patterns (excessive-agency tool names, shell/eval/SQL/SSRF sinks fed by raw tool input, overly permissive schemas, hardcoded secrets, wildcard CORS).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose detection scope, which tells the agent what kinds of findings to expect, but it never states that the operation is read-only/non-mutating, that it performs static analysis only (no execution), or anything about output shape or limits. Reasonable detection context, but key behavioral facts for a scanner are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the target (text/code snippet) before the parenthetical detection list β dense and waste-free. Slightly list-heavy in one breath, but every clause identifies a real pattern category rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter, no-annotations, no-output-schema tool the description is adequate on the 'what it detects' axis. It leaves open what a returned finding looks like and how it differs from sibling scan_text auditors, which an agent picking among ~20 similar scanners would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both `content` and the optional `label` are documented in the schema), so the baseline is 3. The description adds no syntax, size, or format guidance for `content` (e.g. whether a full file or a snippet is expected), so it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Scan) plus resource (text string/code snippet) and an explicit enumeration of what it looks for (excessive-agency names, shell/eval/SQL/SSRF sinks, permissive schemas, hardcoded secrets, wildcard CORS). That pattern list meaningfully narrows it against the many sibling scanners. It does not, however, differentiate itself from other *_auditor__scan_text siblings (tool_poisoning, a2a, elicitation), which share the identical verb+resource shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must infer that this is the tool for text already in hand versus scan_file/scan_directory. There is no explicit 'when to use this over X' and no stated prerequisite (e.g. the text must be an MCP server/tool definition, which is implied but never said).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_poisoning_scanner__list_patternsA
List every memory-write and memory-readback pattern this scanner detects, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does reveal a behavioral trait β results are grouped by category β and the verb 'List' implies a read-only, non-mutating operation with no side effects. It stops short of stating whether the listing is static or configurable, whether it can be paginated, or what identifiers it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler: verb, scope, and output grouping all in one clause. Nothing is redundant with the schema and nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read-only listing with no output schema, the description supplies the essential facts: what is listed and that it is grouped by category. It could go slightly further by describing the shape of each entry (e.g., pattern names/IDs usable elsewhere), but the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object, so there are no parameter semantics to document. The description correctly refrains from inventing inputs, matching the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (List) and a specific resource (the memory-write and memory-readback patterns this scanner detects), so an agent knows it enumerates detection rules rather than scanning content. It does not explicitly differentiate itself from the many other `*__list_patterns` siblings, though 'this scanner' plus the family prefix scopes it adequately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement and no mention of the companion tools (scan_text, scan_file, scan_directory) that would frame this as a discovery step. Usage is only implicit from the word 'List'; nothing tells the agent when this is preferable to running a scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_poisoning_scanner__scan_directoryC
Recursively scan a directory of agent source code for memory-poisoning patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it does not state that the tool is read-only, what permissions the path needs, how symlinks/large trees are handled, or what a result looks like. 'Recursively scan' is the only behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word (recursive, directory, agent source code, memory-poisoning) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description omits what findings are returned, how to interpret matches, and how it relates to the file/text variants. Too thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (path, exclude, include, maxFiles all documented inline), so the schema does the heavy lifting. The description adds nothing about parameter behavior such as substring-match semantics, which is the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (directory of agent source code), scope (recursive) and target class (memory-poisoning patterns). The 'directory' scope implicitly differentiates it from the sibling memory_poisoning_scanner__scan_file and scan_text tools, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'recursively' hints at directory-level use, but there is no explicit when-to-use guidance, no mention of when to prefer scan_file or scan_text, and no prerequisites (e.g., readable path, size expectations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_poisoning_scanner__scan_fileB
Scan a single file for memory-write and memory-readback poisoning patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Scan' implies a non-destructive read and names the detection categories, but it says nothing about the output shape, whether the file is modified, error behavior on unreadable paths, or any limits. For a tool with zero annotation coverage this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action, scope, and detection target front-loaded. No filler and nothing that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter scanner this is minimally adequate, but with no output schema and no annotations, the description should at least hint at what a scan produces (findings format, severity, etc.) and confirm the read-only nature. It leaves those to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single path parameter is already documented in the schema as 'Absolute or relative path to the file to scan'. The description adds no additional meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan), a specific resource (a single file), and the exact detection domain (memory-write and memory-readback poisoning patterns). The 'single file' scope implicitly differentiates it from the sibling scan_text and scan_directory tools, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'single file' phrasing implies when to use this over scan_text or scan_directory, but there is no explicit when-to-use guidance, no prerequisites, and no named alternative. Usage is inferable from the family naming convention rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_poisoning_scanner__scan_textB
Scan agent code for memory-poisoning risks: untrusted input written into persistent, cross-session memory (MemGPT-style archival/core memory, or a vector store used as a long-term knowledge base) without visible sanitization, and memory retrievals fed into a system/assistant-role message or prompt template as trusted context.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does convey meaningful detection semantics (what counts as memory poisoning, including MemGPT archival/core memory and vector-store knowledge bases). However, it omits that this is a safe read-only operation, how findings are surfaced, or any limits on input size, so the behavioral picture is only partially filled in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single dense sentence but it is front-loaded with the verb and risk class, and each clause (the two detection categories, the parenthetical memory-system examples) contributes real information. It is not padded, though the length is on the heavier side for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter scanner whose input schema is fully described, the definition adequately covers what is scanned but says nothing about the return shape. With no output schema present, the agent has no signal as to whether it receives findings, a severity list, or a pass/fail verdict, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'label' (optional filename for findings) and 'content' (the code to scan) are already documented in the schema. The description adds no additional parameter syntax or format detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Scan agent code') with a narrowly defined risk class ('memory-poisoning') and then enumerates the two concrete detection targets: unsanitized untrusted input written to persistent cross-session memory, and memory retrievals injected into system/assistant-role prompts. This is far more specific than a generic 'scan' tool and lets an agent distinguish it from the file/directory variants in the same family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the scan looks for but never states when to invoke this text variant versus scan_file, scan_directory, or list_patterns. There is no when-to-use, when-not-to-use, or alternative routing guidance, leaving the agent to infer usage purely from the name and parameter set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_scanner__list_patternsA
List every dangerous Python global (module.function) this scanner treats as a red flag when found referenced inside a pickled model file, grouped by risk category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. 'List' implies a read-only enumeration, and 'grouped by risk category' discloses something about the result shape, but there is no explicit statement of read-only safety, no auth/caveat notes, and no fuller description of the returned payload. It adds some behavioral context but not richly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the key scope (dangerous Python globals in pickled model files) and grouping front-loaded. Every clause earns its place; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with no output schema, the description covers what is listed and how it is organized (by risk category). It stops short of detailing the return structure or any caveats, but is largely sufficient to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema has nothing to document and there is no parameter semantics to add. Baseline of 4 applies for a no-argument tool; the description correctly does not invent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) plus a precisely scoped resource: dangerous Python globals (module.function) flagged when referenced inside a pickled model file, and grouped by risk category. This clearly distinguishes it from the model_scanner__scan_file and scan_directory siblings, which scan rather than enumerate the rule set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing ('this scanner treats as a red flag') implies the tool is used to inspect the scanner's rule set, likely before or to interpret scan results, but no explicit when-to-use or when-not guidance is given. There is no direction to the scan_* siblings or any statement of prerequisites. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_scanner__scan_directoryA
Recursively scan a directory for ML model files (.pt, .pth, .ckpt, .pkl, .pickle, .bin, .safetensors, .h5, .hdf5, .keras, .onnx) and report supply-chain risks in each. Automatically skips node_modules, .git, venv, and other non-model directories.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 2000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does useful work: it discloses the recursion behavior, the recognized extensions, and the automatic skip list (node_modules, .git, venv), which the schema does not state. It omits what the risk report actually contains and whether any filesystem modification occurs, but for a read-style scanner this is solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action; the extension roster is long but earns its place because it defines what the include/exclude path matching applies to. Slightly list-heavy but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a directory scanner with no output schema and no annotations, the description covers the action, scope, and implicit exclusions adequately. The remaining gap β what 'supply-chain risks' are reported and in what shape β is minor for a scan tool, though an agent gets no picture of the findings format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented, giving a baseline of 3. The description reinforces which paths matter (the extension list, the default skips) but adds no syntax or matching semantics beyond what the schema states for include/exclude.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (recursively scan a directory for ML model files) and enumerates the exact extensions it recognizes, so an agent immediately knows the scope. The directory-vs-file distinction from model_scanner__scan_file is unambiguous from the definition itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied β scan a directory when you want to sweep for model files and supply-chain risks β but the description never states when to prefer this over model_scanner__scan_file or model_scanner__list_patterns, nor any prerequisites. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_scanner__scan_fileA
Scan a single ML model file for supply-chain risks: dangerous Python globals reachable during pickle deserialization (os/subprocess/eval/socket/etc, including inside PyTorch's zip checkpoint container), a malformed or disguised .safetensors header, a Keras Lambda-layer RCE pattern in .h5/.keras files, or a path-traversal external_data reference in .onnx files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the model file (.pt, .pth, .ckpt, .pkl, .pickle, .bin, .safetensors, .h5, .hdf5, .keras, .onnx) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the concrete detection logic (pickle globals inside PyTorch zip containers, malformed safetensors headers, Keras Lambda RCE, ONNX path traversal). It does not state whether the operation is read-only, is side-effect free, or whether findings carry severity, but the detection behavior is unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that puts the verb and scope first, then the risk catalogue. The risk list is dense but each item earns its place by naming a concrete format-specific attack, though the sentence is long enough to strain readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scanner with no output schema, the description should hint at what a finding looks like (categories, severity, counts), and it does not. It covers what is checked but leaves the result shape entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and the schema already documents it at 100% coverage, including the accepted file extensions. The description adds no syntax, path-resolution, or format guidance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (a single ML model file) and enumerates the exact risk classes it detects. It is clearly distinguishable from siblings like model_scanner__scan_directory and model_scanner__list_patterns because it scopes itself to one file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a single ML model file' implies when to use it, and the enumerated checks imply the target artifacts. However, it never explicitly says to use this instead of scan_directory when you have one file, nor does it name alternatives or state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_auditor__list_patternsB
List every OAuth/token-handling pattern this auditor detects, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose one genuinely useful trait beyond the schema: results are 'grouped by category'. However, it says nothing about whether the catalog is static or configurable, its size, or the shape of a pattern entry, and no output schema exists to fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded with the verb and resource, and ending with the one structural detail that matters (category grouping). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing this is close to adequate, and the grouping note partially compensates for the absent output schema. Still, an agent cannot tell what a returned pattern record contains (id, name, severity, remediation), which is the main thing the description would need to add in the absence of a return schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate, and it correctly avoids inventing parameter language.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('List') and a specific resource ('every OAuth/token-handling pattern this auditor detects'), scoped to this auditor rather than generic patterns. It contrasts implicitly with the scan_text/scan_file/scan_directory siblings by being a catalog listing rather than a scan, though it never states that contrast outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no named alternative. The natural use case (discover which patterns exist before or alongside running scan_file/scan_directory) is left entirely to inference, matching the MID calibration case where 'no when-to-use' earned a 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_auditor__scan_directoryC
Recursively scan a directory of MCP server source for OAuth/token-handling anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that the scan is recursive; it says nothing about read-only/non-destructive nature, permissions, output or findings format, or limits beyond what the schema implies. 'Scan' weakly implies a read operation but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though arguably too terse given the tool has four parameters and no annotations to lean on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex scanner with four params and no output schema, the definition is minimally adequate. It does not explain how it relates to its scan_file/scan_text/list_patterns siblings or what a caller should expect back, leaving real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with path, exclude, include, and maxFiles all documented in the schema itself, so the baseline is 3. The description adds no additional meaning beyond the schema for any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (a directory of MCP server source), and the target of interest (OAuth/token-handling anti-patterns). The word 'directory' distinguishes it from the sibling scan_file and scan_text tools, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, no prerequisites, and does not name scan_file or scan_text as the alternatives for single-file or raw-text inputs. The only hint is the word 'directory', leaving the agent to infer the selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_auditor__scan_fileB
Scan a single file for OAuth/token-handling anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing beyond the purpose. It does not state that the operation is read-only, whether the file is modified, what the findings look like, or any rate/size constraints. Only the detection target is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb, scope, and detection target front-loaded and zero wasted words. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter scanner with no output schema and no annotations, the description tells the agent what it scans and for what, which is the minimum viable. It omits the return shape (findings list? severity? empty on clean?) and the safety profile, leaving real gaps an agent would want covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% β the single 'path' parameter is fully documented in the schema as 'Absolute or relative path to the file to scan'. The description adds no syntax, format, or constraint details beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('scan'), a clear resource ('a single file'), and a defined target domain ('OAuth/token-handling anti-patterns'). The 'single file' qualifier distinguishes it from the sibling oauth_auditor__scan_directory and scan_text, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'a single file' signals you should reach for this rather than the directory or text variants, but there is no explicit when-to-use statement, no prerequisites, and no exclusions. An agent must infer the routing from the scope noun alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_auditor__scan_textA
Scan an MCP server's authorization code for OAuth 2.1 anti-patterns named in the MCP spec's own Security Considerations: token passthrough (forwarding a client's token to a downstream API unchanged), missing audience validation on JWT verification, OAuth/OIDC discovery SSRF, missing PKCE, loose redirect_uri validation, and hardcoded client secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the detection set in useful detail, which is real value, but says nothing about how the scan behaves: severity/confidence of findings, whether it is a static pattern match versus semantic analysis, content size limits, or what the (undeclared) result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence gives the purpose first and then the detection taxonomy, with a short parenthetical gloss only where the term 'token passthrough' would otherwise be opaque. No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should ideally indicate the shape and meaning of results (findings, severities, locations) and any input-size constraints. The detection coverage is thorough, but the return contract is entirely absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% ('The code content to scan', 'Optional label shown in findings'), so the schema already explains both parameters. The description clarifies that the input is authorization code rather than arbitrary text, but adds no syntax, format, or size constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (Scan), resource (an MCP server's authorization code), and the exact detection scope (OAuth 2.1 anti-patterns from the MCP spec's Security Considerations). The enumerated pattern classes make the tool's remit unambiguous and largely separate it from generic code scanners in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The domain scoping ('an MCP server's authorization code') implies when this scanner applies, but there is no explicit guidance on choosing it over oauth_auditor__scan_file, oauth_auditor__scan_directory, or oauth_auditor__list_patterns, and no preconditions or when-not conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
owasp_scan__list_owasp_coverageA
List OWASP MCP Top 10 categories and which GuardBee scanners cover them in this meta-scan
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is a read-only mapping/coverage listing with no parameters, and the nature of the operation (listing categories and coverage) implies no side effects. It does not mention whether the coverage map is static or reflects configuration, which would be useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence with no filler; the verb and resource are front-loaded and the scope qualifier ("in this meta-scan") is appended efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and zero parameters, the description adequately conveys what the agent gets back (OWASP categories mapped to covering scanners). It is complete for a trivial listing tool, though it could state whether the coverage map is fixed or environment-dependent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to document and no schema gap to compensate for. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ("List") and names the resource ("OWASP MCP Top 10 categories") plus the payload ("which GuardBee scanners cover them"). It is clear enough to distinguish from the scan-oriented siblings (owasp_scan_path, owasp_scan_live), though it doesn't explicitly contrast with owasp_scan_catalog, which sounds adjacent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "in this meta-scan" implies this is a reference/coverage-lookup tool rather than a scanner, which hints at when to use it. However, there is no explicit "use this when" statement, no stated prerequisites, and no named alternative, so the guidance remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
owasp_scan__owasp_scan_catalogB
Audit a tools/list JSON dump for toxic flows and tool-description poisoning (MCP03/MCP10).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| catalog | Yes | JSON string: { tools: [...] } or a bare tools array |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It usefully discloses the taxonomy it reports against (MCP03/MCP10), which goes beyond a bare restatement, but it never states that the operation is read-only/analysis-only, what the output looks like, or how results are graded. That is a meaningful gap for a scanner with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and target come first and the qualifier follows. It is efficient, though the brevity leans toward under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a catalog-audit tool with no output schema, no annotations, and an undocumented 'label' parameter, the description stops at naming the target and the two OWASP categories. An agent still lacks the return shape, severity semantics, and the rule for choosing this over owasp_scan_path/owasp_scan_live, leaving it only minimally callable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'catalog' is documented in the schema (JSON string of { tools: [...] } or a bare array), while 'label' has no description anywhere. The description repeats the input shape ('tools/list JSON dump') but adds no meaning to either parameter and says nothing about what 'label' controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Audit), a specific resource (a tools/list JSON dump), and the exact defect classes it hunts (toxic flows, tool-description poisoning, MCP03/MCP10). It implicitly separates itself from siblings that take a filesystem path or a live endpoint, but never names those siblings to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the input type: if you hold a tools/list catalog JSON, this is the tool. There is no explicit when-to-use, no prerequisites, and no routing against the near-identical siblings (toxic_flow_auditor__audit_catalog, tool_poisoning_scanner__*) or the other owasp_scan entry points.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
owasp_scan__owasp_scan_liveB
Connect to a live MCP server (stdio or HTTP), call tools/list, then grade toxic-flow + tool-poisoning (MCP03/MCP10).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Streamable HTTP MCP URL | |
| args | No | ||
| command | No | stdio command to spawn |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose non-trivial behavior: it will make outbound connections, spawn a stdio process, and issue a tools/list call to a live server. That process-spawning/network-initiation trait is valuable. However it says nothing about permissions, timeouts, side effects, or rate limits, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the connect-then-scan sequence with no filler. It is efficient, though slightly compressed for the amount of behavior it compresses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should ideally hint at the return shape; 'grade toxic-flow + tool-poisoning' vaguely implies graded findings but gives no detail. The stdio/HTTP and tools/list mechanics are covered, leaving output and permission expectations under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: url ('Streamable HTTP MCP URL') and command ('stdio command to spawn') are documented, but args is undocumented in both schema and description. The description adds meaning by tying 'stdio or HTTP' to command/url, matching the baseline for a partially-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb chain (connect, call tools/list, grade) against a specific resource (a live MCP server over stdio or HTTP) and names the exact checks (toxic-flow + tool-poisoning, MCP03/MCP10). The word 'live' implicitly separates it from owasp_scan__owasp_scan_path and owasp_scan__owasp_scan_catalog, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clarifies the two transport modes (stdio command vs HTTP URL), which is genuine usage context, but gives no explicit when-to-use guidance or rule for choosing this tool over owasp_scan_path or owasp_scan_catalog. Usage is only implied by 'live'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
owasp_scan__owasp_scan_pathA
Run a unified OWASP MCP Top 10 scan over a filesystem path β orchestrates secret, server, oauth, audit-gap, context-oversharing, toxic-flow, and tool-poisoning auditors; returns AβF grade.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory to scan | |
| maxFiles | No | ||
| allowlistPath | No | Allowlist file for Shadow MCP discover | |
| discoverShadow | No | Also discover Shadow MCP on this host (MCP09) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the orchestration behavior (seven named auditors) and the graded output, which is genuine value. It omits the scan's side-effect profile, cost/latency implications of a broad path scan, and what discoverShadow does beyond naming MCP09.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the core action and scope before the auditor list and return value. Zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter orchestration tool with no output schema and no annotations, the description covers the 'what' and the return grade but leaves the behavioral envelope thin β no mention of whether scanning is read-only, how maxFiles bounds the scan, or what a Shadow MCP discovery requires on the host.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so path, allowlistPath, and discoverShadow are already documented in the schema, and the description adds no syntax, format, or default information for them. maxFiles is undocumented in both places, so the description does not compensate for that gap; this sits at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Run') plus a precisely scoped resource ('unified OWASP MCP Top 10 scan over a filesystem path'), and it enumerates the seven sub-auditors it orchestrates and the AβF grade it returns. This is clearly distinguishable from owasp_scan_live and owasp_scan_catalog by scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'over a filesystem path' implies the trigger condition and implicitly separates it from the live and catalog siblings, but there is no explicit when-to-use/when-not-to-use statement or guidance on choosing this aggregate over running individual auditors like secret_scanner or oauth_auditor directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_injection_scanner__list_patternsA
List all indirect prompt injection patterns that the scanner can detect, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; it does disclose the primary behavioral trait that results are grouped by category. Beyond that it says nothing about ordering, completeness of the pattern set, or size/volume of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; the verb, scope, and grouping behavior all appear before the description ends.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with no output schema, the description is nearly sufficient β only return format details (field names per pattern, category list) are missing, and those are minor for a discovery call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is empty and 100% covered. The baseline of 4 for a zero-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (indirect prompt injection detection patterns) with a scope qualifier ('that the scanner can detect') and an output-shape hint ('grouped by category'). It is distinguishable from the scan_text/scan_file/scan_directory siblings, though it never explicitly names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a discovery/reference call to learn what the scanner can find before running a scan. There is no explicit when-to-use, no exclusion of the sibling scan_* tools, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_injection_scanner__scan_directoryA
Recursively scan a directory β e.g. a RAG knowledge base or a corpus of scraped pages β for indirect prompt injection payloads. Automatically skips node_modules, .git, dist, and binary files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings (e.g. [".md", "knowledge-base/"]) | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses automated skip behavior (node_modules, .git, dist, binary files), which is genuine context beyond the schema. But it says nothing about output format, permissions, rate limits, or the default 5000-file cap behavioral implication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the core action front-loaded before the secondary skip behavior. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a directory scanner with no annotations and no output schema, the description covers purpose and one behavioral quirk adequately. It is nearly complete, though an agent might still want to know the response shape or whether findings include file paths and line numbers. Not a serious gap for a scan tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (path, exclude, include, maxFiles) are already documented in the schema. The description adds no syntax, format, or interaction details beyond what the schema provides, so the baseline of 3 applies. The auto-skip note is adjacent to but not a clarification of the exclude parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), resource (directory), scope (recursively), and threat target (indirect prompt injection payloads). The purpose is clear and the 'directory' scope implicitly distinguishes it from scan_file/scan_text siblings, but it never names them explicitly, so differentiation relies on the reader inferring from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples 'a RAG knowledge base or a corpus of scraped pages' imply appropriate contexts for a bulk directory scan, which is better than nothing. However, there is no explicit when-to-use-vs-alternatives guidance (e.g. 'use this instead of scan_file when you have many files') and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_injection_scanner__scan_fileB
Scan a single file (a knowledge-base document, an HTML page, extracted text) for indirect prompt injection payloads
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says what the tool scans for, but does not state that it is read-only, whether it modifies or stores contents, or what the result looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no redundant clauses. The parenthetical file-type examples are compact and useful rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter scanner the purpose is clear, but with no annotations and no output schema the description omits safety context (read-only status) and return information. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'path' parameter, so the schema already documents its meaning. The description adds file-type examples but no additional path semantics. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Scan'), resource ('a single file'), and target ('indirect prompt injection payloads'). The 'single file' scope implicitly distinguishes it from sibling scan_directory and scan_text, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for file-based scanning by specifying 'a single file' and giving examples of file types, but it does not state when to choose this tool over scan_text or scan_directory, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_injection_scanner__scan_textB
Scan a text string β a RAG chunk, a scraped web page, a document, a tool result β for indirect prompt injection payloads (instruction-override phrases, spoofed chat-template roles, hidden/invisible text, content addressing 'the AI' directly, data-exfiltration attempts) before it reaches a model's context.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. source URL or filename) | |
| content | Yes | The text content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It largely rises to that by disclosing the concrete detection classes (instruction-override, spoofed chat-template roles, hidden/invisible text, AI-directed content, exfiltration), which is real behavioral substance. It does not disclose what a scan returns, whether findings are blocking, whether it is heuristic/read-only, or any permission needs, and there is no output schema to fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and no filler; the em-dash list of input types earns its place by narrowing scope. The parenthetical detection list is long but informative rather than redundant, so it is dense but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter scanner with no annotations and no output schema, the definition covers purpose and detection scope adequately but omits the return shape and any safety/heuristic caveats. Those gaps are tolerable but leave the agent guessing about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented and the baseline is 3. The description adds some value by characterizing what 'content' typically holds (RAG chunk, web page, document, tool result), but says nothing about the optional 'label' parameter or any format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (scan) plus resource (a text string), with the input types enumerated (RAG chunk, scraped page, document, tool result) and the detection taxonomy spelled out, which meaningfully separates it from memory_poisoning/tool_poisoning scanners. It stops short of naming its own siblings (scan_file, scan_directory) or stating that file inputs belong elsewhere, so the routing is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before it reaches a model's context' implies the intended pre-ingestion use case, which is genuine usage context. However there is no explicit when-to-use/when-not, no prerequisites, and no routing to alternatives such as scan_file or scan_directory for non-string inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_leak_scanner__list_patternsA
List every credential/PII pattern this scanner detects, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does disclose one behavioral trait beyond the name: results are 'grouped by category.' It is silent on read-only nature, permission requirements, and result size, though for a zero-argument catalog tool the practical risk is low.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope qualifier ('every credential/PII pattern this scanner detects') and the output shape ('grouped by category') both earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only source for return shape, and it supplies just one detail (categorization). It does not indicate what each entry contains (pattern name, category, severity, regex) or how large the catalog is, leaving a modest but real gap for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate; the baseline for a zero-parameter tool is 4. No parameter claims are made or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a precise resource ('every credential/PII pattern this scanner detects'), which cleanly separates it from the sibling scan_text/scan_file/scan_directory tools that perform detection rather than enumeration. It does not, however, distinguish itself from the many identically named list_patterns tools in other scanner namespaces, so the reader must rely on the tool name for scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit 'when to use this vs scan_*' statement or prerequisite guidance. The listing nature of the tool makes the usage self-evident (introspect detectable pattern categories before or alongside a scan), which qualifies as implied usage, but nothing is stated outright and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_leak_scanner__scan_directoryB
Recursively scan a directory of prompt logs or request-body fixtures for leaked credentials and PII
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does add two useful traits: recursion and the class of content targeted (prompt logs / request-body fixtures). However, it says nothing about the read-only nature, the maxFiles truncation behavior implied by the schema, or what the scan returns, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and scope front-loaded and no filler. It is appropriately sized, though it could have spent one more clause on the directory-vs-file distinction at no real cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter scanner with full schema coverage but no output schema and no annotations, the description is minimally adequate. It never indicates what a scan produces (findings, counts, severities) or how truncation at maxFiles affects completeness, which an agent needs to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (path, exclude, include, maxFiles) are already documented in the schema, including the 5000-file default. The description adds no syntax, ordering, or override details beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('recursively scan'), a resource ('a directory of prompt logs or request-body fixtures'), and a detection target ('leaked credentials and PII'). It implicitly distinguishes itself from prompt_leak_scanner__scan_text and scan_file by operating on a directory, but it never names those siblings or states the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when a directory scan is preferable to the text/file variants, and no prerequisites or exclusions. The agent must infer the choice purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_leak_scanner__scan_fileB
Scan a single file β plain text, or a JSON chat-request-body fixture (auto-detected) β for leaked credentials and PII
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the file format (plain text vs JSON chat-request-body) is auto-detected, but says nothing about read-only safety, whether the file is modified, or what the findings look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the action, target, and detection scope with zero filler. The parenthetical is compact and informative rather than redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter scanner with no output schema, the description covers purpose and input handling adequately. It is thin on what the scan returns and offers no alternative-routing guidance, which limits it to the minimum viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'path' parameter is fully documented in the schema (100% coverage), so the schema already carries the semantics. The description adds no path syntax or constraint detail beyond it, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) and resource (single file) and names what it detects (leaked credentials and PII), plus the accepted input formats. The 'single file' scope implicitly separates it from the sibling scan_text and scan_directory tools, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over the sibling scan_text, scan_messages, or scan_directory. The format auto-detection note is a behavioral trait rather than a use-case condition, so an agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_leak_scanner__scan_messagesA
Scan an OpenAI/Anthropic-style chat request body (a JSON object with a messages array and/or a system field) for leaked credentials and PII in every message's text content, before it would be sent to the model.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The chat request body object, e.g. { model, system, messages: [{ role, content }] } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses scan scope ('every message's text content') and what it looks for (credentials, PII), but says nothing about the output shape, whether it is read-only, or any rate/permission considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted phrasing. It packs input format and detection targets together, but is dense enough that the read is slightly heavy for one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool the description covers the input adequately, but with no annotations and no output schema the agent receives nothing about the return value or finding structure, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single `body` parameter, and the description merely restates the schema's own framing (a JSON object with messages/system). No additional syntax or format detail is added beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) and resource (a chat request body with a `messages` array and/or `system` field), plus the detection targets (credentials and PII). The input-format framing implicitly separates it from the sibling scan_text/scan_file variants without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for invocation: run it on the request body 'before it would be sent to the model'. This is a meaningful pre-flight framing, though it names no explicit alternative among scan_text/scan_file/scan_directory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_leak_scanner__scan_textA
Scan a raw text string (e.g. a prompt you're about to send to an LLM) for leaked credentials (API keys, private keys, JWTs) and PII (TC Kimlik No, credit card, IBAN, email, phone) β checksum-validated where applicable to keep false positives low.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings | |
| content | Yes | The text to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the checksum-validation strategy for reducing false positives and enumerates detection classes, but says nothing about whether the scanned content is retained/logged (a real concern for a leak scanner), whether it is a pure read operation, or any rate behavior. Partial behavioral disclosure against a high bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence where every clause earns its place: the action, the motivating use case, the detection classes, and the false-positive mitigation. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description does a solid job of conveying purpose and detection scope, but omits any hint of return shape (finding structure) and content-handling/privacy behavior. Nearly complete for a two-parameter read-style scanner, with one notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'content' and 'label' are already documented in the schema. The description references scanning 'a raw text string' (mapping to content) but adds no format, size, or semantic detail beyond the schema, and never mentions the label parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (a raw text string), scopes it with a concrete example ('a prompt you're about to send to an LLM'), and enumerates exactly what it detects (API keys, private keys, JWTs; TC Kimlik No, credit card, IBAN, email, phone). The 'raw text string' framing distinguishes it from scan_file/scan_directory/scan_messages siblings without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The example ('a prompt you're about to send to an LLM') implies when this tool applies, but there is no explicit when-not guidance and no named alternative among the many sibling scanners (scan_messages, scan_file, secret_scanner__scan_text). Usage is inferable but not routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rug_pull_detector__baseline_serverA
Connect to an MCP server (stdio command or Streamable HTTP URL), read its current tools/list response, and store it as the trusted baseline for future drift checks. Call this once, right after you've reviewed and approved a server's tools.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for the spawned process | |
| env | No | Extra environment variables for the spawned process | |
| url | No | URL of a Streamable HTTP MCP server (alternative to command/args) | |
| args | No | Arguments for the stdio command | |
| label | No | Stable identifier for this server, used to look up its baseline. Defaults to the command line or URL. | |
| command | No | Command to spawn for a stdio MCP server (e.g. "npx") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the operation flow (spawn stdio or hit HTTP, read tools/list, persist as trusted baseline) and that it should be called once. However it omits what happens on a repeat call (overwrite? error?), auth/network requirements for HTTP, and the side effect of spawning a process, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler, and the core operation is front-loaded ahead of the usage instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a baseline-storing tool with no output schema and no annotations, the description conveys the purpose, connection modes, and call timing. It stops short of describing lifecycle behavior on re-invocation and what is returned, which would matter for an agent managing state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters in detail. The description only adds the framing that stdio command/args or a Streamable HTTP URL are the two connection modes, which is marginal added meaning. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs (connect, read, store) and a specific resource (an MCP server's tools/list response as a trusted baseline). An agent can distinguish it from sibling check_server (drift detection) and list_baselines (enumeration) purely from the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit timing guidance: 'Call this once, right after you've reviewed and approved a server's tools,' which establishes the precondition and implies it precedes future drift checks. It does not explicitly name check_server as the follow-up alternative, so it falls short of full when/when-not/alternatives coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rug_pull_detector__check_serverA
Connect to an MCP server and compare its current tools/list response against the stored baseline. A tool whose description, schema, or annotations changed since baseline is a 'rug pull' β approved once, silently different now. If no baseline exists yet, one is captured automatically (set autoBaseline=false to require an explicit baseline_server call first).
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory for the spawned process | |
| env | No | Extra environment variables for the spawned process | |
| url | No | URL of a Streamable HTTP MCP server (alternative to command/args) | |
| args | No | Arguments for the stdio command | |
| label | No | Stable identifier for this server, used to look up its baseline. Defaults to the command line or URL. | |
| command | No | Command to spawn for a stdio MCP server (e.g. "npx") | |
| autoBaseline | No | Automatically capture a baseline if none exists yet (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the autoBaseline default and the exact comparison dimensions (description, schema, annotations), but never mentions that it spawns a process / makes a network connection, nor any permission or side-effect profile for a tool that executes external commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then the definition of the failure mode, then the edge-case behavior. Every sentence earns its place and the most important routing caveat is saved for last.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that spawns or connects to arbitrary servers with no output schema, the description explains the operation and the autoBaseline branch well. It would be stronger if it hinted at what a result looks like (changed vs. unchanged report), since no output schema exists to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters including autoBaseline. The description reinforces autoBaseline's default and effect, but adds no syntax or meaning beyond the schema for command/args/url/env/cwd/label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (connect and compare) and resource (current tools/list response vs. stored baseline), and defines the key domain term 'rug pull' inline. It distinguishes itself from the sibling rug_pull_detector__baseline_server by naming it in the autoBaseline caveat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear about when it applies (checking a server's tools against its baseline) and names the alternative flow (autoBaseline=false + baseline_server call) for the no-baseline case. It stops short of stating when a caller should prefer this over list_baselines or when detection is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rug_pull_detector__list_baselinesA
List every server this scanner has a stored baseline for
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. The word "List" and the scoping to "this scanner's stored baseline" imply a read-only, state-inspecting operation, but it does not state that it is side-effect free, whether auth is required, or what happens when no baselines exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope qualifier ("this scanner's stored baseline") earns its place by narrowing the result set.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument listing tool this is nearly sufficient, and it conveys what the result conceptually is (servers with baselines). With no output schema present, it could say slightly more about the shape of each entry, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema baseline of 4 applies. There is nothing parameter-level the description could add or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("List") plus a well-defined resource ("every server this scanner has a stored baseline for"), which implicitly separates it from the sibling baseline_server (creates baselines) and check_server (runs a check). It stops short of naming or contrasting those siblings explicitly, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call this to discover which servers have baselines before calling check_server. There is no explicit when-to-use statement, no preconditions, and no mention of the sibling tools it complements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__list_patternsB
List all secret patterns that the scanner can detect
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a non-destructive read, which is correct for a listing verb, but adds nothing about what the returned pattern set looks like (IDs, names, severities, regexes) or whether the list is static or configurable. For a trivial zero-parameter read this is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Nothing could be trimmed without losing the resource under discussion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameter documentation, the description is the only source of information about the tool. It identifies the resource but says nothing about the shape or contents of the returned pattern list, which an agent would want before deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema-based baseline for parameter semantics is 4. There is nothing for the description to clarify and nothing missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all secret patterns that the scanner can detect'. An agent can tell this is a catalog-enumeration tool, distinct from scan_text/scan_file/scan_directory siblings. It does not differentiate itself from the dozens of other '*__list_patterns' tools in the registry, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use condition, no prerequisite or ordering advice (e.g. call this first to see what the scanner covers before scanning), and no exclusions. Usage is only weakly implied by the phrase 'patterns that the scanner can detect'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__scan_agent_historyA
Scan the transcripts coding agents keep on this machine (Claude Code, Codex, Gemini CLI, Continue) for secrets that were pasted into a chat or printed by a command. Such a secret was already sent to the model provider and should be rotated. Each secret is reported once with how often it appears.
| Name | Required | Description | Default |
|---|---|---|---|
| entropy | No | Also flag random-looking values assigned to secret-like names (default false here: transcripts hold a lot of code) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real behavioral value: output is deduplicated ('each secret is reported once with how often it appears') and it explains the practical consequence (rotate the secret). It does not disclose read-only status, permissions, where transcripts live, or performance/rate characteristics, which is a notable gap for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences front-loading what is scanned, then why it matters, then the reporting behavior. No redundancy and no filler; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter scan with no output schema and no annotations, the description covers target scope, rationale, and output shape adequately. The main omission is any hint of scope limitations such as false positives or where the transcripts are found, but nothing essential to invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional boolean parameter and schema coverage is 100%, so the schema already documents 'entropy' with useful context about why it defaults to false. The description adds nothing about the parameter, which matches the baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('scan') plus a precisely bounded resource: transcripts left by named coding agents (Claude Code, Codex, Gemini CLI, Continue). The scope alone separates it from the sibling scan_text/scan_file/scan_directory/scan_git tools without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear context for use by explaining the significance: a secret in a chat was already sent to the model provider and should be rotated, so the agent knows why this scan is warranted. It does not, however, name alternatives or state when a different secret_scanner sibling should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__scan_directoryB
Recursively scan a directory for exposed secrets and API keys. Automatically skips node_modules, .git, dist, and binary files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| entropy | No | Also flag random-looking values assigned to secret-like names (default true) | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings (e.g. [".env", ".ts"]) | |
| baseline | No | Path to a baseline file: only findings not in it are reported | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add one genuinely useful non-schema behavior: automatic skipping of node_modules, .git, dist, and binary files. However, it says nothing about whether the scan is read-only, how large scans behave, or what the findings look like, leaving key behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the core purpose is front-loaded and the behavioral note follows. Slightly terse for a six-parameter tool, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description is the only place an agent can learn behavioral context. It covers purpose and default exclusions but says nothing about return format or how the baseline parameter interacts with results, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (path, entropy, exclude, include, baseline, maxFiles) are already documented in the schema. The description adds no parameter-level detail beyond hinting at the default skip behavior; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Recursively scan a directory for exposed secrets and API keys.' The scope word 'directory' distinguishes it implicitly from secret_scanner__scan_file, but no sibling is named explicitly, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the word 'directory' versus the sibling scan_file/scan_git/scan_agent_history tools, but the description offers no explicit when-to-use, when-not-to-use, or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__scan_fileB
Scan a single file for exposed secrets and API keys
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan | |
| entropy | No | Also flag random-looking values assigned to secret-like names (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it says nothing about the operation's behavior beyond the one-line purpose. It does not state that the scan is read-only, whether it touches the network, whether it can be slow on large files, or what kinds of secrets it recognizes. For a tool with zero structured behavioral metadata this is a clear gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the action and scope, with no filler or redundancy. It is efficiently written, though its brevity is partly a symptom of under-specification rather than deliberate restraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only-style scanner with no output schema, the description is minimally sufficient to invoke the tool correctly. However, with no annotations and no output schema, it should do more work explaining expected results and how it differs from the many sibling scanners β an agent must infer both.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'path' and 'entropy' fully documented in the schema, including the default value for entropy. The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Scan a single file') plus the target of the scan ('exposed secrets and API keys'), which is concrete and readable. The word 'single' implicitly separates it from directory or batch scanning, but no sibling is named explicitly, so it falls just short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by scope: an agent can infer it should call this when it has one file in hand rather than a tree of files. There is no statement of when to prefer scan_text, scan_directory, scan_git, or scan_agent_history, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__scan_gitA
Scan a git repository for secrets in what git says was added: the staged changes (before a commit) or every commit's added lines (history). History finds secrets that were deleted from the files but are still in the repository.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | staged: lines added in the index; history: lines added by each commit | |
| path | Yes | A directory inside the git repository | |
| range | No | History only: a revision range such as main..HEAD (default: all refs) | |
| entropy | No | Also flag random-looking values assigned to secret-like names (default true) | |
| baseline | No | Path to a baseline file: only findings not in it are reported | |
| maxCommits | No | History only: stop after this many commits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses useful scan semantics, especially that history inspects added lines per commit and can find secrets deleted from files, but it does not state that the operation is read-only, whether it modifies the repository, required permissions, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences with no waste. It front-loads the core operation and then immediately clarifies the two modes and the special case that history mode detects deleted secrets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core purpose and mode semantics well, and the rich schema documents every parameter. However, with no output schema and no annotations, the description does not explain what findings look like or the safety profile, leaving some contextual gaps for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters, including mode, range, baseline, entropy, and maxCommits. The description adds conceptual context about staged versus history scanning but does not add syntax or format details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: scanning a git repository for secrets, with the exact scope being what git says was added. It distinguishes itself from sibling file/directory scanners by focusing on staged changes and commit history, and explains the special value of history mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains when to choose staged mode (before a commit) versus history mode (every commit's added lines), and notes that history finds secrets deleted from files. It does not explicitly name alternatives such as scan_directory, but the mode-selection context is clear and has no misleading exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secret_scanner__scan_textB
Scan a text string or code snippet for exposed secrets and API keys
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The text content to scan | |
| entropy | No | Also flag random-looking values assigned to secret-like names (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Scan' implies a read-only, non-destructive operation, but the description does not state that, nor does it describe the return format (findings list?), false-positive behavior, or the notable entropy-detection behavior that the schema exposes. For a no-annotation tool this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a clear verb, scope, and detection target. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should do more than state the purpose β it leaves the agent guessing about returned findings, severity, and the entropy default. It is complete for identifying the tool's job but thin on operation-level context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (label, content, entropy) are documented in the schema itself. The description references the content parameter and detection target at a high level but adds no syntax, format, or behavioral detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Scan') and resource ('text string or code snippet') and states the detection target ('exposed secrets and API keys'). The inline-content scope implicitly distinguishes it from secret_scanner__scan_file, scan_directory, and scan_git siblings, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'text string or code snippet' β you call this when the content is inline rather than a path β but there is no explicit when-to-use, when-not, or routing to scan_file/scan_directory/scan_git. An agent must infer the boundary from the parameter name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slopsquat_scanner__check_packageB
Check a single package name against the real npm or PyPI registry
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name | |
| ecosystem | Yes | Which registry to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It says the check is against a 'real' registry, but does not state side effects, authentication needs, rate limits, or whether the operation is read-only. No return value or failure behavior is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that is front-loaded with the tool's core action and scope. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description covers the core action but omits usage context relative to siblings and any behavioral details. Since there is no output schema, it should say more about what the check returns or how results are interpreted, but the minimal scope keeps it from being entirely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces the ecosystem choice ('npm or PyPI') but adds no syntax, format, or additional meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('a single package name against the real npm or PyPI registry'), making the tool's action clear. It does not explicitly name or contrast with sibling tools like scan_npm or scan_pip, but the 'single package' scope provides implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are given. The description implies usage for checking one known package, but it doesn't say when to choose this over scan_npm, scan_pip, or scan_directory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slopsquat_scanner__scan_directoryB
Auto-detect and check both npm and pip manifests (package.json, requirements.txt, pyproject.toml) in a directory against their real registries
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the project root directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose a key trait beyond the name: the check is performed against real registries, implying network access and external lookups. It omits recursion behavior, failure handling when a registry is unreachable, and any rate-limit or credential expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action first and the target files listed inline; no filler sentences. It is efficient, though the dense parenthetical slightly buries the scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description is the only source of return and safety information. It explains what is scanned but says nothing about the shape of results, severity reporting, or whether the scan is read-only, leaving a real gap for a scanner tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and only one parameter exists, so the schema already documents 'directory' fully. The description adds only that the directory is inspected for manifests, which is marginal semantics beyond the schema's 'Path to the project root directory'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (auto-detect and check), a clear resource (npm/pip manifests), and even enumerates the concrete files it targets (package.json, requirements.txt, pyproject.toml). It implicitly differentiates itself from scan_npm and scan_pip by covering both ecosystems in one pass, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the auto-detection framing: an agent can infer this is the right tool when a directory may contain mixed manifests. However, there is no explicit guidance on when to prefer this over scan_npm, scan_pip, or check_package, and no stated exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slopsquat_scanner__scan_npmA
Check every dependency declared in a package.json (dependencies, devDependencies, peerDependencies, optionalDependencies) against the real npm registry -- flags any package name that doesn't exist at all (a likely LLM-hallucinated dependency an attacker may have pre-registered, i.e. 'slopsquatting'), and separately notes any that exist but were only first published very recently.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the directory containing package.json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does convey real behavior: it queries the live npm registry, splits findings into 'does not exist' versus 'first published very recently'. It omits rate limits, network/auth requirements, and whether a directory must be a package root β moderate gaps but meaningful added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence that front-loads the scope (which dependency blocks) before the two finding categories. No wasted clauses, though the em-dash construction and parenthetical definition make it longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter scanner with no annotations and no output schema, the description supplies the essential context: what is fetched, what two categories of findings come back, and why they matter. Only the absence of return-shape or failure-mode detail keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'directory' parameter, so the schema already documents it. The description references the package.json location implicitly but adds no syntax, path-resolution, or behavior details beyond the schema β the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (check/scan) and resource (every dependency declared in package.json) plus the exact four dependency blocks it covers. The slopsquatting framing and npm-registry grounding distinguish it clearly from sibling scan_pip and from the broader dependency_auditor family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The npm/package.json framing implies when to reach for this over slopsquat_scanner__scan_pip or scan_directory, but the description never states the condition explicitly, nor when to prefer slopsquat_scanner__check_package for a single name. Usage is inferable from the name rather than declared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slopsquat_scanner__scan_pipA
Check every dependency declared in requirements.txt or pyproject.toml against the real PyPI registry -- flags any package name that doesn't exist at all (a likely LLM-hallucinated dependency an attacker may have pre-registered), and separately notes any that exist but were only first published very recently.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to the directory containing requirements.txt or pyproject.toml |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose meaningful detection semantics: it queries the real PyPI registry and reports two distinct finding classes (non-existent names vs. very recently first-published names), which tells the agent what to expect and why. It does not mention network dependency, rate limits, or that the operation is read-only, but the scanner semantics are otherwise well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the core action and its target, and each clause (existence check, recency check) earns its place. The parenthetical explanation of the threat model is slightly verbose but justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist, but the description names the two categories of findings it emits, which effectively previews the result content. It stops short of describing the return structure or severity levels, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the baseline is 3. The description restates the manifest files it looks for but adds no path syntax, recursion, or error-handling detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb (check/scan) and resource (every dependency declared in requirements.txt or pyproject.toml), and the pip-ecosystem scoping implicitly separates it from slopsquat_scanner__scan_npm and slopsquat_scanner__check_package. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the artifact type it targets (pip manifests), but there is no explicit statement of when to prefer this over scan_npm, check_package, or scan_directory, and no preconditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_inspector__check_cert_expiryC
Check certificate expiry for one or more domains and highlight certificates expiring soon
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes | Domain names to check | |
| warnDays | No | Warn if expiring within this many days (default: 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that certificates expiring soon are 'highlighted' but says nothing about the network operations implied (live TLS handshakes/connections), timeouts, rate limits, failure handling for unreachable hosts, or whether any state is persisted. For an external-network probe tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the primary action front-loaded and no filler. It is not bloated, but the brevity comes at the cost of the missing behavioral and routing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no nesting, no output schema, no annotations), and the description covers the core purpose, but it omits expected output shape (e.g., per-host expiry dates/statuses) and any failure-mode context. Adequate minimum viability, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (hosts: 'Domain names to check'; warnDays: 'Warn if expiring within this many days (default: 30)'), so the baseline is 3. The description adds only mild confirmation via 'one or more domains' and 'expiring soon', which loosely map to hosts and warnDays but add no format or unit detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Check) and resource (certificate expiry) plus a secondary behavior (highlight certificates expiring soon), so an agent can tell what it returns. However, it does nothing to distinguish itself from the sibling ssl_inspector tools inspect_ssl, inspect_ssl_bulk, and get_cert_info, which likely overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of when not to use it, and no reference to the sibling tools that also inspect SSL/certificates. The agent must infer from the name alone whether to call this versus inspect_ssl or get_cert_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_inspector__get_cert_infoC
Get detailed certificate information for a domain including fingerprint, SANs, and issuer chain
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Domain to inspect | |
| port | No | Port (default: 443) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the returned fields but says nothing about network access requirements, timeouts, rate limits, what happens if the certificate is invalid or the host is unreachable, or whether the call is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is efficient, though wrapping it as the entire body leaves no room for the usage/behavioral context a tool with siblings would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description is minimally adequate: it names the parameters implicitly and lists the return payload, but omits any sibling disambiguation or failure-mode context that would make it fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% β both 'host' and 'port' (default 443) are documented in the schema. The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('certificate information for a domain') and even enumerates the returned content (fingerprint, SANs, issuer chain). However, it does not distinguish itself from siblings like inspect_ssl or check_cert_expiry, so an agent cannot tell which SSL tool to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. Given three closely related sibling tools (inspect_ssl, inspect_ssl_bulk, check_cert_expiry), the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_inspector__inspect_sslB
Inspect TLS certificate, cipher suite, and protocol configuration for a single domain
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Domain name or IP to inspect (e.g. example.com) | |
| port | No | Port to connect to (default: 443) | |
| probes | No | Extra handshakes to find what the server still accepts: TLS 1.0/1.1, RSA key exchange, weak DH, weak ciphers (default: true) | |
| checkHsts | No | Also check HSTS header via HTTP HEAD (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose permission requirements, rate limits, or that it performs live network handshakes (implied by probes/checkHsts defaults). For a tool that initiates external connections, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence with the key scope constraint ('for a single domain') front-loaded and no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that makes outbound network connections with no annotations and no output schema, the description is incomplete: it omits safety/permission context, expected output, and any guidance on how this differs from the four sibling ssl_inspector tools. More is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents host, port, probes, and checkHsts in detail. The description adds no parameter-level semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Inspect) and resources (TLS certificate, cipher suite, protocol configuration) scoped to a single domain. It is clear and specific, though it does not explicitly differentiate itself from sibling tools like inspect_ssl_bulk, check_cert_expiry, or get_cert_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'for a single domain,' which implies usage context, but there is no explicit when-to-use guidance or statement of when to prefer siblings like inspect_ssl_bulk (for multiple domains) or check_cert_expiry (for expiry-only checks). Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_inspector__inspect_ssl_bulkC
Inspect TLS configuration for multiple domains in parallel
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port to use for all domains (default: 443) | |
| hosts | Yes | List of domain names to inspect | |
| probes | No | Run the legacy-protocol and weak-cipher probes for each domain (default: false; 8 extra handshakes per domain) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that inspection runs in parallel; it says nothing about rate limits or throttling, timeouts, what happens when some domains fail DNS/connect, or whether results are partial. For a bulk network tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler β the core action and the batch scope come first. It is efficient, though so terse that it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-host network operation with no annotations and no output schema, yet the description is one line. It omits how per-domain failures surface, whether output is aggregated or ordered, concurrency limits, and timeout behavior β all things an agent needs before committing to a bulk call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: hosts, port, and probes are each documented in the schema, including the probe cost (8 extra handshakes per domain). The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (inspect TLS configuration) plus the scope modifier 'multiple domains in parallel', which distinguishes it from the single-domain sibling ssl_inspector__inspect_ssl. It never names that sibling, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternative named, no prerequisites stated. The agent must infer from the function name that this is the batch counterpart to inspect_ssl, and gets no guidance on when parallel bulk inspection is preferable to per-domain calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__evaluate_eventC
Evaluate a structured ATR AgentEvent JSON (type, content, fields, sessionId, β¦).
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | ||
| event | Yes | JSON AgentEvent: { type, content, fields?, sessionId?, agentId?, scanContext? } | |
| format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and largely fails. It never explains what happens to the event (blocked, logged, alerted) for each lane value, whether an 'enforce' lane can cause side effects, or what the returned evaluation looks like β the enforce/alert/hunt semantics are especially consequential and go undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the input contract front-loaded and no filler. It is efficient, though it is efficient at saying too little rather than at communicating the essentials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, 33% schema coverage, and two undescribed enum parameters, this definition is not complete enough for an agent to invoke the tool confidently. It documents the input envelope but leaves the evaluation output, lane semantics, and format behavior entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: only 'event' is documented in the schema, and 'lane' and 'format' are bare enums. The description lists event sub-fields (type, content, fields, sessionId) but adds nothing about their expected values or shapes, and says nothing at all about the lane's behavioral meaning or the format options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Evaluate') and a specific resource ('ATR AgentEvent JSON'), and the word 'structured' distinguishes it from the sibling evaluate_text and evaluate_file tools, which take raw text or files. It does not, however, state what the evaluation produces (findings, verdict, severity), leaving the outcome implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given at all. With three closely named siblings (evaluate_text, evaluate_file, list_rules), the description never says when an agent should choose this event-based path over the text or file variants, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__evaluate_fileC
Read a local file and evaluate its contents against ATR + GuardBee rules
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | ||
| path | Yes | Path to a text file (max 2MB) | |
| type | No | ||
| format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that it reads a local file and evaluates against two named rule sets; it says nothing about permissions, cost, side effects, rate limits, what the evaluation returns, or what 'ATR + GuardBee' rules mean. Significant gap for a security-evaluation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and scope front-loaded and no filler. It is efficient, though arguably too terse for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, three undocumented enums, no annotations, and no output schema, an agent lacks enough to invoke this correctly. The one-sentence description does not explain lane semantics, type selection, or what a result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'path' is documented). The description adds no meaning for the three enum parameters (lane, type, format), which are the semantically rich ones determining evaluation mode and output shape. It fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: read a local file and evaluate its contents against named rule engines (ATR + GuardBee). The 'file' object and named rule sets make it distinguishable from threat_rules__evaluate_text, though it never explicitly contrasts the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Read a local file' implies the tool is for on-disk files, but there is no when-to-use guidance, no mention of evaluate_text/evaluate_event as alternatives, and no explanation of which lane (enforce/alert/hunt) or type to pick for a given scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__evaluate_textC
Evaluate free text against Agent Threat Rules (ATR) plus GuardBee KVKK/TR rules. Returns matches with follow-up scanner hints.
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | Detection lane (default: hunt) | |
| type | No | ATR event type (default: llm_input) | |
| format | No | ||
| content | Yes | Text to evaluate | |
| scanContext | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It notes that matches come with 'follow-up scanner hints', which is useful output context, but says nothing about permissions, cost, rate limits, or how the enforce/alert/hunt lanes change behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences with no filler. The purpose leads and the return hint follows, which is efficient for a short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and only 60% schema coverage, the description should explain more. It does not clarify what 'matches' or 'follow-up scanner hints' contain, nor how lane/type affect results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% and the description adds no meaning to any of the five parameters. Terms like 'lane', 'type', and 'scanContext' are only defined by the schema enums, and the description never explains their effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Evaluate free text against Agent Threat Rules (ATR) plus GuardBee KVKK/TR rules.' The phrase 'free text' implicitly distinguishes it from evaluate_file and evaluate_event, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no exclusions. It never tells the agent why it would pick this over threat_rules__evaluate_event or evaluate_file, nor what lane/type selection implies for the outcome.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__explain_bridgeA
Explain how Agent Threat Rules (ATR) complements GuardBee static MCP auditors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Explain' strongly implies a read-only, side-effect-free operation and the zero-parameter schema reinforces that, but the description never states the return form (prose, markdown, structured) or whether the explanation is static or generated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and its subject with zero filler. Nothing could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param explainer with no output schema, the definition is adequate but thin: it never says what the explanation looks like or how deep it goes, and an agent unfamiliar with either ATR or GuardBee gets no framing beyond the names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema is trivially complete at 100% coverage and there is nothing for the description to compensate for. Baseline of 4 applies for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Explain') and a specific subject ('how Agent Threat Rules (ATR) complements GuardBee static MCP auditors'), which is clearly distinct from the evaluate_* and list_rules siblings in the same namespace. It is clear what the tool produces conceptually, though it does not explicitly contrast itself with its siblings (e.g., framework_map, rule_stats).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent would infer it should call this when it needs conceptual context on how ATR relates to GuardBee auditors. There is no explicit when-to-use, when-not-to-use, or named alternative (such as framework_map) to route between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__framework_mapB
Show how GuardBee's runtime findings map to OWASP Top 10 for LLM Applications (2025) and MITRE ATLAS β the mapping guardbee-proxy report uses
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the output is the same mapping used by the guardbee-proxy report and which frameworks are covered, but it does not state that this is a static reference table (no inputs, no live scanning) rather than something computed from findings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The em-dash clause about guardbee-proxy is slightly trailing but adds genuine provenance context rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param tool with no output schema, the description gives the frameworks but not the shape of the returned mapping (e.g., rule/technique identifiers to OWASP/ATLAS categories, or how granular it is). Adequate to identify the tool, thin on what the agent actually gets back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to document; the baseline of 4 applies. No parameter-related ambiguity is introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (show a mapping) and names both target frameworks (OWASP Top 10 for LLM Applications 2025, MITRE ATLAS), which is far more specific than a tautology. It does not, however, contrast itself with siblings like threat_rules__list_rules or rule_stats, leaving the agent to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or exclusion. The reader can infer it is a reference/lookup aid for interpreting runtime findings, but nothing tells the agent when to call this instead of threat_rules__list_rules, rule_stats, or explain_bridge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__list_rulesC
List loaded ATR + GuardBee detection rules (optionally filter by category or source).
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No | ||
| source | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It hints at scope with 'loaded' (i.e. only currently loaded rules), but discloses nothing about permissions, result size, pagination, or whether disabled rules appear. For a zero-annotation read tool this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the action first and the filtering capability second; no filler. Slightly under-specified rather than padded, so structure is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema coverage across three enum parameters, the one-line description leaves several gaps: the undocumented `lane` parameter, the return shape, and any safety/read-only context. It is not adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it only accounts for two of three parameters. The `lane` filter (enforce/alert/hunt) is never mentioned, leaving a meaningful filtering dimension undocumented outside the bare enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a specific resource ('loaded ATR + GuardBee detection rules'), which is more precise than a generic 'get rules'. It doesn't explicitly differentiate itself from close siblings like threat_rules__rule_stats or framework_map, but the scope is clear enough to select it over a scan tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(optionally filter by category or source)' implies a usage context but gives no when-to-use-vs-alternatives guidance, no mention of rule_stats/framework_map, and no exclusions. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
threat_rules__rule_statsC
Summarize loaded rule counts by category and source (ATR vs GuardBee)
| Name | Required | Description | Default |
|---|---|---|---|
| lane | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the grouping dimensions (category and source, ATR vs GuardBee) but never states that this is a read-only operation, that it reports on already-loaded rules only, or how the lane filter changes the counts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler β the key resource and grouping axes come first. Its brevity is appropriate in form, though the space saved is information an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented enum parameter, the definition leaves critical gaps: what lane means, whether the counter reflects loaded rules only, and whether the call is safe/read-only. Only the aggregate purpose is conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (lane, an enum of enforce/alert/hunt) has 0% schema description coverage and is never mentioned in the description. "By category and source" describes output grouping, not the lane input, so the description adds no meaning to the one parameter an agent must reason about.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("Summarize") and a specific resource ("loaded rule counts by category and source"), which clearly distinguishes it from siblings like threat_rules__list_rules or evaluate_text. It stops short of naming those siblings or stating the scope boundary explicitly, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: no statement of when an agent should call rule_stats rather than list_rules or framework_map, and no mention of prerequisites or the effect of the lane filter on results. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_poisoning_scanner__list_patternsA
List every description-injection phrase and confused-deputy sink rule this scanner detects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the content of the list (injection phrases and confused-deputy sink rules), but says nothing about the operation being read-only, pagination, or return structure. Behavioral risk is low for a static enumeration, but the disclosure is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and zero filler. Nothing in it is redundant with the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description would ideally sketch what is returned (phrase IDs, rule metadata, grouping). It states the subject matter of the list but not its shape, leaving a gap for a tool whose entire value is its return payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' plus a concrete resource: 'description-injection phrase and confused-deputy sink rule this scanner detects'. This clearly separates it from the sibling scan_text/scan_file/scan_directory tools, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied β an agent can infer this is the way to enumerate what the scanner detects, but there is no statement of when to call it versus running a scan or another auditor's list_patterns tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_poisoning_scanner__scan_directoryB
Recursively scan a directory of MCP server source for tool-poisoning and confused-deputy patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only that the scan is recursive; it says nothing about read-only safety, permission needs, performance/scale limits, or what the scan returns. For a 4-parameter scanner with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words; the verb, scope (directory), target (MCP server source), and goal are all packed into one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what a caller gets back and the safety profile of the operation, but it explains neither. The single sentence leaves an agent unable to predict result shape or behavioral side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents path, exclude, include, and maxFiles, and the baseline is 3. The description adds no interpretation of these parameters beyond what the schema states, so it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan), a specific resource (a directory of MCP server source), and a concrete goal (tool-poisoning and confused-deputy patterns). An agent can distinguish it from scan_file/scan_text purely by the directory scope, though it never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Recursively scan a directory" implies use when you have a whole tree rather than a single file, which separates it from the scan_file sibling by inference. There is, however, no explicit when-to-use guidance, no mention of the scan_file/scan_text alternatives, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_poisoning_scanner__scan_fileB
Scan a single file for tool-poisoning and confused-deputy patterns in MCP tool registrations
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that the operation is read-only, whether the target file is modified, what permissions are needed, or what the scan output looks like. Only the detection scope is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action and detection scope front-loaded and zero filler. It is a fragment rather than a full sentence, but nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented required parameter and no output schema, the core invocation is covered. However, a scanner whose whole value is its findings gives no indication of result shape, and with no annotations the behavioral profile is left entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema description coverage; the schema already documents 'path' as an absolute or relative file path. The description adds no format, encoding, or size guidance beyond confirming the target is a single file, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) plus a scoped resource (a single file) and names the exact class of patterns detected: tool-poisoning and confused-deputy in MCP tool registrations. The 'single file' framing implicitly separates it from the sibling scan_text and scan_directory, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'single file' qualifier implies when to use this over scan_text/scan_directory, but there is no explicit statement of when this tool is appropriate versus its siblings, nor any prerequisites or exclusions. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_poisoning_scanner__scan_textB
Scan MCP server source for tool poisoning (hidden instructions embedded in a tool's description string, read by the calling LLM as trusted context) and confused-deputy tools (a name/description promising read-only behavior while the handler has a shell/eval/file-write/env-dump sink).
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The source code to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does explain the detection semantics and threat model well (what hidden instructions and confused-deputy patterns are), which is genuine added value, but it says nothing about side effects, return shape, or whether the scan is purely read-only and deterministic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the action and then defines the two threat categories. The parentheticals are dense but each earns its place by disambiguating jargon; it is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter scanner with no output schema and no annotations, the threat-model explanation is useful, but the definition omits routing guidance against its close siblings and any indication of what findings look like. Adequate but with visible gaps an agent would want filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'content' and 'label' both documented in the schema, so the baseline is 3. The description adds no additional detail about parameter format, size limits, or how 'label' surfaces in findings beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Scan) and resource (MCP server source) and defines precisely what it detects: tool poisoning and confused-deputy sinks. It does not explicitly contrast itself with the sibling scan_file/scan_directory variants, so an agent must infer that 'text' means raw inline source rather than a path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the naming convention (text vs file vs directory) and by 'content' being required in the schema, but the description never states when to prefer this tool over tool_poisoning_scanner__scan_file, scan_directory, or list_patterns. No explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxic_flow_auditor__audit_catalogA
Audit a tools/list-shaped JSON catalog for the lethal trifecta (toxic flow): untrusted content + sensitive/private data + exfiltration or destruction on the same MCP server. Returns an AβF grade.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label for the server/catalog | |
| catalog | Yes | JSON array of tools, or { tools: [...] } from tools/list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations accompany this tool, so the description carries the full disclosure burden. It states the detection logic (untrusted content + sensitive data + exfiltration/destruction on one server) and the output form (AβF grade), but says nothing about read-only behavior, permissions, or whether the catalog is transmitted anywhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first defines scope and detection criteria, the second gives the return. The function and its output are front-loaded with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter analysis tool with no output schema, the description supplies the input contract and states the return (a grade), which is adequate. It could be more complete on the meaning of the AβF scale or the trifecta-signal detail, but nothing essential to invoking it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters (label, catalog) and the schema already documents their formats, so the description is not obligated to repeat them. It adds no syntax, size, or format detail beyond what the schema provides, giving the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("Audit") plus a precisely-scoped resource ("tools/list-shaped JSON catalog") and a named detection target (the lethal trifecta). This clearly distinguishes it from toxic_flow_auditor siblings scan_source/scan_file/scan_directory, which consume other input types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The stated input shape (a tools/list JSON catalog) makes the use case evident and differentiates it from the source/file/directory scanners. However, no alternative is named explicitly and no when-not guidance is given, so an agent must infer routing from the input contract rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxic_flow_auditor__explain_trifectaA
Explain the lethal trifecta / toxic-flow model this auditor uses
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implicitly conveys an informational, side-effect-free explainer, but does not state that it takes no input, that it returns a static model description, or what the output contains. Adequate but thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the core purpose front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema explainer, the description is essentially complete: it tells the agent this returns the auditor's model rather than findings. A little more on what the model covers would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; baseline is 4. The description correctly implies a no-argument invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Explain) and resource (the lethal trifecta / toxic-flow model this auditor uses). The explanatory framing distinguishes it from its scan_*, audit_catalog, and scan_source siblings, which perform analysis rather than describe the model. It is clear what the tool does, though it does not explicitly name the sibling it complements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a documentation tool to consult before or alongside the toxic-flow scans. No explicit when-to-use, prerequisites, or named alternatives (e.g. threat_rules__explain_bridge, framework_map) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxic_flow_auditor__scan_directoryC
Recursively scan a directory of MCP server source for toxic flows across all registered tools
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| exclude | No | ||
| maxFiles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It discloses that scanning is recursive and covers all registered tools, but does not state whether the operation is read-only, what permissions are needed, whether it modifies anything, or how long it might take.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It is efficient, though its brevity means it omits important parameter and behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% parameter description coverage, the single sentence is insufficient. It does not explain the three parameters, what a 'toxic flow' is, or what the scan returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters. The description never mentions 'path', 'exclude', or 'maxFiles', so an agent gets no meaning for these parameters beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('scan'), resource ('directory of MCP server source'), and scope ('for toxic flows across all registered tools'). It clearly distinguishes directory-level scanning from the sibling scan_file, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like scan_file, scan_source, or audit_catalog. The recursive-directory scope implies usage, but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxic_flow_auditor__scan_fileC
Scan a single source file for toxic flows
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden, and it does almost none of it: no statement that this is a read-only operation, no note on whether files are read locally, no size/permission constraints, and no indication of what a 'toxic flow' finding contains. Only the implicit read-only nature of 'scan' is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short phrase with zero filler and the key scope qualifier ('single source file') front-loaded. It is efficient, though the terseness is partly under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented required parameter, the description should carry far more weight. It never explains what toxic flows are, what the scan returns, or how it relates to the sibling scan_source/scan_directory tools, leaving an agent short of what it needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the sole parameter 'path' is undocumented in the schema. The description adds partial meaning by implying it must point to a file rather than a directory, but gives no format, absolute-vs-relative, or encoding guidance to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) plus resource (a single source file) and domain (toxic flows), which cleanly separates it from toxic_flow_auditor__scan_directory. However it gives no differentiation against its closest sibling toxic_flow_auditor__scan_source, leaving the agent to guess which input form each expects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this versus scan_source, scan_directory, or audit_catalog. The 'single file' phrasing implies batch/directory scans go elsewhere, but that inference is never made explicit and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxic_flow_auditor__scan_sourceB
Scan TypeScript/JavaScript MCP server source for .tool(...) registrations and audit them for toxic flows
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| content | Yes | Source code to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state what the output contains (findings? a report?), whether it is read-only, or what 'toxic flows' means (composed of what conditions). For an auditor tool with zero annotation coverage and no output schema, this is a significant disclosure gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that front-loads the scan target and scan purpose. It could benefit from one more sentence on usage or output, but as written there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a scanner tool with no annotations, no output schema, and half its parameters undocumented, the description omits critical information: the return format, the distinction from sibling scan_file/scan_directory tools, and the semantics of 'label'. It is not sufficient for an agent to invoke correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% β 'content' is documented as 'Source code to scan' but the 'label' parameter has no description in either schema or description. The description confirms the content is TS/JS MCP server source, adding some meaning, but does not explain what 'label' should be set to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan and audit), a specific resource (TypeScript/JavaScript MCP server source), and what it looks for (.tool(...) registrations and toxic flows). This distinguishes it from siblings like toxic_flow_auditor__scan_file and toxic_flow_auditor__scan_directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus toxic_flow_auditor__scan_file, scan_directory, or audit_catalog. An agent must infer from the name that this is for raw source strings, not file paths, which is a critical distinction given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unbounded_consumption_auditor__list_patternsA
List every Unbounded Consumption / denial-of-wallet pattern this auditor detects, grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return grouping behavior ('grouped by category') and the read-only nature implied by 'List', but does not state side effects, auth requirements, pagination, or whether it triggers any detection logic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that says what is listed, for which auditor, and how results are grouped. There is no redundant or wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with no output schema, the description sufficiently explains what the call returns: every detected pattern grouped by category. It could say more about output format or intended workflow, but nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. The empty input schema is fully consistent with the description, and baseline for zero-param tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list patterns detected by this auditor, grouped by category. It clearly distinguishes this auditor's pattern listing from scan_text/scan_file/scan_directory by name, though it does not explicitly contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'List' and the resource 'patterns', so an agent can infer this is for cataloging known detections rather than scanning. However, there is no explicit when-to-use guidance or named alternative such as scan_text/scan_file for actual scanning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unbounded_consumption_auditor__scan_directoryB
Recursively scan a directory of LLM/agent application source for Unbounded Consumption / denial-of-wallet anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the directory to scan | |
| exclude | No | Skip files/dirs whose path contains one of these strings | |
| include | No | Only scan files whose path contains one of these strings | |
| maxFiles | No | Maximum number of files to scan (default: 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and only discloses that traversal is recursive. It does not state that the operation is read-only/non-destructive, how it behaves with the include/exclude/maxFiles limits, whether large trees are truncated, or what the scan produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource and the target anti-pattern class first and zero filler. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity directory scanner with fully documented params and no output schema, the description covers purpose adequately. However, it omits sibling routing and any notion of what findings or summary a scan yields, leaving gaps an agent must fill by inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so path, exclude, include, and maxFiles are already documented in the schema. The description adds no parameter-level meaning (e.g., precedence between include and exclude), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recursively scan) and resource (directory of LLM/agent application source) plus the exact class of issue sought (Unbounded Consumption / denial-of-wallet anti-patterns). It implicitly distinguishes itself from the same auditor's scan_file/scan_text siblings via the directory scope, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'directory' and 'recursively' imply usage for whole-tree sweeps versus scan_file/scan_text, but there is no explicit when-to-use/when-not guidance or reference to alternatives. The agent must infer the choice from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unbounded_consumption_auditor__scan_fileB
Scan a single file for Unbounded Consumption / denial-of-wallet anti-patterns
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute or relative path to the file to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the scan target. It does not state that the operation is read-only/non-destructive, what a scan returns, or whether it has side effects, all of which an agent would want for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, front-loading the action and the target domain immediately. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter scan tool with no output schema and no annotations, the definition covers what is scanned but omits how to choose it over scan_text/scan_directory and gives no behavioral or output context. Adequate but with visible gaps given the absence of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'path' parameter has 100% schema description coverage ('Absolute or relative path to the file to scan'), so the schema already documents it fully. The description adds no path-format or constraint detail beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) plus resource (a single file) and names the exact target class: Unbounded Consumption / denial-of-wallet anti-patterns. This cleanly distinguishes it from the sibling scan_text and scan_directory tools, though it doesn't name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'single file' implies when this applies (one file on disk) versus scan_text or scan_directory, but there is no explicit when-to-use statement, no prerequisites, and no stated exclusions. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unbounded_consumption_auditor__scan_textB
Scan LLM/agent application code for Unbounded Consumption ("denial of wallet") anti-patterns from OWASP LLM Top 10 2026's #6 category: LLM calls with no output token limit, hand-rolled HTTP calls to an LLM endpoint with no timeout, agent tool-calling or retry loops with no iteration cap, framework safety limits (LangChain max_iterations, openai-agents max_turns) explicitly disabled, and MCP tool handlers that make billable calls with no visible rate limiting.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label shown in findings (e.g. filename) | |
| content | Yes | The code content to scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing operational: it does not say whether the scan is read-only, whether it makes any LLM/network calls itself, how findings are returned, or performance/rate-limit characteristics. It details detection scope, which is useful context, but not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence that opens with verb+resource before the enumeration. The list of detected anti-patterns is dense but each clause earns its place by defining detection scope; only the sheer length keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter scanner with no output schema, the description adequately covers what is scanned and what is detected. It omits usage routing against sibling scanners and any operational/return behavior, leaving meaningful gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('label' and 'content') are already documented in the schema. The description adds nothing about parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Scan) and resource (LLM/agent application code) and enumerates exactly which anti-patterns it detects, leaving no ambiguity about the tool's job. It does not, however, differentiate itself from the sibling scan_file/scan_directory variants β the text-vs-file distinction rests entirely on the name, not the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the required 'content' parameter and the 'scan_text' name suggest this is for code already in hand, while scan_file/scan_directory handle paths. The description never states when to choose this tool over those siblings or any exclusions, so the routing must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vector_store_scanner__list_patternsA
List the vector-store types this scanner can fingerprint, and what unauthenticated-access checks it runs for each
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The word 'List' implies read-only behavior, and the sentence describes the output content, but it does not explicitly state that the tool has no side effects, requires no authentication, or returns any particular structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every clauseβlisting types and stating the per-type checksβadds distinct value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter discovery tool with no output schema, the description adequately states what will be returned (the supported vector-store types and their unauthenticated-access checks). It is nearly complete, but without annotations it could explicitly note read-only safety or the absence of side effects to fully relieve ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the schema is an empty object with 100% description coverage. The baseline for zero parameters is 4, and the description adds no parameter information because none exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('vector-store types this scanner can fingerprint') plus the secondary content ('what unauthenticated-access checks it runs for each'). This clearly distinguishes it from the sibling scan_endpoint tool, which would perform scanning rather than listing supported patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the nature of a listing tool: an agent would call this to discover available types and checks. However, the description never explicitly says when to use it, when not to use it, or how it relates to scan_endpoint (e.g., 'call this before scanning to see supported types').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vector_store_scanner__scan_endpointA
Probe a vector-database (or vector-index-capable) endpoint for unauthenticated exposure β Weaviate, Qdrant, Chroma, Elasticsearch/OpenSearch (HTTP fingerprinting, escalating from instance info β collection/schema listing β actual stored data), Redis (RESP PING without AUTH), and Postgres/pgvector (wire-protocol SSLRequest + StartupMessage handshake, no real credentials sent). Read-only β never writes or authenticates with real credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| tls | No | Use https:// for HTTP-based probes (Weaviate/Qdrant/Chroma/Elasticsearch). Default: false | |
| host | Yes | Hostname or IP of the endpoint to probe | |
| port | No | Port to probe (defaults to the store type's conventional port, e.g. 6333 for Qdrant) | |
| type | No | Store type to probe for. 'auto' (default) fingerprints the endpoint by trying each known type in turn. | |
| timeoutMs | No | Per-request timeout in milliseconds (default: 4000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full safety/behavior burden and does so well: read-only, never writes, never authenticates with real credentials, Redis PING without AUTH, and Postgres SSLRequest/StartupMessage handshake with no credentials sent. The escalating probe stages are also disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and resource, followed by the type list and the read-only guarantee. Dense but every clause carries information; the parenthetical escalation detail is the only slightly heavy portion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-protocol prober with no output schema and no annotations, the description covers behavior, safety posture and probe stages thoroughly. It omits what findings/results look like and failure handling, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents host/port/type/tls/timeoutMs with defaults. The description reinforces behavior around the enumerated types but adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (probe) plus resource (vector-database/vector-index endpoint) and an explicit enumeration of supported store types and protocols. It is unmistakable against its sibling vector_store_scanner__list_patterns and the other scan_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context for use is clear β checking a live endpoint for unauthenticated exposure β and the escalation path (instance info β schema listing β stored data) frames what the tool does. It does not, however, state when to prefer this over alternatives like list_patterns or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vulnerability_scanner__get_findingsB
Get vulnerability findings from a GuardBee scan with optional severity filter. Includes title, description, and remediation recommendation per finding.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| scanId | No | Filter by scan ID | |
| brandId | No | Filter by brand ID (gets findings across all scans for that brand) | |
| pageSize | No | Results per page (default: 20, max: 100) | |
| severity | No | Filter by severity level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return payload (title, description, remediation recommendation per finding), which is real added context, but says nothing about pagination limits, auth requirements, or result scoping by scanId vs brandId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, and the core retrieval intent is front-loaded ahead of the return-field detail. Efficient, though the second sentence could be trimmed since no output schema exists to justify it fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with fully documented parameters, the description covers the essentials but leaves gaps: no output schema exists, yet it only partially characterizes the return shape, and it omits pagination behavior despite page/pageSize parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including the severity enum, page, and pageSize bounds. The description's mention of the severity filter adds nothing beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (vulnerability findings from a GuardBee scan), which clearly separates it from sibling verbs like start_scan and list_scans. It does not explicitly name those siblings, so an agent must still infer the routing, but the retrieval intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes an optional severity filter but gives no when-to-use guidance relative to list_scans or get_scan_status, and no prerequisite that a scanId typically originates from start_scan. Usage is only implied by 'from a GuardBee scan'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vulnerability_scanner__get_scan_statusB
Get the current status and summary of a GuardBee scan by ID
| Name | Required | Description | Default |
|---|---|---|---|
| scanId | Yes | Scan ID returned by start_scan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it delivers little: it hints the return contains 'status and summary' but says nothing about read-only semantics, polling behavior, possible status values, or what happens for an unknown/completed scan ID. For a status-query tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the scope ('current status and summary') stated immediately and no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only carrier of return-shape and safety information, and it only gestures at 'status and summary' without describing what those fields contain or their possible values. Adequate for identification, incomplete for a polling/status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already documents 'scanId' as the ID returned by start_scan. The description's 'by ID' is redundant with that, adding no format, validation, or origin detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get the current status and summary of a GuardBee scan by ID'), so an agent knows it retrieves scan state rather than findings or scan lists. It does not explicitly name the sibling it is distinct from (e.g., get_findings, list_scans), so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the schema note 'Scan ID returned by start_scan' suggests this follows a start_scan call, but the description itself gives no when-to-use guidance. Nothing states when to prefer this over list_scans or get_findings, nor whether it is meant for polling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vulnerability_scanner__list_scansC
List recent GuardBee scans in your workspace
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| status | No | Filter by scan status | |
| brandId | No | Filter by brand ID | |
| pageSize | No | Results per page (default: 20, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It hints at scoping ('recent', 'in your workspace') but says nothing about read-only nature, pagination behavior, default ordering, or rate limits for a tool that exposes page/pageSize.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scope front-loaded and zero filler. It is arguably under-specified rather than padded, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Four optional parameters, no output schema, and no annotations leave real gaps: the description does not cover pagination semantics across pages, ordering of 'recent', or what a scan record contains. For a list tool with this much unsupervised surface, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, status, brandId, and pageSize are already documented in the schema, including the enum and defaults. The description adds no parameter semantics beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (List) and resource (GuardBee scans) plus scope (recent, in your workspace), which distinguishes it from siblings like start_scan, get_scan_status, and get_findings. It stops short of explicitly saying what it is not, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus the sibling read tools vulnerability_scanner__get_scan_status or get_findings, nor any stated prerequisites. The listing intent is inferable from 'List', but nothing routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vulnerability_scanner__scan_and_reportA
Run a full GuardBee scan and immediately return all critical and high findings with remediation guidance. Best for quick security assessments.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to scan | |
| scenario | No | Scan scenario (default: quick) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses two behavioral traits: the call is synchronous ('immediately return') and the output is filtered to critical/high findings only β an agent might otherwise assume it gets all severities. It omits scan duration/timeout expectations, target authorization requirements, and rate limits, which matter for a live URL scanner.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler, and the primary behavior (full scan, immediate filtered results) is front-loaded ahead of the usage hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations and no output schema, the description covers the essential contract (what it scans, what it returns, that it is synchronous) but is thin on operational reality: no expected runtime, no note on failures for unreachable targets, and no mention of the scenario enum's effect on results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (url, scenario) are documented in the schema and the baseline of 3 applies. The description adds nothing about the scenario enum values (quick, kvkkFocus, gdprFocus, ccpaFocus) or what selecting a compliance scenario changes in the scan.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Run a full GuardBee scan') and states the return content ('all critical and high findings with remediation guidance'). It implies a synchronous behavior that separates it from the async sibling pair (start_scan/get_scan_status/get_findings), but it never names those siblings, so the differentiation must be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Best for quick security assessments' hints at a use case but gives no explicit when-not guidance or alternatives. An agent is left to infer that the async start_scan + get_scan_status + get_findings path exists for longer or pollable scans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vulnerability_scanner__start_scanA
Start a GuardBee security scan on a URL. Returns a scan ID you can use to check status and get findings.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Target URL to scan (e.g. https://example.com) | |
| wait | No | Wait for scan to complete and return summary (default: false). Warning: scans can take minutes. | |
| brandId | No | Brand ID from your GuardBee workspace (alternative to url) | |
| scenario | No | Scan scenario: 'quick' (all modules), 'kvkkFocus', 'gdprFocus', 'ccpaFocus' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the async return contract (scan ID) but omits whether credentials/brand context are required, whether scans are rate-limited, and how long they take (the minutes-long warning lives only in the wait param schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero redundancy, with the action front-loaded before the return-value note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description does well to name the return value (scan ID), which partially substitutes for a missing output schema. But it leaves gaps around auth requirements and the async/latency behavior that an agent needs before invoking a URL-scanning tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (url, wait, brandId, scenario) are already documented in the schema, including the enum values and the minutes-long warning for wait. The description adds no parameter meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Start a GuardBee security scan on a URL') and states the return artifact (a scan ID). It is clearly distinguishable from siblings like get_scan_status and get_findings, though it does not explicitly contrast with vulnerability_scanner__scan_and_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies an async workflow by mentioning that the returned scan ID is used to check status and get findings, which hints at the intended sequencing with get_scan_status/get_findings. However, it never states when to choose this tool over scan_and_report, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
135 tool updates
v0.1.1- Added
a2a_auditor__list_patterns - Added
a2a_auditor__scan_directory - Added
a2a_auditor__scan_file - Added
a2a_auditor__scan_text - Added
agent_graph_auditor__list_patterns - Added
agent_graph_auditor__scan_directory - Added
agent_graph_auditor__scan_file - Added
agent_graph_auditor__scan_text - Added
ai_code_scanner__list_patterns - Added
ai_code_scanner__scan_directory - Added
ai_code_scanner__scan_file - Added
ai_code_scanner__scan_text - Added
audit_gap_auditor__list_patterns - Added
audit_gap_auditor__scan_directory - Added
audit_gap_auditor__scan_file - Added
audit_gap_auditor__scan_text - Added
compliance_checker__analyze_privacy_policy - Added
compliance_checker__check_compliance - Added
compliance_checker__compare_frameworks - Added
compliance_checker__get_compliance_findings - Added
compliance_checker__list_requirements - Added
context_oversharing_auditor__list_patterns - Added
context_oversharing_auditor__scan_directory - Added
context_oversharing_auditor__scan_file - Added
context_oversharing_auditor__scan_text - Added
db_gateway__describe_table - Added
db_gateway__gateway_status - Added
db_gateway__list_tables - Added
db_gateway__query_audit_log - Added
db_gateway__query_table - Added
dependency_auditor__audit_directory - Added
dependency_auditor__audit_npm - Added
dependency_auditor__audit_package - Added
dependency_auditor__audit_pip - Added
dns_intelligence__audit_domains - Added
dns_intelligence__check_email_security - Added
dns_intelligence__check_takeover - Added
dns_intelligence__enumerate_dns - Added
dns_intelligence__enumerate_subdomains - Added
dns_intelligence__lookup_dns - Added
document_scanner__list_detectors - Added
document_scanner__scan_base64 - Added
document_scanner__scan_document - Added
elicitation_auditor__list_patterns - Added
elicitation_auditor__scan_directory - Added
elicitation_auditor__scan_file - Added
elicitation_auditor__scan_text - Removed
list_patterns - Added
llm_redteam__list_probes - Added
llm_redteam__run_probe_suite - Added
mcp_config_auditor__discover_shadow_mcp - Added
mcp_config_auditor__list_host_config_paths - Added
mcp_config_auditor__list_patterns - Added
mcp_config_auditor__scan_config_text - Added
mcp_config_auditor__scan_directory - Added
mcp_config_auditor__scan_file - Added
mcp_config_auditor__scan_inventory - Added
mcp_config_auditor__scan_skill_text - Added
mcp_server_auditor__list_patterns - Added
mcp_server_auditor__scan_directory - Added
mcp_server_auditor__scan_file - Added
mcp_server_auditor__scan_text - Added
memory_poisoning_scanner__list_patterns - Added
memory_poisoning_scanner__scan_directory - Added
memory_poisoning_scanner__scan_file - Added
memory_poisoning_scanner__scan_text - Added
model_scanner__list_patterns - Added
model_scanner__scan_directory - Added
model_scanner__scan_file - Added
oauth_auditor__list_patterns - Added
oauth_auditor__scan_directory - Added
oauth_auditor__scan_file - Added
oauth_auditor__scan_text - Added
owasp_scan__list_owasp_coverage - Added
owasp_scan__owasp_scan_catalog - Added
owasp_scan__owasp_scan_live - Added
owasp_scan__owasp_scan_path - Added
prompt_injection_scanner__list_patterns - Added
prompt_injection_scanner__scan_directory - Added
prompt_injection_scanner__scan_file - Added
prompt_injection_scanner__scan_text - Added
prompt_leak_scanner__list_patterns - Added
prompt_leak_scanner__scan_directory - Added
prompt_leak_scanner__scan_file - Added
prompt_leak_scanner__scan_messages - Added
prompt_leak_scanner__scan_text - Added
rug_pull_detector__baseline_server - Added
rug_pull_detector__check_server - Added
rug_pull_detector__list_baselines - Removed
scan_agent_history - Removed
scan_directory - Removed
scan_file - Removed
scan_git - Removed
scan_text - Added
secret_scanner__list_patterns - Added
secret_scanner__scan_agent_history - Added
secret_scanner__scan_directory - Added
secret_scanner__scan_file - Added
secret_scanner__scan_git - Added
secret_scanner__scan_text - Added
slopsquat_scanner__check_package - Added
slopsquat_scanner__scan_directory - Added
slopsquat_scanner__scan_npm - Added
slopsquat_scanner__scan_pip - Added
ssl_inspector__check_cert_expiry - Added
ssl_inspector__get_cert_info - Added
ssl_inspector__inspect_ssl - Added
ssl_inspector__inspect_ssl_bulk - Added
threat_rules__evaluate_event - Added
threat_rules__evaluate_file - Added
threat_rules__evaluate_text - Added
threat_rules__explain_bridge - Added
threat_rules__framework_map - Added
threat_rules__list_rules - Added
threat_rules__rule_stats - Added
tool_poisoning_scanner__list_patterns - Added
tool_poisoning_scanner__scan_directory - Added
tool_poisoning_scanner__scan_file - Added
tool_poisoning_scanner__scan_text - Added
toxic_flow_auditor__audit_catalog - Added
toxic_flow_auditor__explain_trifecta - Added
toxic_flow_auditor__scan_directory - Added
toxic_flow_auditor__scan_file - Added
toxic_flow_auditor__scan_source - Added
unbounded_consumption_auditor__list_patterns - Added
unbounded_consumption_auditor__scan_directory - Added
unbounded_consumption_auditor__scan_file - Added
unbounded_consumption_auditor__scan_text - Added
vector_store_scanner__list_patterns - Added
vector_store_scanner__scan_endpoint - Added
vulnerability_scanner__get_findings - Added
vulnerability_scanner__get_scan_status - Added
vulnerability_scanner__list_scans - Added
vulnerability_scanner__scan_and_report - Added
vulnerability_scanner__start_scan
6 tool updates
v0.1.0- First observed
list_patterns - First observed
scan_agent_history - First observed
scan_directory - First observed
scan_file - First observed
scan_git - First observed
scan_text
TDQS
Scored across 129 tools
The namespace prefix (e.g. secret_scanner__, tool_poisoning_scanner__) gives each auditor family a distinct focus, and within a family scan_text/scan_file/scan_directory/list_patterns are clearly differentiated by input type. However, many families overlap heavily in purpose β secret_scanner, prompt_leak_scanner, ai_code_scanner, mcp_server_auditor, and threat_rules all detect credentials/PII/unsafe patterns β so an agent can plausibly misselect among near-identical scan_* tools. Descriptions help, but the boundaries between some auditors are fuzzy.
Nearly all tools use a consistent namespace__verb_noun snake_case pattern, which is predictable and readable. Minor deviations exist (rule_stats, framework_map, gateway_status) where the action is a noun rather than a verb, but the overall convention is stable. No camelCase/snake_case mixing.
129 tools is an extreme mismatch for a single server surface, far beyond the 50+ threshold. While it aggregates many independent scanner families, the sheer volume forces an agent to navigate dozens of parallel scan_* variants, making the set unwieldy rather than well-scoped.
The surface broadly covers the security-auditing domain: static code scanning, secret/PII detection, dependency CVEs, DNS/TLS inspection, compliance frameworks, MCP config auditing, and a meta-scan orchestrator. Gaps are minor β mostly no remediation/write actions and some ecosystem coverage (e.g. Ruby/PHP only via directory auto-detection) β but core workflows are well represented.
Maintenance
Related MCP Connectors
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Security firewall for AI agents β scans MCP calls for injection, secrets, and risks.
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceControl-plane proxy that sits in front of MCP servers, enforcing per-identity policy (YAML/OPA/Cedar), budget limits, and an audit trail on every call. Includes real-time anomaly detection that auto-blocks a compromised agent without a human in the loop.17Apache 2.0
- FlicenseNot gradedqualityBmaintenanceEnforces deterministic security policies on Model Context Protocol traffic between agents and remote MCP servers, including request validation, signed human approval, response-side credential blocking, prompt-injection flagging, and privacy-minimized auditing.-
- AlicenseNot gradedqualityCmaintenanceEnables secure MCP traffic by filtering threats with a 3-stage detection pipeline, applying RBAC policies, and redacting sensitive data in real-time via an SSE-inspecting proxy.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and MCP clients to safely access upstream MCP servers through centralized policy enforcement, including allow/deny/approval decisions, schema pinning, circuit breakers, and audit logging.MIT