website-search
Server Details
Improve security writing, score it against rubrics, plan IR, CTI, vuln, and product strategy.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 46 of 46 tools scored. Lowest: 3.6/5.
Tools are clearly separated by domain prefixes (aidefense_, cti_, ir_, malware_, product_, rating_, vuln_) and within each domain have distinct purposes (template, guidelines, context, review, etc.). Generic tools like get_article and search_zeltser are also distinct. No two tools appear to do the same thing.
All tools follow a consistent snake_case verb_noun pattern. Domain-specific tools use {domain}_{verb}_{noun} (e.g., ir_get_template), generic tools use get_{noun}. No mixed conventions or unpredictable patterns.
46 tools is high, but each domain (CTI, IR, malware, product, vuln, aidefense, rating) has a coherent set of get/load/review tools. The count is justified by the breadth of content, though it verges on overwhelming for an agent.
The tool set comprehensively covers each domain: templates, brief templates, guidelines, frameworks, context loading, review criteria, cross-server routes. Additional generic tools (search, articles, writing guidelines, rating sheets) round out the offering. No obvious gaps for the server's purpose.
Available Tools
53 toolsaidefense_cross_mapARead-onlyIdempotentInspect
Get the AI Defense Matrix cross-mapping playbook for mapping product capabilities to matrix cells: coverage taxonomy (primary, secondary, partial, aspirational), differentiation guidance, disambiguation block, worked examples, and out-of-scope examples. The response always includes an inScopeCheck. Products that USE AI to solve a non-AI security problem (deepfake detection, AI-for-fraud, AI features added to existing SIEM, SOAR, or EDR tools) belong in the Cyber Defense Matrix at https://cyberdefensematrix.com. Pairs naturally with product_load_context(productFocus: 'ai_security') for follow-on positioning and GTM work. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Optional: include only one external framework's cross-mapping (e.g., 'owasp-llm-top10') alongside the playbook. | |
| whitespace | No | Optional: when true, surface a `whitespace.sparseCells` block scoped to vendor-empty cells where a product can plausibly succeed (vendorDensity <= 1 AND coverageType in {tooling, hybrid}). Process-shaped sparse cells are excluded by default because their emptiness does not indicate market opportunity. | |
| include_process_shaped | No | Optional: when true with whitespace, include process-shaped sparse cells in the result. Use when you want to see all empty cells regardless of whether a product is the right answer there. | |
| include_framework_alignment | No | Optional: when false, the framework alignment block (~half the response) is omitted in favor of a short note pointing to aidefense_get_framework_alignment. Use when the caller will fetch alignment separately and wants a slim cross_map response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent behavior. The description adds transparency by explaining the response always includes an inScopeCheck, listing output components, and noting that the server never requests program docs or roadmaps. No contradictions found.
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 well-structured, starting with the core purpose and then detailing outputs, optional parameters, and usage notes. It is informative but not overly verbose; a minor redundancy exists (e.g., the note about products belonging to Cyber Defense Matrix is given twice implicitly), but overall it is concise.
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 the lack of an output schema, the description thoroughly explains the response content (playbook components, inScopeCheck) and optional parameter behaviors. It also provides cross-server context by mentioning product_load_context and framework alignment tools. This ensures the agent understands what to expect without needing additional documentation.
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 description provides additional context for each parameter beyond the schema descriptions (e.g., explains whitespace behavior, effect of include_process_shaped, and include_framework_alignment's purpose). This enhances understanding for effective parameter usage.
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 clearly identifies the tool's purpose: 'Get the AI Defense Matrix cross-mapping playbook' with detailed outputs (coverage taxonomy, differentiation guidance, disambiguation block, worked examples, out-of-scope examples). It distinguishes from sibling tools by noting it pairs with product_load_context and contrasts with the Cyber Defense Matrix.
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 guidance is provided on when to use the tool and when not: it mentions pairing with product_load_context for follow-on work, notes that certain products belong to the Cyber Defense Matrix instead, and explains optional parameter usage (e.g., framework, whitespace). This helps the agent decide between this tool and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aidefense_evaluate_programARead-onlyIdempotentInspect
Get the AI Defense Matrix evaluation playbook for assessing an AI security program: per-cell prompts, gap-inventory template, and a workflow that walks each asset class first and rolls findings up to the Govern column. Supports mode='gate' for binary deployment-gate decisions (returns the deployment-gate workflow plus gate-tier prompts only) and consumerPattern for scoping to consumed-vs-built AI deployments. The AI applies these prompts against your program documentation locally, and no program details leave your client. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | assessment (default): full program assessment — all maturity tiers. gate: binary deployment-gate decision — returns the deploymentGateWorkflow plus only gate-tier prompts (drops 90-day and mature prompts). | |
| asset | No | Optional: focus the prompts on one asset class. | |
| assets | No | Optional: focus the prompts on multiple asset classes (e.g., for a deployment that touches orchestration + runtime data + agent identities). Takes precedence over `asset` if both are set. | |
| function | No | Optional: focus the prompts on one NIST CSF function. | |
| framework | No | Optional: scope cellPrompts to those whose 'sources' field cites the named framework. Accepts a bare slug ('iso-42001') for any prompt citing that framework, or a 'framework:concept-id' form ('mitre-atlas:AML.T0051') to match an exact technique. Composes with mode, consumer_pattern, asset, and assets. | |
| consumer_pattern | No | consumed: organization consumes a third-party model (GPT-4 via API) — drops AI-Workload Platforms, Training Data, AI-Generated Code rows, and AI Model identify/protect/detect/respond/recover (keeps ai-model.govern). built: organization hosts/trains its own model — all rows in scope. hybrid (default behavior when omitted): all rows in scope. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations, emphasizing that the tool never requests program docs and keeps analysis local, aligning with readOnlyHint and idempotentHint.
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 information-dense and well-structured, front-loading the main purpose and covering parameters, privacy, and workflow, though slightly 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?
Given 6 parameters and no output schema, the description covers all necessary context including parameter interactions, privacy guarantees, and workflow; minor omission of return format, but expected without 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?
Despite 100% schema coverage, the description enriches parameter understanding by explaining behavioral interactions (e.g., mode values, consumerPattern scoping, assets precedence over asset), which the schema alone does not convey.
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 clearly states the tool retrieves an AI Defense Matrix evaluation playbook for assessing AI security programs, including per-cell prompts, gap-inventory template, and workflow. It distinguishes itself from siblings by specifying the content and local analysis nature.
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 provides detailed guidance on parameter usage (mode, consumerPattern, asset, assets, function, framework) and their effects, but lacks explicit when-not-to-use alternatives or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aidefense_get_framework_alignmentARead-onlyIdempotentInspect
Get AI Defense Matrix cross-mappings to nine external frameworks: NIST IR 8596, CSA AI Controls Matrix, ISO 42001, Google SAIF, SANS Critical AI Security Guidelines, MITRE ATLAS, OWASP AI Exchange, OWASP LLM Top 10, OWASP Agentic Security Top 10. Each row maps an AI asset class to how that framework applies. Each returned framework also carries a 'concepts' array of the structured IDs (MITRE ATLAS techniques, OWASP risks, ISO clauses) the matrix references for it. Supports a 'buyer' archetype shortcut to scope to the frameworks a particular buyer will care about. Use to translate between framework vocabularies. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | Optional: scope to a buyer archetype's framework subset. federal: NIST IR 8596 + ISO 42001. ai-governance: ISO 42001 + CSA AICM. app-security: OWASP LLM Top 10 + OWASP AI Exchange. threat-modeler: MITRE ATLAS + OWASP Agentic Top 10. enterprise: all 9 (same as omitting both parameters). | |
| framework | No | Optional: scope to one framework slug (e.g., 'mitre-atlas', 'owasp-llm-top10'). Omit to get all nine. Wins over 'buyer' if both are passed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent, but the description adds significant behavioral context: the tool returns rows with a 'concepts' array, and it includes a privacy statement that the server never requests program docs. No contradictions with annotations.
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 front-loaded with the core purpose and is well-structured with clear sentences. It is slightly long, but each sentence adds information; no fluff.
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 no output schema, the description sufficiently explains the output structure (rows per asset class, concepts array). It covers both parameters thoroughly and includes relevant behavioral context (privacy). No gaps for the tool 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 coverage is 100% with enum descriptions, but the description adds value by detailing the exact framework subsets for each buyer archetype (e.g., 'federal: NIST IR 8596 + ISO 42001'), which goes 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 uses specific verbs ('Get', 'cross-mappings') and clearly identifies the resource: AI Defense Matrix alignments to nine named frameworks. It distinguishes from siblings like aidefense_get_matrix and aidefense_cross_map by emphasizing multiple frameworks and the 'buyer' archetype.
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 explicitly to 'Use to translate between framework vocabularies' and explains the buyer and framework parameters. However, it does not mention when not to use or explicitly reference alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aidefense_get_matrixARead-onlyIdempotentInspect
Get the structured AI Defense Matrix: 8 AI-specific asset rows x 6 NIST CSF 2.0 function columns. Each cell describes a control category for defending that asset class. Supports optional filtering by asset or function. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | Optional: filter to one asset class (e.g., 'ai-model', 'training-data'). Returns the 6 cells for that row. | |
| format | No | structured: typed JSON of assets, functions, and cells (default). markdown: human-readable rendering grouped by asset. | |
| function | No | Optional: filter to one NIST CSF function ('govern', 'identify', 'protect', 'detect', 'respond', 'recover'). Returns the 8 cells for that column. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds value by stating the server does not request sensitive documentation and ensures local analysis, providing context beyond the annotations.
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 effectively convey the core purpose and filtering. The third sentence on server policy is slightly tangential but does not overly bloat the 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?
The description explains the matrix structure, filtering, and server behavior regarding documentation. However, it does not detail the return format beyond the format parameter, which is adequate for a simple retrieval 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?
With 100% schema description coverage, the baseline is 3. The description mentions optional filtering but does not add substantial meaning beyond the schema's parameter descriptions and enums.
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 clearly states the tool retrieves a structured AI Defense Matrix with specific dimensions (8 assets x 6 NIST CSF functions) and mentions optional filtering. It distinguishes the resource despite not differentiating from 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 explicit guidance on when to use this tool versus alternatives like aideo_fense_cross_map or get_framework_alignment. The description only states the tool's functionality and filtering options, lacking usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aidefense_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's AI Defense Matrix context: the 8-asset x 6-NIST-CSF-2.0-function matrix, nine cross-walked frameworks (NIST IR 8596, CSA AICM, ISO 42001, Google SAIF, SANS Critical AI Security Guidelines, MITRE ATLAS, OWASP AI Exchange, OWASP LLM Top 10, OWASP Agentic Top 10), and the evaluation + cross-mapping playbooks. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | No | evaluate_program: practitioner playbook for assessing an AI security program. cross_map_product: vendor playbook for mapping product capabilities to matrix cells. general: both playbooks (default). | |
| detail_level | No | minimal: matrix summary counts only, no playbooks or framework rows. standard: full matrix, framework alignments, and the selected playbook(s) (default). comprehensive: everything including related articles. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that the server never requests program docs or product roadmaps and instructs the AI to keep data local, clarifying no data exfiltration. This provides useful behavioral context beyond annotations.
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 sentence that efficiently front-loads the key components and behavioral promise. It could be slightly more structured (e.g., bullet points) but is under 50 words and contains 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?
While the description covers the loaded content, it lacks details on return format or structure, especially since there is no output schema. The vague 'flows to your AI for local analysis' is sufficient for a context-loading tool but could be more explicit about what the AI receives.
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% with well-described enum parameters. The description adds context by explaining that purpose maps to playbooks (evaluate_program, cross_map_product, general) and detail_level controls output detail, enhancing the schema's meaning.
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 clearly states it loads Lenny Zeltser's AI Defense Matrix context, listing the 8x6 matrix, nine cross-walked frameworks, and playbooks. It distinguishes from siblings like aidefense_cross_map and aidefense_evaluate_program by specifying the comprehensive context loading.
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 this tool is for loading the full context, but does not explicitly contrast with sibling tools that load specific parts (e.g., aidefense_get_matrix, aidefense_get_framework_alignment). It lacks when-to-use guidance, relying on the agent to infer from tool names and purpose parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aidefense_locate_conceptARead-onlyIdempotentInspect
Reverse-lookup a single concept ID (MITRE ATLAS technique like 'AML.T0051', OWASP LLM Top 10 risk like 'LLM01', OWASP Agentic Top 10 issue like 'ASI03', or ISO 42001 Annex A clause like 'A.6') across the AI Defense Matrix. Returns which framework the concept belongs to, the asset rows whose alignment cites it, the cells whose evaluation cellPrompts cite it, and those prompts themselves. Useful when a vendor's product is defined by a specific technique ('we defend AML.T0051') and they need to find which matrix cells to claim. Recognizes only concepts with structured IDs; for prose-only frameworks (NIST IR 8596, CSA AICM, Google SAIF, OWASP AI Exchange) use aidefense_get_framework_alignment instead. This server never requests your program docs or product roadmap and instructs your AI to keep them local—the matrix, framework alignments, and playbooks flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | A single concept ID. Recognized patterns: 'AML.T<4 digits>(.<3 digits>)?' (MITRE ATLAS), 'LLM<2 digits>' (OWASP LLM Top 10), 'ASI<2 digits>' (OWASP Agentic Top 10), 'A.<digits>' (ISO 42001 Annex A clauses). Case-insensitive. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it returns framework, assets, cells, and prompts, and clarifies it only handles structured IDs. No contradictions.
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?
Description is front-loaded with core purpose, then returns, use case, boundaries, and a note about data privacy. Every sentence is purposeful and concise, 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?
Given a single parameter, full schema coverage, and no output schema, the description adequately explains what the tool returns, provides examples, and specifies when to use alternatives. Complete for a lookup tool of this 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 has 100% coverage for the single parameter 'concept' with pattern examples. Description adds context by listing explicit concept ID examples (AML.T0051, LLM01, etc.) and explaining the overall purpose, going beyond the schema description.
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?
Description clearly states it reverses-looks up a single concept ID across the AI Defense Matrix, returning framework, assets, cells, and prompts. Distinguishes from sibling aidefense_get_framework_alignment by specifying prose-only frameworks should use that instead.
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?
Explicitly states when to use (vendor product defined by specific technique) and when not to (prose-only frameworks), naming the alternative tool. Also notes the server never requests program docs and instructs AI to keep them local.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_get_brief_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's Security Assessment one-page executive brief template. Standalone variant of assessment_get_template for callers that only want the brief without the long-form report. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as true, indicating safe read operation. The description adds useful behavioral context beyond annotations: the server never requests user assessment notes/report and instructs the AI to keep data local, addressing privacy/security concerns. This enhances transparency.
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: first sentence states the primary function, second explains variant relationship and data handling. Every sentence adds value; no fluff. Front-loaded with the action and resource.
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 template retrieval tool with no parameters and clear annotations, the description covers purpose, variant differentiation, data handling, and constraints. Output schema is absent but unnecessary given the simple return. Complete and informative.
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?
No parameters exist (0 params, 100% schema coverage). Baseline is 4 per rules. Description does not need to add parameter details, but it explains the output (brief template) and the tool's role, which is sufficient context.
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?
Description clearly states it gets a specific one-page executive brief template (Lenny Zeltser's Security Assessment). It distinguishes itself from the sibling tool assessment_get_template by specifying that it is a standalone variant for callers wanting only the brief without the long-form report. The verb 'get' matches the resource 'template'.
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 explicitly tells when to use this tool (when only the brief is needed) and references the alternative sibling assessment_get_template for the long-form report. It also provides context about the server's behavior (never requests notes/report, instructs AI to keep them local), guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_get_cross_server_routesARead-onlyIdempotentInspect
Get Lenny Zeltser's Security Assessment cross-server handoff routes — when this MCP server can't fulfill a request, which other MCP servers (or fallback workflows) to consult. Surfaces a compact subset of assessment_load_context. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds valuable behavioral details: the server never requests notes/reports and instructs AI to keep them local, and it surfaces a subset of load_context. No contradiction with annotations.
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: first defines purpose, second adds behavioral context. Every word is necessary, no redundancy. Front-loaded with key purpose.
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 zero parameters, no output schema, and safe annotations, the description fully covers what the tool returns, when to use it, and privacy behavior. Complete for a simple routing 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?
No parameters exist; baseline per instructions is 4. The description adds value by explaining the output (routes, subset of load_context) 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 clearly states the tool retrieves cross-server handoff routes for Security Assessment, specifying it's a compact subset of assessment_load_context. It distinguishes from sibling _get_cross_server_routes tools by naming 'Lenny Zeltser's Security Assessment'.
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 indicates usage when the server can't fulfill a request, providing clear context. However, it does not explicitly state when not to use or list alternatives beyond hinting at assessment_load_context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_get_frameworksARead-onlyIdempotentInspect
Get Lenny Zeltser's Security Assessment frameworks (primary frameworks the brief structurally derives from) plus optional sibling frames (adjacent frameworks that aren't the structural backbone). Pass include_siblings: false to skip sibling blocks. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| include_siblings | No | Include the siblingFrames block (adjacent frameworks with whyOmitted notes) and the siblingArtifacts block (related templates) in the response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive behavior. The description adds meaningful disclosure: the server never requests assessment notes/reports and instructs AI to keep them local, which is valuable privacy context beyond the annotations.
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 efficiently cover purpose, parameter usage, and privacy. The privacy note could be seen as slightly peripheral to the tool's core function, but no fluff; 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?
Given no output schema, the description gives some idea of response content (primary frameworks, sibling blocks, whyOmitted notes) but lacks a detailed structure or field list. Adequate for a simple tool, but could be more complete about what exactly is returned.
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 parameter, but the description adds semantic context about what sibling blocks contain ('adjacent frameworks with whyOmitted notes'), which goes beyond the schema's technical description.
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?
Description clearly states it retrieves security assessment frameworks, distinguishing primary from sibling frames. However, it does not explicitly differentiate from other domain-specific get_frameworks tools (e.g., cti_get_frameworks), relying on the tool name's domain prefix for disambiguation.
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 guidance on the `include_siblings` parameter (e.g., pass false to skip), but lacks explicit advice on when to use this tool versus alternatives (e.g., assessment_get_template) or context signals for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert security assessment report writing guidelines. Topics: severity (the risk-adjusted severity model — the spine), findings, remediation, methodology, scope, strengths, brief (one-page brief section guidance), executive_summary, analysis, anti_patterns, frameworks, handoffs, and summary. The general 'tone' topic defers to get_security_writing_guidelines for the canonical Five Elements rules. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Which topic to surface. Defaults to a 'summary' overview when omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate safe operations. The description adds context on data privacy (never requests notes/report, keeps them local) and the deferral of tone topic, providing behavioral details beyond annotations.
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 paragraph of about 5 sentences, efficiently covering purpose, topics, deferral, and privacy. While concise, a more structured format (e.g., bullet points) could improve 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 simple one-parameter tool with no output schema, the description covers purpose, topics, default behavior, and privacy. It lacks detail on output format but is sufficient for an agent to understand and use 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?
Schema description coverage is 100% with the 'topic' parameter well-described. The description adds semantic meaning by elaborating on topics (e.g., 'severity (the risk-adjusted severity model — the spine)'), providing extra value beyond the schema enums.
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 clearly states it retrieves Lenny Zeltser's expert security assessment report writing guidelines and lists specific topics. It distinguishes itself from sibling tools like get_security_writing_guidelines by noting that 'tone' defers to that tool, and the 'assessment_' prefix differentiates it from other domain-specific get_guidelines 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 description implies usage for assessment report writing guidelines and mentions deferral for the tone topic. However, it does not explicitly state when to use this tool over other get_guidelines siblings (e.g., cti_get_guidelines) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's security assessment template. The report is a reader-first findings report: Executive Summary, Assessment Scope, Findings Summary, Detailed Findings, Remediation Priorities, optional Attack Path Narrative and Detection and Response Observations, Methodology, Limitations and Disclaimer, Appendices, and About this Report. The one-page brief covers Bottom Line, Key Findings, Recommended Actions, and More Information. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which artifact to return: 'report' (full findings report, default) or 'brief' (one-page executive brief). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral context: it highlights the privacy aspect (notes are not sent to the server, analysis is local) and details the structure of both output types. This goes beyond the annotations and gives the agent a better understanding of how the tool operates.
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 four sentences, each earning its place: first states the purpose, second and third describe the two output types, fourth adds important privacy information. It is front-loaded and efficient. A slightly more structured format (e.g., bullet points) could improve scannability, but it is already clear and concise.
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 the tool's simplicity (one optional parameter, no output schema, and comprehensive annotations), the description provides sufficient context for use. It covers the output structure, distinguishes between report and brief, and adds the privacy commitment. However, it does not explain the tool's role relative to other 'assessment' siblings (e.g., assessment_get_guidelines) or provide example use cases. Still, it is largely complete for the intended purpose.
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 input schema already describes the 'kind' parameter with an enum and default, achieving 100% coverage. The description adds meaning by explaining the contents of both 'report' and 'brief' artifacts, which helps the agent understand what each value returns. This goes beyond the schema descriptions, which only name the values.
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 it retrieves Lenny Zeltser's security assessment template, with two output formats (report and brief) via the 'kind' parameter. This is specific and action-oriented. However, the presence of a sibling tool 'assessment_get_brief_template' creates potential confusion, as this tool already can return the brief. No differentiation from that sibling is provided, so purpose clarity is slightly diminished.
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 the tool is used for getting security assessment templates, but it does not explicitly state when to use this tool versus the sibling 'assessment_get_brief_template' or other similar templates. There is no guidance on prerequisites or when the report vs. brief should be selected. The context is implied but not explicitly protective against misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's security assessment report writing context for local analysis. Returns a JSON payload with the risk-adjusted severity model (the spine), reader-first section guidance, completeness criteria, frameworks (NIST SP 800-115/800-30, OWASP WSTG/Risk Rating, CVSS, MITRE ATT&CK, PTES, PCI DSS, CREST), and the mcpHandoffs array. The 'profile' parameter ANNOTATES sections (internal/external applicability) rather than filtering — every section is returned so cross-profile comparisons are possible. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Narrow the response to specific topics; 'all' includes everything. | |
| profile | No | Annotate sections by applicability to this profile (internal or external). Sections are NOT filtered — annotated only. | |
| template | No | Foreground 'report' or 'brief' sections; both lists stay in the payload. | |
| detail_level | No | Response size: minimal, standard, or comprehensive. | |
| include_examples | No | Include exampleGood/examplePoor in fieldGuidance entries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds significant context: it explains that profile annotates rather than filters, that the server never requests assessment notes, and instructs AI to keep data local—transparency beyond annotations.
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 paragraph that efficiently covers purpose, payload contents, parameter behavior, and data privacy. Every sentence adds value, 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?
The description provides a good overview of the returned payload and parameter behaviors. However, without an output schema, a bit more detail on the structure of the JSON response (e.g., top-level keys) would improve completeness. Still sufficient for basic use.
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 descriptions exist. The description adds extra value by explicitly clarifying the profile parameter's non-filtering behavior, which is not clear from the schema alone. Other parameters are adequately described in 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 clearly states the verb 'Load' and the resource 'Lenny Zeltser's security assessment report writing context,' listing specific payload contents. It distinguishes from sibling getter tools by being a comprehensive loader returning everything, not a filtered subset.
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 this is the comprehensive context loader for assessment writing, but does not explicitly contrast with sibling tools like assessment_get_template or state when to use alternatives. It clarifies the profile parameter's annotate-not-filter behavior, aiding decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assessment_review_reportARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing security assessment report or brief. Surfaces the 17 info-assessment review items across five groups (Key Takeaways, Assessment Scope, Prioritized Findings, Remediation Suggestions, Assessment Methodology), cross-cutting criteria, the risk-adjusted severity model, anti-patterns, and a pointer to rating_score_writing for a numeric score. This server never requests your assessment notes or report and instructs your AI to keep them local—the templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus areas: completeness, clarity, tone, structure, severity, remediation, strengths, anti_patterns, or all. | |
| sections | No | Narrow to specific report sections; 'all' includes every section. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that the server never requests assessment notes or reports and instructs the AI to keep them local, adding privacy and processing behavior beyond annotations (readOnlyHint, idempotentHint). No contradictions with annotations.
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 unnecessary words. First sentence states core purpose, second adds key behavioral and contextual details. Highly efficient.
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?
Description fully covers what the tool returns (17 items, groups, criteria, model, anti-patterns) and how it behaves (no data collection, local analysis). No output schema, but the description sufficiently informs the agent of the tool's output structure.
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% with clear parameter descriptions. Description adds value by explaining the 17 items and five groups, giving contextual meaning to the focus and sections parameters beyond their enum values.
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?
Description clearly states it provides 'expert criteria for reviewing an existing security assessment report or brief,' specifying 17 items across five groups, cross-cutting criteria, risk-adjusted severity model, anti-patterns, and a pointer to rating_score_writing. This specific verb-resource pairing distinguishes it from sibling tools like cti_review_report or ir_review_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?
Implies usage for assessment report review and mentions a pointer to rating_score_writing for numeric scoring. Though not explicit when-not-to-use or alternatives, the tool name and description sufficiently differentiate it from sibling review tools in other domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_get_brief_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's CTI one-page executive brief template. Standalone variant of cti_get_template for callers that only want the brief without the long-form report. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the server never requests campaign/threat-intel notes and instructs AI to keep them local, providing useful behavioral context beyond the annotations.
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 with no wasted words: first sentence states the purpose, second distinguishes from sibling, third adds privacy behavior. Front-loaded and concise.
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 no parameters and no output schema, the description is complete. It explains what the tool does, when to use it, and important behavioral notes about data locality.
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?
No parameters, so schema coverage is 100%. Baseline is 4; the description mentions what the tool returns (the template) but does not need to add parameter details since there are none.
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 clearly states it gets a specific template (one-page executive brief) from Lenny Zeltser, and distinguishes itself from the sibling cti_get_template by noting it is the standalone variant for callers who only want the brief without the long-form 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?
Explicitly tells when to use this tool (when only the brief is needed) vs the sibling cti_get_template (which also provides a long-form report). Also provides privacy context: the server never requests campaign or threat-intel notes and instructs AI to keep them local.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_get_cross_server_routesARead-onlyIdempotentInspect
Get Lenny Zeltser's CTI cross-server handoff routes — when this MCP server can't fulfill a request, which other MCP servers (or fallback workflows) to consult. Surfaces a compact subset of cti_load_context. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive; the description adds context that the server never requests campaign/threat-intel notes and instructs AI to keep data local, enhancing transparency beyond annotations.
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 three sentences, front-loaded with the main purpose, and every sentence adds value. No 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?
Given no parameters and no output schema, the description provides sufficient context about purpose and usage, but could elaborate on the output format or structure to be fully 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?
With zero parameters, the description has no need to explain parameters. Per rubric, baseline 4 is appropriate as the schema already covers everything.
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 clearly states the tool retrieves cross-server handoff routes for Lenny Zeltser's CTI, distinguishing it from siblings by noting it is a subset of cti_load_context.
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 explicitly mentions when to use it ('when this MCP server can't fulfill a request') and hints at alternatives via cti_load_context, but does not provide a comprehensive list of when not to use it versus other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_get_frameworksARead-onlyIdempotentInspect
Get Lenny Zeltser's CTI frameworks (primary frameworks the brief structurally derives from) plus optional sibling frames (adjacent frameworks that aren't the structural backbone). Pass include_siblings: false to skip sibling blocks. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| include_siblings | No | Include the siblingFrames block (adjacent frameworks with whyOmitted notes) and the siblingArtifacts block (related templates) in the response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds critical privacy context: the server never collects campaign/threat-intel notes and instructs AI to keep data local, which is beyond 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?
Three concise sentences: purpose, parameter usage, and important data privacy note. 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 single-parameter, read-only tool with rich annotations, the description adequately covers purpose and behavior. Lacks details on response structure, but output schema is absent and the tool is straightforward.
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 already fully describes the include_siblings parameter. The description reinforces its purpose with a concrete usage example ('Pass include_siblings: false to skip sibling blocks'), adding practical 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?
The description clearly states it retrieves CTI frameworks (primary and optional siblings) derived from Lenny Zeltser, distinguishing it from sibling get_frameworks tools for other domains like IR or malware.
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 explicit guidance on the include_siblings parameter and when to skip sibling blocks. While it doesn't list alternatives, the domain-specific naming (CTI) and sibling tool list imply usage for CTI briefs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert CTI writing guidelines. Topics include tone, words, structure, executive_summary, voice, articles, summary, brief (one-page brief section guidance), handoffs (cross-server routing), methodology (the three subsections), fields (per-field guidance), and CTI-specific topics: attribution (full Six Signals prose), confidence (ICD-203 ladder), pyramid_of_pain, six_signals (signals table only), and anti_patterns. The general writing topics (tone/words/structure/executive_summary) now defer to get_security_writing_guidelines for the canonical Five Elements rules; CTI-specific content lives in the other topics. Pair the 'fields' topic with field_id for single-field guidance. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Which topic to surface. Defaults to a 'summary' overview when omitted. | |
| field_id | No | Only meaningful with topic='fields'. When supplied, returns guidance for the named field id. When omitted under topic='fields', returns a directory of available field ids. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds important behavioral context: the tool never requests sensitive campaign/threat-intel notes and instructs the AI to keep them local, enhancing transparency about data handling.
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 relatively long but well-structured with a list of topics and special notes. Every sentence adds valuable context. Could be slightly more concise, but it earns its 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?
Given the complexity of the tool (many topics, cross-references), the description covers all aspects: what each topic returns, the deferral to another tool, the pairing of fields with field_id, and data handling. No output schema exists, but the description sufficiently explains return 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 coverage is 100% with both parameters described. The description adds significant value: it explains that `topic` defaults to 'summary', and that `field_id` is only meaningful with topic='fields' and when omitted returns a directory. This goes 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 clearly states it retrieves Lenny Zeltser's CTI writing guidelines and lists all available topics. It distinguishes from the sibling `get_security_writing_guidelines` by noting that general writing topics defer to that 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 description explains when to use this tool (CTI-specific topics) and when to defer to `get_security_writing_guidelines` (general writing). It also describes how to use the `fields` topic with `field_id`, providing clear context. No explicit when-not-to-use statements but the differentiation is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's cyber threat intel template. The long report covers Executive Summary, Actor Snapshot, Methodology, Activity Overview, Representative Adversary Techniques, Indicators of Compromise, Defensive Implications, Attribution Analysis, Anticipated Activity, optional Strategic Analysis and Competing Hypotheses, plus About this Report. The one-page brief covers Bottom Line, Quick Facts, Are We in Scope?, Defensive Actions, What We Don't Know, More Information. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| template | No | Which artifact to return: 'report' (12-section long report, default) or 'brief' (one-page executive brief). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnly, idempotent, non-destructive. Description adds valuable context: 'This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis,' addressing data privacy behavior beyond annotations.
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?
Description is two substantive sentences plus a privacy statement. Lists sections efficiently. Front-loaded with purpose. Could be slightly tighter but no wasted 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 simple tool with one optional param and no output schema, description sufficiently covers what is returned (full section lists). Does not explain format, but completeness is adequate for agent understanding.
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?
Input schema covers parameter semantics with 100% description coverage (enum, description). Description adds value by detailing what each template option returns (sections of 'report' vs 'brief'), providing context 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?
Description clearly states 'Get Lenny Zeltser's cyber threat intel template' with two specific variants (report and brief). Lists sections for both, providing a specific verb+resource. Distinguishes from siblings like ir_get_template by being CTI-specific.
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?
Description implies use for getting CTI templates but provides no explicit when-to-use or when-not-to-use guidance. Does not mention alternatives or contextual usage, leaving the agent to infer based on domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's CTI writing context for local analysis. Returns a JSON payload with section guidance, completeness criteria, framework grounding (12 frameworks), the six attribution signals, ICD-203 confidence levels and ladder, and the Pyramid of Pain. The 'profile' parameter ANNOTATES sections (internal/public applicability label) rather than filtering — every section is returned so cross-profile comparisons are possible. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Narrow the response to specific topics; 'all' includes everything. | |
| profile | No | Annotate sections by their applicability to this profile (internal or public). Sections are NOT filtered — annotated only. | |
| template | No | Foreground 'report' or 'brief' sections; both lists stay in the payload. | |
| detail_level | No | Response size: minimal (~2-3k tokens), standard (~5-7k), comprehensive (~12k+). | |
| include_examples | No | Include exampleGood/examplePoor in fieldGuidance entries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, and the description reinforces no destructive behavior. It adds rich behavioral detail, such as the payload contents (12 frameworks, ICD-203 confidence, etc.) and the privacy statement. No contradictions.
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 paragraph of about 150 words, covering purpose, behavior, and privacy. It is reasonably concise and front-loaded with the main action. Could be slightly more structured (e.g., bullet points) but effective.
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 no output schema, the description adequately lists the major components of the response (section guidance, frameworks, attribution signals, etc.). It informs the agent about the payload's breadth. However, it lacks detail on the exact JSON structure, which would help the agent parse the response.
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 baseline is 3. The description adds value by clarifying that `profile` annotates rather than filters, enabling cross-profile comparisons. This provides insight beyond the schema's description.
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 clearly states it loads Lenny Zeltser's CTI writing context for local analysis, specifying the resource and verb. It differentiates from sibling tools like `ir_load_context` by focusing on CTI writing guidance. 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?
The description explains when to use: for local analysis with CTI writing context, and highlights privacy (no campaign notes requested). However, it does not explicitly compare to alternatives like `cti_get_guidelines` or `cti_get_template`, leaving some ambiguity about which tool to choose for specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cti_review_reportARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing CTI report or brief. Surfaces per-theme review criteria (framework, confidence, attribution, defense, distribution, etc.), cross-cutting criteria, the six anti-patterns to watch for, and focus-driven writing analysis. This server never requests your campaign or threat-intel notes and instructs your AI to keep them local—templates and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus areas: completeness, clarity, tone, structure, attribution, confidence, or all. | |
| sections | No | Narrow to specific report sections; 'all' includes every section. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds meaningful context about data privacy: 'This server never requests your campaign or threat-intel notes and instructs your AI to keep them local.' This is a valuable behavioral detail beyond the annotations.
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 main purpose, followed by content enumeration and a privacy note. No redundant words; every sentence 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?
The description explains what criteria are surfaced but does not specify the return format (e.g., structured JSON, markdown). Since there is no output schema, more detail on the output format would be helpful, though the phrase 'flow to your AI for local analysis' implies the output is consumed by the AI.
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?
Input schema has 2 parameters with enum values and descriptions covering 100%. The description mentions 'per-theme review criteria (framework, confidence, attribution, defense, distribution, etc.)' which hints at the 'focus' parameter but does not add significant new meaning 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 uses a specific verb ('Get') and resource ('Lenny Zeltser's expert criteria for reviewing an existing CTI report or brief'), and enumerates the types of criteria surfaced. This clearly distinguishes it from sibling tools like ir_review_report or cti_get_guidelines.
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 stating what it does ('reviewing an existing CTI report or brief'), but does not explicitly state when to use this tool versus alternatives like ir_review_report. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleARead-onlyIdempotentInspect
Get the full content of a specific article from Lenny Zeltser's Website by URL path. Security articles on malware analysis, incident response, and security leadership. Returns title, date, topics, summary, and full body text.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Article URL path (e.g., '/about', '/article-slug') |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| body | No | |
| date | No | |
| site | Yes | |
| title | Yes | |
| topics | No | |
| abstract | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint, idempotentHint) by stating it retrieves content. It adds what fields are returned but no additional behavioral context like error handling or rate limits. Annotations already provide core info.
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 fluff. Purpose and return details are front-loaded. Every sentence serves a purpose.
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 the tool has one parameter, annotations, and an output schema, the description sufficiently covers what the tool does and returns. However, it could mention behavior if the article is not found or auth requirements.
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 'url' has 100% schema coverage with a description and example. The description adds 'by URL path' and the example clarifies the format, adding value 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 clearly states the verb 'get' and the resource 'full content of a specific article', distinguishing it from sibling tools focused on assessments, CTI, and IR. It also specifies the domain (Lenny Zeltser's Website) and content 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?
No explicit guidance on when to use this tool versus alternatives like 'search_zeltser' or other content retrieval tools. The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesARead-onlyIdempotentInspect
List all capabilities and tools available from the Lenny Zeltser's Website MCP server, including search tools and any specialized features like IR report writing assistance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds value by specifying the scope ('including search tools and any specialized features like IR report writing assistance'), which provides context beyond annotations. It doesn't contradict annotations, as listing is consistent with read-only 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 a single, well-structured sentence that efficiently conveys the tool's purpose and scope. It is front-loaded with the core action ('List all capabilities and tools') and adds necessary context without waste. Every part of the sentence contributes to understanding.
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 the tool's simplicity (0 parameters, no output schema) and rich annotations, the description is largely complete. It explains what the tool does and its scope. However, it could be more complete by clarifying the output format or how results are structured, as there's no output schema provided. The annotations cover behavioral aspects well.
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 0 parameters, with 100% schema description coverage (empty schema). The description doesn't need to explain parameters, as there are none. It appropriately focuses on the tool's purpose without redundant parameter details, meeting the baseline for zero 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 clearly states the tool's purpose: 'List all capabilities and tools available from the Lenny Zeltser's Website MCP server.' It specifies the verb ('List') and resource ('capabilities and tools'), and mentions the scope ('including search tools and any specialized features like IR report writing assistance'). However, it doesn't explicitly differentiate from siblings like 'get_index_info' or 'search_zeltser', which might also provide related metadata or listings.
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 context by stating it lists 'all capabilities and tools,' suggesting it's for discovery or overview purposes. However, it lacks explicit guidance on when to use this tool versus alternatives, such as whether 'get_index_info' might provide similar information or if this is the primary entry point for tool enumeration. No exclusions or clear alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_infoARead-onlyIdempotentInspect
Get statistics about the Lenny Zeltser's Website search index including total pages indexed, last update time, and available tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| site | Yes | |
| tools | Yes | |
| version | Yes | |
| generated | Yes | |
| pageCount | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so bar is lower. Description adds value by specifying exact statistics returned, beyond just 'get statistics'. No contradictions.
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 that is clear, front-loaded, and contains no unnecessary words. Every element serves a purpose.
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 zero parameters and presence of output schema, the description adequately covers what the tool does by listing key output fields. No gaps in information needed for an agent to decide to invoke.
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?
No parameters in schema, so baseline is 4. Description does not need to explain parameters, but it does not add parameter-specific meaning. Schema coverage is 100% trivially.
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?
Clearly states verb 'Get' and specific resource 'statistics about the Lenny Zeltser's Website search index', listing fields like total pages indexed, last update time, and available tools. Distinguishes from sibling 'search_zeltser' which likely performs searches.
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 retrieving index statistics, but does not explicitly state when to use vs alternatives like search_zeltser or other info tools. No exclusion or alternative guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_security_writing_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert writing guidelines for security reports and assessments. Provides guidance on tone, structure, clarity, executive summaries, and avoiding common writing mistakes. Includes rating-sheet items (the four lens sheets: structure, look, words, tone) as concrete reference points for grounded feedback. Works for any security document. This server never requests your documents and instructs your AI to keep them local—guidelines flow to your AI for local analysis. Note: For incident response reports specifically, use the ir_* tools which provide deeper section-by-section review criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Which aspects of writing to focus on. 'tone': voice, do/avoid examples. 'structure': paragraphs, report qualities, formatting. 'clarity': sentences, jargon alternatives. 'executive_summary': exec summary best practices. 'critique': writing as critique not criticism. 'analytical': evidence attribution, confidence language, comparative language, gap acknowledgment. 'all' or omit for everything. | |
| include_examples | No | Include before/after examples. Default: true. Set to false for smaller response. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds that the server never requests documents and keeps them local, enhancing transparency. No contradiction with annotations.
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 informative but moderately concise; it front-loads the purpose and includes necessary details without excessive verbosity.
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?
Without an output schema, the description hints at output content (guidelines, rating sheets) and differentiates well from many siblings, though exact return format is 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 coverage is 100%, and the description explains the focus enum values and include_examples, but it largely mirrors the schema without adding deeper semantic value beyond enumeration.
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 clearly states it gets writing guidelines from Lenny Zeltser for security reports, listing specific aspects (tone, structure, clarity, etc.) and distinguishing from sibling ir_* 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?
Explicitly states it works for any security document and advises using ir_* tools for incident response reports, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_get_brief_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's IR one-page executive brief template. Standalone variant of ir_get_template for callers that only want the brief without the long-form report. This server never requests your incident notes and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: describes that the server does not request incident notes and guidelines flow to AI for local analysis. Annotations already declare readOnlyHint=true and idempotentHint=true, and description aligns with no contradiction.
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 concise sentences. First sentence states purpose, second provides differentiation and privacy context. No wasted words, front-loaded with key info.
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 zero parameters, no output schema, and rich annotations, the description covers purpose, sibling differentiation, and a unique behavioral trait (privacy). Complete for a simple template-retrieval 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?
No parameters exist; schema coverage is 100%. Description adds no parameter detail, but none is needed. Baseline for zero parameters 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?
The description clearly states the tool retrieves 'Lenny Zeltser's IR one-page executive brief template' and distinguishes itself from the sibling `ir_get_template` by being a standalone variant for callers wanting only the brief.
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?
Explicitly indicates when to use this tool (when only the brief is needed) versus the alternative (`ir_get_template` for long-form report). Also notes privacy behavior—server never requests incident notes and instructs AI to keep them local.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_get_cross_server_routesARead-onlyIdempotentInspect
Get Lenny Zeltser's IR cross-server handoff routes — when this MCP server can't fulfill a request, which other MCP servers (or fallback workflows) to consult. Surfaces a compact subset of ir_load_context. This server never requests your incident notes and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds privacy-related context beyond the readOnlyHint, idempotentHint, and destructiveHint annotations, explaining that the tool never requests incident notes and instructs AI to keep them local.
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?
Description is three sentences, front-loaded with purpose, and no unnecessary words, though it could be slightly shorter.
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 no parameters, no output schema, and comprehensive annotations, the description covers purpose, usage context, and behavioral traits adequately, though the exact format of routes is not 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?
No parameters exist, and schema coverage is 100%; description adds nothing about parameters because there is nothing to add, but baseline is high.
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?
Description clearly states the tool retrieves Lenny Zeltser's IR cross-server handoff routes and distinguishes it as a compact subset of ir_load_context, with a specific verb ('Get') and resource ('cross-server routes').
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 when the current server cannot fulfill a request, and mentions it is a subset of ir_load_context, but does not explicitly state when not to use or provide alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_get_frameworksARead-onlyIdempotentInspect
Get Lenny Zeltser's IR frameworks (primary frameworks the brief structurally derives from) plus optional sibling frames (adjacent frameworks that aren't the structural backbone). Pass include_siblings: false to skip sibling blocks. This server never requests your incident notes and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| include_siblings | No | Include the siblingFrames block (adjacent frameworks with whyOmitted notes) and the siblingArtifacts block (related templates) in the response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds valuable behavioral context about data locality (keeps notes local) and that guidelines flow to the AI for analysis, exceeding what annotations provide.
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 concise sentences plus a privacy note. Front-loaded with purpose, then parameter guidance, then behavioral note. 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?
Tool has only 1 parameter and no output schema. Description adequately explains what is returned (primary frameworks + optional siblings) and privacy behavior. Could detail response structure slightly more but sufficient for low 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 baseline is 3. The description adds a note about skipping blocks with false, which is redundant with schema description. No additional meaning beyond 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 explicitly identifies the tool as retrieving 'Lenny Zeltser's IR frameworks' and distinguishes between primary frameworks and optional sibling frames, making the purpose clear and distinct from sibling 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?
Provides explicit guidance on when to use include_siblings=false and mentions data privacy (server never requests incident notes). However, does not explicitly compare with other tools like ir_get_guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert writing guidelines for incident response reports. Topics: tone, words, structure, executive_summary, voice, articles, summary, brief (one-page brief section guidance, IR 1.5.0+), frameworks (regulatory + maturity frameworks), handoffs (cross-server routing). When the topic maps to a lens (tone, words, structure), the response includes a rating-sheet checklist appendix as concrete reference points for grounded feedback. This server never requests your incident notes and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Specific topic: tone (collaborative framing), words (clarity, jargon), structure (paragraphs, headings), executive_summary (exec summary rules), voice (style guidelines), articles (related reading), summary (quick reference), brief (one-page brief section guidance), frameworks (NIST SP 800-61r3, GDPR, CCPA/CPRA, HIPAA, NCSL state laws + sibling frames), handoffs (when to route to other MCP servers). Omit for full guidelines. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive hints. The description adds valuable context: the server never requests incident notes and instructs the AI to keep them local, plus notes that rating-sheet checklists are appended for certain topics. No contradictions with annotations.
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 paragraph that front-loads the main purpose. It includes necessary details about topics and data privacy, but lists many topics inline, making it slightly dense. Every sentence contributes value, but conciseness could be improved.
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 no output schema, the description explains response features (checklist appendix for specific topics) and data handling. It is complete enough for a simple retrieval tool, though the exact format of guidelines is not fully described.
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 detailed enum descriptions. The description adds extra meaning by explaining that for topics mapping to lenses (tone, words, structure), the response includes a rating-sheet checklist appendix, which is 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 clearly states the tool retrieves Lenny Zeltser's expert writing guidelines for incident response reports, listing specific topics. It uses a specific verb ('Get') and resource ('writing guidelines for IR reports'), making its purpose 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 implies use for IR report writing guidelines through the name and topic list, but does not explicitly state when to use this tool versus sibling guideline tools (e.g., cti_get_guidelines, malware_get_guidelines). No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's structured incident response template. Covers all critical IR sections with field-by-field guidance. Pass kind: "report" (default — full incident-response report) or "brief" (one-page executive brief, IR 1.5.0+). This server never requests your incident notes and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Which artifact to return: 'report' (full incident-response report — default for backward compatibility) or 'brief' (one-page executive brief). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. Description adds value by stating the server never requests incident notes and keeps data local, a privacy measure beyond annotations.
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, each purposeful: purpose, parameter instruction, privacy note. No redundancy, front-loaded with core action.
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 with no output schema, the description covers all essential information: what it returns, the two options, and critical behavioral note about data privacy.
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%; description adds context about defaults and version requirements (IR 1.5.0+ for brief) that enriches the schema's enum description.
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 clearly states it retrieves Lenny Zeltser's IR template and specifies two kinds (report/brief), but the sibling tool 'ir_get_brief_template' suggests potential overlap, reducing clarity.
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 guidance on when to use this tool versus siblings like 'ir_get_brief_template'; lacks when-not-to-use or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's IR report writing context for local analysis. Returns expert guidelines for field completeness, incident identification, notification triggers, and writing quality. Includes rating-sheet items (lens taxonomy plus the IR-specific Information sheet) as concrete reference points for grounded feedback. This server never requests your incident notes and instructs your AI to keep them local. Use detail_level to control response size: "minimal" (~2k tokens), "standard" (~5k tokens), or "comprehensive" (~11k tokens).
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Specific topics to load. Overrides detail_level for fine-grained control. Options: completeness (field guidance), incidents (type identification), notifications (regulatory triggers), writing (style analysis), actions (urgency categorization), stakeholders (party identification), sections (review criteria). | |
| detail_level | No | Level of detail to return. 'minimal': core field guidance only (~2k tokens). 'standard': field guidance + writing analysis + notifications (~5k tokens, default). 'comprehensive': everything including examples and all incident types (~11k tokens). | |
| incident_type | No | Load guidance for a specific incident type only (saves tokens). Omit to load all types when 'incidents' topic is included. | |
| include_examples | No | Include good/poor examples in field guidance. Default: false. Set to true for learning/training. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations, including the tool's privacy promise (never requests notes), the inclusion of rating-sheet items, and the token-based size control via detail_level. Annotations already indicate read-only and idempotent, but the description enriches understanding.
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 extremely concise—three sentences that front-load the purpose, then add content details and usage guidance. Every sentence serves a purpose, with no redundancy or fluff.
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 4 parameters with complete schema descriptions, no output schema, and clear explanation of return content (expert guidelines, rating-sheet items), the description covers most necessary context. Missing explicit return format but sufficient for adequate usage.
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?
All parameters are fully described in the schema (100% coverage). The description adds value by explaining the token sizes for detail_level, the overriding behavior of topics, and the purpose of incident_type for token savings, enhancing usability beyond the schema alone.
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 clearly states the tool loads expert context for IR report writing, with specific verb 'load' and resource 'Lenny Zeltser's IR report writing context'. It distinguishes from sibling load_context tools by specifying the domain and content ('rating-sheet items').
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 when to use the tool (for local analysis of IR context) and provides parameter guidance for controlling response size. However, it does not explicitly state when not to use or mention alternatives, which is acceptable given the clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ir_review_reportARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing IR report. Returns focused guidance for constructive critique — what to check in each section, writing quality issues to identify, and how to frame feedback collaboratively. Includes rating-sheet items (lens taxonomy plus the IR-specific Information sheet) as concrete reference points for grounded feedback. This server never requests your report and instructs your AI to keep it local.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | What aspects to focus on. 'completeness': is everything covered? 'clarity': jargon, passive voice, vague terms. 'tone': collaborative framing. 'structure': sentence/paragraph organization. | |
| sections | No | Specific sections to get review criteria for. Omit or use 'all' for complete review criteria. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and idempotent behavior. The description adds transparency by stating the server never requests the report and instructs the AI to keep it local, exceeding annotations. No contradictions.
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 efficient sentences that front-load the core purpose and provide key details without redundancy. Every sentence adds 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?
The description explains what the output contains (guidance, rating-sheet items) but omits output format (e.g., text, JSON). Given no output schema, a bit more detail on format would improve completeness.
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% with descriptions for both parameters. The description adds context about output content but does not enhance parameter semantics beyond the schema. Baseline score 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?
The description clearly states the verb ('get'), resource ('expert criteria for reviewing an existing IR report'), and distinguishes from sibling tools by specifying 'IR report' and referencing 'Lenny Zeltser'. It details what the guidance includes, setting it apart from other review_report 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 description implies usage via domain prefix 'ir_' and mentions the tool never requests the report, indicating it provides criteria not a review. However, it does not explicitly state when to use this vs. alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_get_cross_server_routesARead-onlyIdempotentInspect
Get Lenny Zeltser's Malware cross-server handoff routes — when this MCP server can't fulfill a request, which other MCP servers (or fallback workflows) to consult. Surfaces a compact subset of malware_load_context. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant context beyond annotations: relationship to malware_load_context, privacy constraints (never requests samples/indicators). Annotations already indicate read-only and idempotent, but description broadens transparency.
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 purpose, then behavioral notes. No unnecessary 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?
Given no parameters and no output schema, the description fully covers purpose, usage, and behavioral constraints. Complete for a simple information retrieval 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?
No parameters, so schema coverage is 100% trivially. Description adds value by explaining the output is a 'compact subset', which helps set expectations.
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?
Clearly states it retrieves 'cross-server handoff routes' for fallback when this server can't fulfill a request. Distinguishes from siblings like malware_load_context by noting it is a 'compact subset'.
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?
Explicitly says when to use (when server can't fulfill request) and notes it is a subset of malware_load_context. Also provides privacy instructions. Does not explicitly say when not to use alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_get_frameworksARead-onlyIdempotentInspect
Get Lenny Zeltser's Malware frameworks (primary frameworks the brief structurally derives from) plus optional sibling frames (adjacent frameworks that aren't the structural backbone). Pass include_siblings: false to skip sibling blocks. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| include_siblings | No | Include the siblingFrames block (adjacent frameworks with whyOmitted notes) and the siblingArtifacts block (related templates) in the response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a safe, read-only operation. The description adds valuable behavioral context: it never requests sensitive data and instructs the AI to keep data local, addressing privacy and security beyond what annotations provide.
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 with no redundancy. First sentence defines purpose, second gives usage guidance, third adds security context. Information is front-loaded and each sentence 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 simple retrieval tool with one parameter and clear annotations, the description fully covers what the tool does, what it returns, and important behavioral notes. No gaps identified.
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?
With 100% schema coverage, the baseline is 3. The description adds meaning by explaining the siblingFrames and siblingArtifacts blocks that result from the parameter, and provides an example usage pattern.
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 clearly states the tool retrieves Lenny Zeltser's Malware frameworks and optionally sibling frames, with specificity about primary frameworks versus adjacent ones. It distinguishes from sibling tools by domain and function.
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?
Explicitly instructs how to use the include_siblings parameter to skip sibling blocks. Provides clear context for usage, though it could further distinguish from other get_frameworks tools like cti_get_frameworks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert malware analysis report writing guidelines. Topics include capabilities, confidence, pyramid_of_pain, anti_patterns, methodology, fields, handoffs, frameworks, plus tone, words, structure, and executive_summary topics that defer to get_security_writing_guidelines for canonical Five Elements guidance. Pair the 'fields' topic with field_id for single-field guidance. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Which topic to surface. Defaults to a 'summary' overview when omitted. | |
| field_id | No | Only meaningful with topic='fields'. When supplied, returns guidance for the named field id. When omitted under topic='fields', returns a directory of available field ids. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safety (readOnly, idempotent, non-destructive). The description adds value by stating the server never requests sensitive data and instructs AI to keep samples local, which is behavioral context not in annotations.
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 informative and well-structured, starting with the main purpose, then listing topics, and concluding with security notes. It is concise for the amount of information conveyed, though could be slightly shorter.
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 the tool's simplicity (read-only, 2 optional params with enums), the description covers the key aspects: purpose, scope, parameter behavior, and data handling. It omits explicit return structure but since there's no output schema, the description is 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 descriptions are present and clear. The description adds semantics: it explains the default topic ('summary'), the interaction between field_id and topic='fields', and behavior when field_id is omitted under that topic, which aids proper usage.
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 clearly states it returns Lenny Zeltser's malware analysis report writing guidelines and lists specific topics. It distinguishes from sibling tools like cti_get_guidelines or malware_get_template by the domain prefix and content focus, but does not explicitly compare 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?
It mentions that certain topics (tone, words, etc.) defer to get_security_writing_guidelines, providing some guidance on when not to use this tool. However, it does not explicitly state when to choose this over other get_guidelines tools or address prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's malware analysis report template. The report covers Executive Summary, Sample Snapshot, Malware Family Identification, Component Inventory, Runtime Requirements, Sources, Capabilities, Indicators of Compromise, Analysis Details, What We Don't Know, optional Infection Vector, optional Detection Engineering, About this Report, Appendix: Analysis Environment, and optional Appendix: Analysis Scripts. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive. The description adds valuable context: it reveals the template's full structure (16 sections), confirms no sample or data is requested, and explains the local workflow. This fully satisfies behavioral transparency.
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 efficient but slightly verbose with the full list of sections. It front-loads the purpose and uses clear sentences, though some brevity could be gained by summarizing sections.
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 template retrieval tool, the description is complete: it names the template, lists all sections, explains the local-only data policy, and implies the output format (report structure). No gaps are evident.
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 input schema has zero parameters, so schema coverage is 100%. The description adds no parameter info but provides rich semantic detail about the template content, which is the tool's sole output.
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 clearly states it retrieves Lenny Zeltser's malware analysis report template and lists all sections, making the purpose explicit. The sibling tools include many other 'get_template' variants for different domains, and the description distinguishes this one as malware-specific.
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 for malware analysis report creation by specifying the template sections and emphasizing local analysis. It states the server never requests sensitive data, which indicates safe usage, but lacks explicit comparison to alternatives or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's malware analysis report writing context for local analysis. Returns a JSON payload with section guidance, the MBC capability model, ICD-203 confidence scoped to the family call, Pyramid-of-Pain IOC tiering, and a briefPolicy explaining why there is no companion brief. The 'profile' parameter ANNOTATES sections (organizationalReport/researcherNarrative applicability label) rather than filtering — every section is returned so cross-profile comparisons are possible. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Narrow the response to specific topics; 'all' includes everything. | |
| profile | No | Annotate sections by their applicability to this profile. Sections are NOT filtered — annotated only. | |
| detail_level | No | Response size: minimal, standard, or comprehensive. | |
| include_examples | No | Include exampleGood/examplePoor in fieldGuidance entries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false; the description adds valuable context that the server never requests user samples and keeps data local, which is beyond annotations.
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 well-structured with purpose first, then parameter details, then privacy. It is slightly verbose but each sentence adds value. Could be trimmed, but still efficient.
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 4 optional parameters and no output schema, the description covers functionality, return content, and parameter behavior adequately. It lacks error handling or default behavior details, but is sufficient for a context-loading 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%, so parameters are described. The description adds meaning by explaining that 'profile' annotates rather than filters, and that every section is returned, enhancing understanding beyond 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 clearly states it loads Lenny Zeltser's malware analysis report writing context, specifying the exact resources returned (section guidance, MBC, etc.). It distinguishes from siblings by focusing on malware analysis and noting it never requests user data, unlike possibly other 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 description implies usage for malware analysis report writing but does not explicitly state when to use this tool vs alternatives like malware_get_template or malware_review_report. It explains the profile parameter nuance but lacks direct comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
malware_review_reportARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing malware analysis report. Surfaces per-theme review criteria for identification, capabilities, indicators, evidence, ecosystem, detection, reproducibility, and distribution; cross-cutting criteria; anti-patterns; and focus-driven writing analysis. This server never requests your sample, analysis notes, or indicators and instructs your AI to keep them local—guidelines and the report template flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus areas: completeness, clarity, tone, structure, capabilities, confidence, anti_patterns, or all. | |
| sections | No | Narrow to specific report sections; 'all' includes every section. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds significant behavioral context: it never requests sensitive data and instructs AI to keep data local, which is valuable beyond the annotations.
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 concise at three sentences, each serving a clear purpose: stating the tool's function, listing contents, and noting privacy behavior. No unnecessary 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 output schema, the description explains what criteria are surfaced (themes, cross-cutting, anti-patterns, focus-driven). It covers the tool's output adequately given optional parameters and the privacy 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 coverage is 100%, so parameters are well-documented. The description mentions themes that align with the focus parameter but adds no new semantic value 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 clearly states the tool retrieves expert criteria for reviewing existing malware analysis reports, and lists specific themes. It distinguishes from sibling review tools like cti_review_report by focusing on malware and mentioning local data handling.
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 for malware report review but does not explicitly state when to use this tool versus alternatives like cti_review_report or ir_review_report. There is no guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_compare_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's comparative analysis framework for evaluating multiple security companies side by side. Returns structured scoring rubric, evaluation dimensions, evidence tiering guidance, and comparison-type-specific instructions. Requires comparative analysis content. This server never requests your product plans and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| company_count | Yes | Number of companies being compared (2-10). | |
| comparison_type | Yes | Type of comparison. 'competition': direct/adjacent competitors. 'market_segment': companies in same segment. 'portfolio': cohort evaluation. | |
| include_scoring_rubric | No | Include the structured 1-5 scoring rubric. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that the server never requests product plans and instructs AI to keep them local, which is a behavioral trait. However, it doesn't detail other behaviors like rate limits or response format. With annotations covering core safety, the description provides moderate additional transparency.
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 sentences plus a clause, which is reasonably concise. The main action and return are front-loaded. The second sentence 'Requires comparative analysis content' is somewhat vague and could be integrated better, but overall there is little 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?
With no output schema, the description adequately describes the return types (scoring rubric, evaluation dimensions, etc.). It also addresses the privacy concern. However, it lacks detail on prerequisites (e.g., need for pre-identified companies) and the exact format of the output. Still, for a framework-loading tool with complete annotations and schema, it covers the essential 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 each parameter (company_count, comparison_type, include_scoring_rubric) is documented in the schema. The description does not add extra meaning beyond what's in the schema, such as clarifying the 'comparison-type-specific instructions' mentioned in the return but not explicitly linked to the comparison_type 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?
The description clearly states the verb 'Load' and the specific resource 'Lenny Zeltser's comparative analysis framework for evaluating multiple security companies side by side.' It lists return types (scoring rubric, evaluation dimensions, etc.) and includes a safety note differentiating it from product plans. Among siblings like product_load_context and other load_context tools, this description effectively distinguishes its comparative purpose.
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 provides minimal guidance on when to use this tool. It states 'Requires comparative analysis content' but does not clarify what that entails or when to choose this over alternatives like product_load_context or assessment_load_context. No exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert strategic guidelines for a specific product strategy topic. Topics: market (segmentation), capabilities (AI, agents, MVP, positioning), sales (GTM, channels, distribution, POCs), pricing (models, retention), delivery (deployment, APIs), trust (compliance, security program), platform (ecosystem positioning), team (expertise, gaps), competitive (differentiation, moats), defensibility (AI-era defensibility rubric scoring a product across seven dimensions), smb (SMB market dynamics), endpoint (endpoint viability), ai_security (AI security vertical), role (product manager responsibilities), category_creation (new category strategy), comparative (multi-company analysis), evidence_tiering (evidence classification framework). This server never requests your product plans and instructs your AI to keep them local—guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Specific topic to get guidelines for. Omit or use 'all' for a complete overview. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds valuable context: 'This server never requests your product plans and instructs your AI to keep them local—guidelines flow to your AI for local analysis,' clarifying data handling and reinforcing safety.
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 front-loads the main purpose but is lengthy due to the exhaustive list of topics. While clear, it could be more concise by summarizing the topic list or linking to the schema enum.
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 covers purpose, topics, and data privacy, but lacks details on the output format or what constitutes 'guidelines.' With no output schema, the agent would benefit from knowing what to expect in return.
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 parameter is fully described in the schema. The description enhances semantics by providing parenthetical explanations for each topic (e.g., 'market (segmentation)'), adding meaning beyond the bare enum values.
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 clearly states 'Get Lenny Zeltser's expert strategic guidelines for a specific product strategy topic' and lists many specific topics, distinguishing it from sibling tools like cti_get_guidelines or ir_get_guidelines which cover different domains.
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 for product strategy topics but does not explicitly specify when to use this tool vs alternatives like product_get_template or product_review_plan. No when-not-to-use or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's fill-in-the-blank template for planning a security product strategy. Includes strategic questions organized by section with evidence columns. This server never requests your product plans and instructs your AI to keep them local—guidelines flow to your AI for local analysis. The template is Copyright (c) 2026 Lenny Zeltser; any content you create using it is entirely yours.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond annotations: the server never requests product plans, guidelines flow to AI for local analysis, and copyright notice. No contradiction with annotations.
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 concise and well-structured. The first sentence immediately states the tool's purpose, followed by additional context (privacy, copyright) in subsequent sentences. No redundant or extraneous 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?
Given the tool has no parameters, no output schema, and is straightforward, the description is fully complete. It explains what the template includes, the privacy behavior, and copyright ownership. No gaps for an agent to interpret the tool's purpose and 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?
No parameters exist, so schema coverage is 100% and the description does not need to explain parameters. However, the description adds meaning by detailing what the template contains (strategic questions organized by section with evidence columns), which compensates for the lack of a schema description.
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 clearly states the verb 'Get' and the resource 'Lenny Zeltser's fill-in-the-blank template for planning a security product strategy.' It distinguishes from sibling templates by specifying the product strategy domain and mentioning the template's structure (strategic questions organized by section with evidence columns).
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 provides clear context for when to use this tool—when needing a template for security product strategy planning. It also includes privacy guidelines (server does not request plans, guidelines stay local). However, it does not explicitly list when not to use it or mention alternatives, though sibling tools cover other domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's product strategy context for local analysis. Returns expert strategic frameworks, principles, and guidance for evaluating or creating security product plans. Includes rating-sheet items (the lens taxonomy: structure, words, tone) as concrete reference points for grounded feedback on the plan's writing. This server never requests your plans and instructs your AI to keep them local. Use detail_level to control response size: "minimal" (~2k tokens), "standard" (~5k tokens), "compact" (~3-4k tokens, all sections but stripped), or "comprehensive" (~12k tokens). Use market_segment: "smb" for SMB-specific guidance. Use product_focus: "endpoint" for endpoint security viability assessment. Set include_template: true to include the fill-in-the-blank template in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Specific topics to include. Overrides detail_level for fine-grained control. | |
| detail_level | No | Level of detail to return. "minimal": market + capabilities only (~2k tokens). "standard": core strategy sections (~5k tokens, default). "compact": all sections with stripped subsections (~3-4k tokens, good for batch analysis). "comprehensive": everything + examples (~12k tokens). | |
| analysis_mode | No | 'internal': planning your own product (default). 'external': evaluating another company from outside. External mode reframes questions and adjusts evidence standards. | |
| product_focus | No | Include vertical-specific guidance. 'endpoint': platform entrapment, defensibility. 'ai_security': AI threat landscape, buyer personas, regulatory alignment. | |
| market_segment | No | Include SMB-specific guidance (distribution, buying triggers, readiness). | |
| company_context | No | Filter guidance to startup or large company perspective. Stage values (pre_seed, seed, series_a, series_b, growth, late_stage) imply startup context with stage-specific emphasis. | |
| include_examples | No | Include examples in framework sections. Default: false. | |
| include_template | No | Include the fill-in-the-blank strategy template at the end of the context response. Default: false. Saves a separate product_get_template call. | |
| evaluation_perspective | No | Emphasize framework sections relevant to a specific perspective. Composes with analysis_mode. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds value beyond annotations by stating the server never requests plans and instructs AI to keep them local. Also describes output token sizes per detail_level, providing detailed behavioral 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?
Well-structured with purpose upfront, then parameter guidance. Every sentence adds value; no fluff. Compact yet comprehensive.
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 all 9 parameters and their effects, plus privacy note. Lacks explicit output structure, but describes return content sufficiently for a context-loading 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?
With 100% schema coverage, description adds substantial meaning: explains detail_level token counts, topics override behavior, analysis_mode reframing, product_focus vertical guidance, etc. Greatly enhances schema info.
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?
Clearly states it loads Lenny Zeltser's product strategy context for local analysis, specifying returns like expert frameworks, principles, guidance, and rating-sheet items. Distinguishes from siblings like product_compare_context and product_get_template.
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 explicit instructions on parameter usage (detail_level, market_segment, etc.) and privacy. Could more explicitly contrast with sibling tools, but the context hints are adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_review_planARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing product strategy plan. Returns focused guidance for constructive critique—what to check in each section, strategic coherence issues, and how to frame feedback collaboratively. Includes rating-sheet items (the lens taxonomy: structure, words, tone) as concrete reference points for grounded feedback on the plan's writing. This server never requests your plan and instructs your AI to keep it local. Use market_segment: "smb" to include SMB-specific review criteria. Use product_focus: "endpoint" to include endpoint viability assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | What aspects to focus on. 'completeness': is everything covered? 'strategy': are decisions coherent? 'feasibility': can this team execute? | |
| sections | No | Specific sections to get review criteria for. Omit or use 'all' for complete review criteria. | |
| review_type | No | 'internal': reviewing your own plan (default). 'external-analysis': reviewing an analysis of another company. Adjusts criteria to focus on evidence tiering, source attribution, and marketing language. | |
| product_focus | No | Include vertical-specific review criteria. 'endpoint': endpoint viability. 'ai_security': AI security market assessment. | |
| market_segment | No | Include SMB-specific review criteria. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint, idempotentHint, destructiveHint) and adds value by stating that the server never requests the user's plan and instructs the AI to keep it local. This extra context goes beyond the annotations, ensuring agents understand the non-destructive, read-only nature.
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 concise (4 sentences) and front-loaded with the core purpose. Every sentence contributes unique information: purpose, output details, privacy guarantee, and parameter usage. No redundant or irrelevant 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?
Given the tool's complexity (5 parameters, many enums, no output schema), the description adequately explains the returned content (focused guidance, rating-sheet items) and parameter behavior. It lacks explicit return format details, but the richness of the schema and annotations compensates, making it sufficiently complete for agent 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 coverage is 100% with clear descriptions for each parameter. The tool description adds value by providing usage examples ('Use market_segment: 'smb' to include SMB-specific review criteria') that complement the schema without repeating it, helping agents leverage parameters effectively.
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 explicitly states the tool's purpose: 'Get Lenny Zeltser's expert criteria for reviewing an existing product strategy plan.' It details the output (focused guidance, rating-sheet items) and distinguishes from sibling tools like product_get_guidelines or product_get_template, which serve different functions.
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 provides clear usage context: it is for reviewing existing plans, not for creating them. It gives examples of how to use parameters (market_segment for SMB, product_focus for endpoint). However, it could explicitly state when not to use this tool or mention alternatives, but the guidance is strong enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rating_get_sheetARead-onlyIdempotentInspect
Get Lenny Zeltser's cybersecurity-writing rating sheet(s) so your AI can apply the rubric. Returns the structured rubric (groups, items, scoring bands) WITHOUT computing a score. Use rating_score_writing if you also want a numeric score, gap analysis, or rubric-anchored feedback. This server never requests your draft and instructs your AI to keep it local—rating sheets and scoring instructions flow to your AI.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet | No | Which sheet to return. 'structure' / 'look' / 'words' / 'tone' apply to any document. 'info-ir' / 'info-assessment' / 'info-threat' are document-type-specific. 'all' returns the full bundle (default). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context that it does not compute scores and that the server never requests drafts, aligning with and expanding on annotations.
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 well-structured with clear sentences, though slightly verbose. The second sentence about 'rating_score_writing' could be slightly shortened, but overall efficient.
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 no output schema, the description sufficiently explains what is returned (structured rubric) and what is not (score). It covers all relevant aspects for a simple single-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 coverage is 100% with descriptions for each enum value. The description explains the purpose of each sheet and the default behavior, adding value 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 clearly states the tool returns a structured rubric without computing a score. It differentiates from sibling tool 'rating_score_writing' by specifying what it does not do.
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 explicitly tells when to use this tool and when to use 'rating_score_writing' for scoring/analysis. It also provides privacy guidance about keeping drafts local.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rating_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's complete cybersecurity-writing rating toolkit: all 7 sheets, scoring policy, scoring playbook, and cross-references to the writing guidelines. This server never requests your draft and instructs your AI to keep it local—rating sheets and scoring instructions flow to your AI.
| Name | Required | Description | Default |
|---|---|---|---|
| detail_level | No | minimal: sheet metadata + scoring playbook only (~2k tokens). standard: full sheets + scoring playbook + cross-references (~6k tokens, default). comprehensive: everything including related articles and errata (~9k tokens). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds value by stating that the server never requests the draft and instructs the AI to keep it local. No contradiction with annotations.
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 sentences: first states the purpose, second provides behavioral context. No unnecessary words, and information is front-loaded.
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 covers all aspects needed for a loading tool: what is loaded (sheets, policy, playbook, cross-references) and token sizes. No output schema is present, but the description adequately informs the agent without needing to detail return values.
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 only parameter 'detail_level' has an enum with a description that adds substantial meaning beyond the enum values, including token estimates and default. Schema coverage is 100%, and the description enriches 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 clearly states the action ('load') and the resource ('complete cybersecurity-writing rating toolkit'). It specifies all components (7 sheets, policy, playbook, cross-references) and distinguishes from siblings like 'rating_get_sheet' by implying the full context.
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 indicates when to use the tool (to load the full toolkit) and includes a behavioral note that it never requests the draft. However, it does not explicitly exclude alternatives like 'rating_get_sheet' or 'rating_score_writing' for partial tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rating_score_writingARead-onlyIdempotentInspect
Get Lenny Zeltser's scoring playbook so your AI can score a draft locally against a cybersecurity-writing rating sheet. THIS IS THE ONLY TOOL THAT PRODUCES NUMERIC SCORES — the writing-coach tools (get_security_writing_guidelines, ir_*, product_*) never score. Returns the rubric plus step-by-step instructions for applying it. This server never requests your draft and instructs your AI to keep it local—rating sheets and scoring instructions flow to your AI.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | score: per-item pass/fail + total + band classification (default). gaps: enumerate items the draft does NOT satisfy (best fit for Information sheets). feedback: per-item pass/fail + total + band, then constructive critique in the writing-coach voice. | |
| sheet | Yes | Which sheet to apply. The 7 canonical IDs name a specific rubric. 'auto' picks among the three Information sheets (info-ir / info-assessment / info-threat) based on the document type the user describes; for lens sheets (structure / look / words / tone), pass the sheet ID directly. | |
| detail_level | No | minimal: scoring playbook only. standard: rubric + scoring playbook (default). comprehensive: rubric + scoring playbook + cross-references to writing guidelines + related articles. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that the tool returns a rubric and step-by-step instructions, and clarifies that drafts remain local. No contradictions.
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 somewhat verbose with capitalized emphasis, but every sentence conveys necessary information. Slight improvement could be made in structure, but it remains clear and effective.
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?
Lacks an output schema, but the description adequately explains the return value (rubric + instructions) and covers parameter behavior. Could detail the exact output format further, but sufficient for an AI 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?
All three parameters have enum constraints with clear descriptions in the schema (100% coverage). The description adds context, such as the default mode and the best use of 'gaps' for Information sheets, going 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?
Description explicitly states the tool retrieves a scoring playbook/rubric for cybersecurity writing, and distinguishes itself from sibling writing-coach tools by being the only one that produces numeric scores.
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?
Explicitly tells when to use (for scoring drafts locally) and when not (the writing-coach tools never score), and emphasizes that the server never requests the draft, instructing the AI to keep it local.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_zeltserARead-onlyIdempotentInspect
Search Lenny Zeltser's Website by keywords. Security articles on malware analysis, incident response, and security leadership. Searches across titles, abstracts, full content, and topics.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 10, max: 25) | |
| query | Yes | Search terms to find relevant content |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | Yes | |
| count | Yes | |
| query | Yes | |
| results | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds that the search covers multiple content fields (titles, abstracts, full content, topics). However, it does not disclose potential behavioral traits like result ordering, pagination, or rate limits. The added context is moderate.
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 extremely concise, consisting of two sentences. The first sentence states the core purpose and resource, the second adds scope details. There is no redundant or extraneous 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?
Given the tool's simplicity (2 parameters, full schema coverage, annotations, and output schema), the description adequately covers the search scope and content domains. It does not mention return format, but that is handled by the output schema. A minor gap is the lack of a typical use case, but overall it is sufficiently complete for a search 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% with both parameters described. The description adds that the query is applied to specific fields ('titles, abstracts, full content, and topics'), which is not in the schema, providing extra semantics. However, for the 'limit' parameter, the description offers no additional insight beyond the schema's default and max values. Overall, the description adds marginal value over 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 clearly states a specific verb ('Search'), resource ('Lenny Zeltser's Website'), and scope ('security articles on malware analysis, incident response, and security leadership'). It also details search fields ('across titles, abstracts, full content, and topics'). This distinguishes it from sibling tools like get_article, which retrieves a known article.
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 does not provide guidance on when to use this tool versus alternatives. It does not mention that this is for initial discovery while get_article is for specific articles, nor does it outline any exclusions or prerequisites. The sibling list includes various getter tools, but no comparative advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_get_brief_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's Vuln one-page executive brief template. Standalone variant of vuln_get_template for callers that only want the brief without the long-form report. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds critical context: the server never requests vulnerability notes and instructs the AI to keep them local, ensuring safe local analysis beyond what annotations alone convey.
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 concise, consisting of three sentences. The first sentence is front-loaded with the main purpose, followed by sibling differentiation and behavioral context, 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?
For a simple parameterless tool, the description covers purpose, differentiation, and data handling. While it does not explicitly detail the output format, it mentions the template and guidelines flow to the AI, which is sufficient given the low 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?
The tool has no parameters, so the schema is fully covered. With schema description coverage at 100% and zero parameters, a baseline score of 4 is appropriate as no additional semantic explanation 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 clearly states the tool retrieves 'Lenny Zeltser's Vuln one-page executive brief template' and distinguishes it from the sibling `vuln_get_template` by noting it is a standalone variant for callers wanting only the brief without the long-form 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 identifies when to use this tool (when only the brief is needed) and contrasts it with `vuln_get_template`. It also provides important privacy guidance about keeping vulnerability notes local, but does not explicitly list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_get_cross_server_routesARead-onlyIdempotentInspect
Get Lenny Zeltser's Vuln cross-server handoff routes — when this MCP server can't fulfill a request, which other MCP servers (or fallback workflows) to consult. Surfaces a compact subset of vuln_load_context. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds valuable context about data privacy: never requests vulnerability notes and instructs AI to keep them local. This goes beyond annotations, though the mention of 'brief template and guidelines flowing to AI' may be confusing.
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 purpose, followed by additional context. Every sentence adds 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?
Given zero parameters and no output schema, the description covers purpose, usage, and privacy. Could briefly mention return structure, but overall quite 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?
Input schema has zero parameters, so no parameter explanation is needed. Description provides context about what the tool returns (a compact subset of vuln_load_context), which is sufficient.
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?
Description clearly states the tool retrieves cross-server handoff routes for vulnerability context, and distinguishes itself from sibling tools like vuln_load_context by specifying it provides a compact subset for fallback 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?
Explicitly states when to use: when the MCP server cannot fulfill a request and needs to consult other servers or fallback workflows. Does not explicitly list when not to use or compare to other route tools, but gives sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_get_frameworksARead-onlyIdempotentInspect
Get Lenny Zeltser's Vuln frameworks (primary frameworks the brief structurally derives from) plus optional sibling frames (adjacent frameworks that aren't the structural backbone). Pass include_siblings: false to skip sibling blocks. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| include_siblings | No | Include the siblingFrames block (adjacent frameworks with whyOmitted notes) and the siblingArtifacts block (related templates) in the response. Default: true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds important behavioral context: the server never requests vulnerability notes and instructs the AI to keep them local. This goes beyond annotations and is valuable for an agent.
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 sentences, front-loaded with purpose, and every word earns its place. No fluff.
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 tool with one optional parameter and no output schema, the description fully explains what it returns and the privacy policy. It is complete enough for an agent to use 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%, baseline 3. The description repeats the parameter behavior but adds clarifications (adjacent frameworks, whyOmitted notes). It does not significantly extend the 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?
The description clearly states it retrieves Lenny Zeltser's Vuln frameworks, distinguishing it from sibling tools for other domains (e.g., cti, ir, malware). The verb 'Get' and the resource 'frameworks' are specific, and the scope is well-defined.
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 explicit guidance on the `include_siblings` parameter ('Pass `include_siblings: false` to skip...'). It implies this tool is for vulnerability briefs, but does not explicitly compare with siblings or state when not to use. The note about data privacy provides additional context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert vulnerability-brief writing guidelines. Topics include tone, words, structure, voice, articles, summary, fields (per-field guidance), handoffs (cross-server routing), and vuln-specific topics: significance (calibrated insecurity, no vendor passthrough — note this is the Vuln Brief's Significance row, distinct from CVSS/vendor severity scoring), actions (action-enabling What/Why/When/Who), gaps (calibrated uncertainty), sources (evidence synthesis), are_we_affected (scope discipline), and anti_patterns. Pair the 'fields' topic with field_id for single-field guidance. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Which topic to surface. Defaults to a 'summary' overview when omitted. | |
| field_id | No | Only meaningful with topic='fields'. When supplied, returns guidance for the named field id. When omitted under topic='fields', returns a directory of available field ids. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. Description adds that the server never requests vulnerability notes and instructs AI to keep notes local, providing behavioral context beyond annotations.
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?
Description is detailed but lengthy with a dense list of topics. Front-loaded with purpose, but could be more concise. Every sentence serves a purpose, but overall wordiness reduces 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?
Covers topics comprehensively. For a retrieval tool with no output schema, description could include what the response format looks like, but the topic list is thorough and sufficient for a guidelines 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 covers all parameters with descriptions. Description adds meaning: explains topic enum values, pairs 'fields' with field_id for single-field guidance, and notes default topic is 'summary'. Adds value beyond 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?
Clearly states it retrieves Lenny Zeltser's vulnerability-brief writing guidelines. Lists specific topics (tone, words, etc.), distinguishing it from sibling tools for other domains (CTI, IR, etc.). Verb+resource is specific.
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?
Explains how to use topics and field_id, notes default topic is 'summary', and mentions the server's behavior about not requesting notes. Does not explicitly state when not to use or compare alternatives, but sibling context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_get_templateARead-onlyIdempotentInspect
Get Lenny Zeltser's one-page Vulnerability Advisory Brief template. Covers Bottom Line, Quick Facts, Are We Affected?, Defensive Actions (with What/Why/When/Who), What We Don't Know, and More Information. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnly, idempotent, non-destructive. Description adds value by explaining the server never requests vulnerability notes and instructs AI to keep them local, and that template flows for local analysis. No annotation contradictions.
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 resource and contents, second adds privacy note. 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?
Describes template sections and data handling. Without output schema, description explains output flows to AI. Could be more explicit about return format, but adequate for a simple parameterless tool with good annotations.
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?
No parameters, schema coverage 100%. Baseline 4 as description does not need to add parameter info, and it doesn't.
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?
Clear verb 'Get' with specific resource 'Lenny Zeltser's one-page Vulnerability Advisory Brief template'. Lists template sections, distinguishing it from sibling templates for other domains (CTI, IR, Product).
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 guidance on when to use this tool vs alternatives (e.g., vuln_get_guidelines, other templates). Does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_load_contextARead-onlyIdempotentInspect
Load Lenny Zeltser's Vulnerability Investigation Brief context for local analysis. Returns a JSON payload with brief section guidance, completeness criteria, significance discipline (renamed from 'severity' in 1.1.0 — the Vuln Brief's Significance row, distinct from CVSS or vendor severity scoring), evidence-source guidance, frameworks (CVSS / CVE / NVD / CISA KEV / Vendor Advisory), and ALWAYS embeds the mcpHandoffs array — six pointers that tell the AI when to reach for rating_score_writing, rating_get_sheet, get_security_writing_guidelines, cti_load_context, ir_load_context, or search_zeltser. This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Narrow the response to specific topics; 'all' includes everything. | |
| detail_level | No | Response size: minimal, standard, or comprehensive. | |
| include_examples | No | Include exampleGood/examplePoor in fieldGuidance entries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the server never requests vulnerability notes and instructs AI to keep them local, and describes the always-included mcpHandoffs array. This provides useful behavioral context beyond annotations.
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 paragraph of four sentences. It is front-loaded with the purpose but includes some length due to listing handoffs. It is reasonably concise, but could be slightly more compact without losing key details.
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 is provided, but the description explains the JSON payload includes brief section guidance, completeness criteria, etc., and always embeds the mcpHandoffs array. With 3 well-described parameters, the description covers the tool's function adequately for an AI 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% with clear descriptions for all three parameters. The tool description does not add significant new semantic meaning; it mentions the 'all' topic option, which is already in 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 states it loads "Lenny Zeltser's Vulnerability Investigation Brief context for local analysis" and returns a JSON payload with specific fields. It is clear in verb and resource, but does not explicitly differentiate from sibling tools like vuln_get_template or vuln_get_guidelines, though the 'load context' vs 'get template' distinction is implied.
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 mentions that the tool always embeds an mcpHandoffs array with pointers to other tools (rating_score_writing, etc.), which indirectly guides when to use alternatives. It does not explicitly state when to use this tool vs. siblings, but the context of loading full brief for local analysis is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vuln_review_briefARead-onlyIdempotentInspect
Get Lenny Zeltser's expert criteria for reviewing an existing Vulnerability Investigation Brief. Surfaces per-theme review criteria (significance, scope, actions, gaps, sources), cross-cutting criteria, anti-patterns, and inline mcpHandoffs pointers when the requested focus triggers scoring or writing-mechanics themes (e.g., focus=tone surfaces rating_score_writing). This server never requests your vulnerability notes and instructs your AI to keep them local—the brief template and guidelines flow to your AI for local analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus areas: completeness, clarity, tone, structure, significance, actions, sources, or all. | |
| sections | No | Narrow to specific brief sections; 'all' includes every section. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by stating the tool never requests vulnerability notes and instructs the AI to keep them local, plus it explains that it can provide inline pointers to other tools, which goes beyond the annotations' safety profile.
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 well-structured and front-loaded, with the first sentence stating the core purpose. Each subsequent sentence adds useful detail about output, pointers, and data privacy. It is not overly long and avoids 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?
Given only two optional parameters and no output schema, the description covers the tool's purpose, output (criteria, cross-cutting criteria, anti-patterns, pointers), and data handling. It is sufficiently complete for an AI to understand usage and outcome.
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% with parameter descriptions. The description enriches parameter meaning by explaining that focus areas correspond to per-theme review criteria and that sections narrow to specific brief sections, with an example of how focus=tone triggers scoring pointers. This adds value 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 explicitly states it retrieves Lenny Zeltser's expert criteria for reviewing a Vulnerability Investigation Brief, using specific verbs like 'Get' and 'Surfaces'. It distinguishes from sibling tools like review_report tools by clarifying it provides criteria, not a report review.
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 indicates when to use the tool: when needing criteria for reviewing a brief. It also provides context for alternatives by mentioning that certain focus areas (e.g., tone) trigger pointers to other tools like rating_score_writing, guiding the agent on when to expect cross-tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!