website-search
Server Details
Improve security writing, score it against rubrics, plan IR 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.2/5 across 22 of 22 tools scored. Lowest: 3.6/5.
Tools are grouped by prefixes (aidefense_, ir_, product_, rating_) which helps disambiguate domains. Within each group, individual tools have distinct purposes (e.g., get_guidelines vs. get_template vs. review_report). However, the high count of 22 tools and the presence of multiple 'load_context' tools (aidefense_load_context, ir_load_context, product_load_context, rating_load_context) could cause some confusion despite clear descriptions.
Most tool names follow a consistent verb_noun pattern (e.g., get_article, search_zeltser). Grouping prefixes (aidefense_, ir_, product_, rating_) are uniformly applied. Minor inconsistency: some tools start with a noun prefix (rating_score_writing) rather than a verb, but the pattern is still predictable and readable.
22 tools is on the high side for a single server, but the server covers multiple distinct domains (AI security matrix, IR report writing, product strategy, general article search, writing rating). Each domain has a handful of tools, making the count reasonable for the breadth of functionality offered.
The tool set covers the main operations for each domain: reading articles, searching, getting guidelines, templates, review criteria, and rating sheets. There are no obvious gaps for an informational/resource server. Missing might be a 'list articles' feature, but search_zeltser and get_article cover discovery and retrieval.
Available Tools
31 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 already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by stating the server never requests program docs or roadmap and keeps data local for privacy, which is beyond annotation scope.
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, focused paragraph with three sentences that front-load purpose then add context. No redundancy or 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 no output schema, the description explains return contents (taxonomy, guidance, examples) and provides usage context with sibling tool pairing. It lacks return format but suffices for the 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 parameter description. The tool description does not add meaning beyond what the schema provides; it essentially repeats the optional framework 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 tool retrieves an AI Defense Matrix cross-mapping playbook with specific outputs (coverage taxonomy, differentiation guidance, examples). It distinguishes from siblings like aidefense_get_matrix which retrieves the matrix itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use it (mapping capabilities to matrix cells) and suggests follow-up pairing with product_load_context. It does not explicitly state when not to use alternatives but implies the use case.
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 by emphasizing that no program details leave the client and the server never requests documents. This privacy guarantee is valuable given readOnlyHint and idempotentHint already present.
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 conveys necessary information but is somewhat verbose, repeating privacy assurances. It front-loads the core purpose but could be more concise without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (prompts, template, workflow) and addresses privacy. It could mention prerequisites or relationship to context-loading tools but remains fairly complete for a read-only information tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (asset and function) with enums, covering 100% of parameters. The description adds no additional information beyond what the schema provides, so parameter semantics are minimally enhanced.
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 an evaluation playbook with per-cell prompts, a gap-inventory template, and a workflow for assessing an AI security program. While the purpose is specific, it does not explicitly differentiate from sibling tools like aidefense_get_matrix, so clarity is high but not maximal.
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 program evaluation with local analysis but lacks explicit when-to-use or when-not-to-use guidance relative to alternative tools. No exclusions or prerequisites are mentioned, so guidance is adequate but not strong.
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 eight external frameworks: NIST IR 8596, CSA AI Controls Matrix, ISO 42001, Google SAIF, 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 8 (same as omitting both parameters). | |
| framework | No | Optional: scope to one framework slug (e.g., 'mitre-atlas', 'owasp-llm-top10'). Omit to get all eight. 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 declare read-only and non-destructive. Description adds valuable extra behavioral context: states the server never requests program docs or product roadmaps, instructs to keep data local, and describes data flow ('matrix, framework alignments, and playbooks flow to your AI for local analysis'). 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?
Four sentences: front-loads purpose, then usage, then behavioral transparency. Each sentence adds value; could be slightly tighter but effectively structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, behavior, and parameter adequately. No output schema, but description gives hint about rows mapping assets to frameworks. Given complexity (eight frameworks), it is fairly complete for an AI agent to decide invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already describes the framework parameter with its enum and meaning. Description reinforces by listing the eight framework names, but adds no new semantics 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 cross-mappings to eight named external frameworks (e.g., NIST IR 8596, MITRE ATLAS) and explains the output format ('Each row maps an AI asset class...'). This differentiates it from sibling tools like aidefense_cross_map or aidefense_get_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?
Explicitly says 'Use to translate between framework vocabularies,' giving clear context. Does not provide when-not-to-use or explicitly name alternatives, but siblings imply distinct purposes.
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, eight cross-walked frameworks (NIST IR 8596, CSA AICM, ISO 42001, Google SAIF, 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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which are consistent. The description adds valuable behavioral context: the server never requests program docs or product roadmaps and instructs the AI to keep data local. This transparency about data privacy goes 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 but is information-dense and front-loaded with the primary purpose. While slightly verbose, every sentence contributes value. Minor improvement could be brevity, but it remains clear.
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 thoroughly lists what is loaded (matrix, frameworks, playbooks) and what is not (user docs). However, it lacks detail on the format or structure of the returned context (e.g., is it text, JSON, or tables?). With no output schema, this omission is noticeable.
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?
Both parameters have enums and clear descriptions in the schema (100% coverage). The description does not add new parameter-level detail but enhances overall understanding of what the tool loads. With high schema coverage, 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 tool loads Lenny Zeltser's AI Defense Matrix context and enumerates specific components (8-asset matrix, eight frameworks, playbooks). It distinguishes itself from siblings like aidefense_get_matrix by loading the full context for analysis, not just the grid.
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 local analysis of the matrix and frameworks but does not explicitly state when to use this tool versus alternatives such as aidefense_get_matrix or aidefense_evaluate_program. No exclusions or alternative guidance are provided.
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.
cti_get_guidelinesARead-onlyIdempotentInspect
Get Lenny Zeltser's expert CTI writing guidelines. Topics include tone, words, structure, executive_summary, voice, articles, summary, 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. 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 provide readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context, such as 'This server never requests your campaign or threat-intel notes' and that guidelines stay local, which goes beyond what annotations 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 well-structured: first sentence states purpose, then enumerates topics, then adds pairing instructions and privacy note. It is informative without being overly verbose, 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?
For a read-only tool with two parameters and no output schema, the description covers topics, field pairing, and data locality. It is complete enough to understand usage, though it omits output format and error handling.
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 adds meaningful context: it explains how to use 'fields' with field_id for single-field guidance and mentions default behavior when topic is omitted. This adds value over the raw 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's purpose: 'Get Lenny Zeltser's expert CTI writing guidelines.' It specifies the resource (CTI writing guidelines) and the verb (Get), and the list of topics differentiates it from sibling guidelines tools despite not explicitly naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests usage for CTI writing guidelines but lacks explicit guidance on when to use this tool versus alternatives like ir_get_guidelines or product_get_guidelines. No exclusions or context for selection are provided.
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?
Annotations cover read-only, non-destructive, and idempotent behavior, but the description adds value by specifying the return content (title, date, topics, summary, body text) and the source website, which are not captured in annotations. 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 front-loaded with the core purpose, followed by context and return details in two efficient sentences. Every sentence adds value without redundancy, making it appropriately sized and well-structured.
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 (1 parameter, no output schema), the description provides sufficient context with purpose, source, content types, and return structure. However, it lacks explicit error handling or rate limit info, though annotations cover safety aspects adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'url' parameter. The description does not add extra parameter details beyond what the schema provides, such as format examples or constraints, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), resource ('full content of a specific article'), and source ('Lenny Zeltser's Website by URL path'), with specific content domains ('Security articles on malware analysis, incident response, and security leadership'). It distinguishes from sibling tools like 'search_zeltser' by focusing on retrieval of a single article rather than searching.
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 when you need the full content of a specific article by URL, with context about the article types. However, it does not explicitly state when not to use it (e.g., vs. 'search_zeltser' for broader queries) or list alternatives, though the distinction is clear from the purpose.
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 indicate read-only, non-destructive, and idempotent behavior, which the description does not contradict. The description adds valuable context by specifying the types of statistics returned (pages indexed, update time, tools), which helps the agent understand what to expect beyond the safety profile provided by 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, well-structured sentence that efficiently conveys the tool's purpose and key details without any wasted words. It is front-loaded with the main action and resource, followed by specific examples of statistics, making it easy to parse.
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 what information it returns, which compensates for the missing output schema. However, it could slightly improve by mentioning the format of the statistics (e.g., numeric, timestamp) for full 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?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately does not discuss parameters, as none exist, and instead focuses on the tool's output semantics, which is useful given the lack of an output 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 specific action ('Get statistics') and resource ('Lenny Zeltser's Website search index'), with explicit details about what statistics are included (total pages indexed, last update time, available tools). It distinguishes itself from siblings like 'get_article' or 'search_zeltser' by focusing on index metadata rather than content retrieval or search operations.
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 obtaining index statistics, which provides clear context for when to use this tool. However, it does not explicitly state when not to use it or name alternatives among siblings (e.g., 'get_capabilities' might overlap in providing system information), so it lacks explicit exclusions or comparisons.
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?
The description adds valuable behavioral context beyond what annotations provide. While annotations indicate read-only, non-destructive, and idempotent operations, the description clarifies that 'Your documents are never sent to this server—guidelines flow to your AI for local analysis,' addressing privacy/security concerns. It doesn't contradict annotations, but provides important implementation details about data flow.
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 efficiently structured with three sentences that each serve distinct purposes: stating the tool's function, clarifying data privacy, and providing sibling tool differentiation. There's no wasted language, and key information is front-loaded appropriately.
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 comprehensive annotations (read-only, non-destructive, idempotent) and full schema coverage, the description provides sufficient context for this informational tool. It could potentially mention output format or response structure since there's no output schema, but the privacy clarification and sibling differentiation compensate well for this.
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 input schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline expectation. The description focuses on the tool's purpose and usage rather than parameter details.
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: 'Get Lenny Zeltser's expert writing guidelines for security reports and assessments.' It specifies the resource (writing guidelines) and scope (security reports/assessments), and distinguishes it from siblings by noting that for incident response reports, ir_* tools should be used 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?
The description explicitly provides usage guidance: 'Works for any security document' and 'For incident response reports specifically, use the ir_* tools which provide deeper section-by-section review criteria.' This clearly defines when to use this tool versus alternatives, including specific sibling tool categories.
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, or summary for quick reference. 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), or summary for a quick reference card. Omit for full guidelines. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only, non-destructive, and idempotent hints, but the description adds valuable context: it clarifies that incident data is never sent to the server, ensuring privacy, and notes that guidelines flow to the AI for local analysis. This enhances transparency beyond the annotations without contradicting them.
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, followed by topic details and privacy assurance. Every sentence earns its place by adding essential information without redundancy, making it efficiently structured and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter, no output schema) and rich annotations, the description is mostly complete. It covers purpose, topics, and privacy, but could slightly enhance completeness by mentioning the return format or how the guidelines are presented, though this is mitigated by the straightforward nature of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds meaning by explaining the purpose of omitting the topic (for full guidelines) and briefly describing each topic (e.g., 'tone (collaborative framing)'), which complements the schema's enum list and provides additional semantic 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?
The description clearly states the verb 'Get' and the specific resource 'Lenny Zeltser's expert writing guidelines for incident response reports,' distinguishing it from siblings like 'get_security_writing_guidelines' or 'get_article' by focusing on incident response. It specifies the topics covered, making the purpose highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing topics and noting that omitting the topic yields full guidelines, but it does not explicitly state when to use this tool versus alternatives like 'get_security_writing_guidelines' or 'ir_get_template.' It provides clear context for incident response report writing but lacks explicit exclusions or named alternatives.
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 report template. Covers all critical IR sections with field-by-field guidance. 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?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds valuable context beyond annotations: it clarifies that 'your incident data is never sent to this server' (privacy/security behavior) and 'guidelines flow to your AI for local analysis' (how the output is used).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by important behavioral details. Every sentence adds value: the first explains what the tool does, and the second addresses privacy and usage flow. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with rich annotations (read-only, idempotent, non-destructive) and no output schema, the description is mostly complete. It explains the purpose, privacy behavior, and output usage. However, it doesn't detail the exact structure or format of the returned template, which could be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to explain parameters, but it implicitly clarifies that no inputs are required by stating what the tool provides without mentioning any user inputs. Baseline for 0 params 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 specific action ('Get'), the resource ('Lenny Zeltser's structured incident response report template'), and distinguishes it from siblings by specifying it's for incident response (vs. product or general articles). It explicitly mentions what the template provides ('covers all critical IR sections with field-by-field guidance').
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 you need an incident response report template with guidance. It doesn't explicitly state when not to use it or name alternatives, but the sibling tools (e.g., 'ir_get_guidelines', 'product_get_template') imply differentiation by domain (IR vs. product).
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?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds useful context: it specifies that notes are never sent to the server (privacy assurance) and mentions token sizes for detail levels (performance guidance). However, it does not disclose rate limits, authentication needs, or error behaviors 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?
The description is front-loaded with the core purpose in the first sentence, followed by specific usage notes and parameter guidance. Every sentence earns its place by clarifying functionality, privacy, and control options without redundancy, making it efficiently structured and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, rich annotations, and 100% schema coverage, the description is mostly complete. It covers purpose, usage context, and key behavioral aspects like privacy and token control. However, without an output schema, it could benefit from more detail on return values (e.g., structure of guidelines), though the mention of 'expert guidelines' provides some indication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds minimal value beyond the schema: it explains the purpose of detail_level with token estimates and mentions local analysis context, but does not provide additional syntax, format, or usage details for parameters like 'topics' or 'incident_type' that aren't already in the schema descriptions.
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: 'Load Lenny Zeltser's IR report writing context for local analysis.' It specifies the resource (IR report writing context) and verb (load), and distinguishes it from siblings by emphasizing local analysis and that notes are never sent to the server, unlike tools like 'ir_review_report' or 'search_zeltser' that might involve server-side processing.
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 on when to use this tool: 'Your AI uses this context to analyze your incident notes locally.' It implies usage for IR report analysis but does not explicitly state when not to use it or name alternatives among siblings, such as 'ir_get_guidelines' or 'product_load_context', leaving some room for ambiguity.
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 cover safety (readOnlyHint, destructiveHint) and idempotency, but the description adds valuable context: 'Your AI uses this to analyze your report locally—your report is never sent to this server.' This clarifies data privacy and local processing behavior, which annotations do not address, enhancing transparency beyond the structured hints.
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 in the first sentence, followed by additional context in a second sentence. Both sentences are efficient and directly relevant, with no wasted words, making it easy for an AI agent to quickly grasp the tool's function and constraints.
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 moderate complexity (2 parameters, no output schema), the description is mostly complete. It covers purpose, usage context, and behavioral details like data privacy. However, it does not explain the return format or how the criteria are applied, which could be helpful since there is no output schema. Annotations provide safety and idempotency, but the description compensates well overall.
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%, providing full details for both parameters (focus and sections). The description does not add any parameter-specific information beyond the schema, such as default behaviors or usage examples. With high schema coverage, a baseline score of 3 is appropriate as the description relies on the schema for parameter semantics.
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: 'Get Lenny Zeltser's expert criteria for reviewing an existing IR report.' It specifies the verb ('Get'), resource ('expert criteria'), and distinguishes it from siblings by mentioning the specific domain (IR reports) and the expert source, unlike generic tools like get_article or search_zeltser.
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: 'to analyze your report locally' and 'for constructive critique.' It implicitly suggests using it for IR report reviews but does not explicitly state when not to use it or name alternatives among siblings, such as ir_get_guidelines or ir_get_template, which might serve related purposes.
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?
The annotations already declare readOnlyHint=true and idempotentHint=true, establishing the safe read-only nature. The description adds crucial privacy context beyond these annotations by stating that 'Your product plans are never sent to this server' and that 'guidelines flow to your AI for local analysis.' It also details the four specific return components (scoring rubric, evaluation dimensions, evidence tiering guidance, and comparison-type-specific instructions), compensating for the lack of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of four information-dense sentences that progress logically from purpose to outputs to requirements to privacy guarantees. Every sentence serves a distinct function without redundancy, and the critical action and scope are front-loaded in the opening clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's straightforward purpose as a context loader with simple scalar parameters and complete schema documentation, the description adequately explains the return values and operational constraints. The privacy disclosure and explicit listing of framework components provide sufficient context despite the absence of a formal output schema, though explicit differentiation from single-product siblings would strengthen it further.
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 input parameters are fully documented in the schema itself, including enum descriptions for comparison_type and range constraints for company_count. The description references the comparative nature ('comparison-type-specific instructions') but does not add syntactic details, validation rules, or semantic nuances beyond what the schema already provides, warranting the baseline score for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Load' and identifies the exact resource as 'Lenny Zeltser's comparative analysis framework.' It clearly distinguishes this tool from single-product siblings like product_load_context by emphasizing 'evaluating multiple security companies side by side,' establishing a clear comparative scope that differentiates it from other product analysis 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 states the prerequisite 'Requires comparative analysis content' and explains the data flow model where 'Your product plans are never sent to this server.' While it provides clear context that this is for comparative evaluation, it does not explicitly name sibling alternatives or specify when to avoid this tool in favor of single-company analysis tools.
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?
While annotations declare readOnly/idempotent hints, the description adds crucial behavioral context not captured in structured fields: 'Your product plans are never sent to this server—guidelines flow to your AI for local analysis.' This privacy/data handling disclosure is significant for a retrieval tool handling sensitive strategy content. It does not contradict 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 structured efficiently with three distinct components: purpose statement, topic enumeration, and privacy note. Every sentence earns its place. The topic list is lengthy but necessary given the 17 enum options; the parenthetical explanations prevent parameter misuse without requiring separate documentation.
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 retrieval tool with robust annotations and no output schema, the description adequately covers the tool's scope, available topics, and data privacy model. It could be improved by briefly describing the format or structure of the returned guidelines to compensate for the missing output schema, but the core functionality is well-documented.
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 description coverage for the 'topic' parameter, the description adds substantial semantic value by mapping each enum value to its meaning: 'market (segmentation), capabilities (AI, agents, MVP, positioning), sales (GTM, channels...)' etc. This parenthetical clarification of domain terminology significantly aids correct parameter selection beyond the raw enum list in 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 expert strategic guidelines for a specific product strategy topic' with a specific verb and resource. However, it does not explicitly distinguish from sibling tools like get_security_writing_guidelines or ir_get_guidelines, relying instead on the 'product strategy' qualifier for implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description enumerates 17 specific topics covered (market, capabilities, sales, etc.), which provides implied usage context for when to invoke the tool. However, it lacks explicit guidance on when NOT to use this tool versus alternatives like product_get_template or get_security_writing_guidelines, and states no prerequisites or dependencies.
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?
While annotations declare readOnly/idempotent/destructive status, the description adds crucial privacy context: 'Your product plans are never sent to this server—guidelines flow to your AI for local analysis.' It also discloses copyright ownership (Lenny Zeltser, 2026), providing legal context not present in structured fields.
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?
Four sentences with zero waste: (1) core purpose, (2) content structure, (3) critical privacy/behavioral note, (4) copyright. Information is front-loaded with the essential action and resource type in the opening clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema, the description adequately describes the return value's content (questions by section, evidence columns) and format (fill-in-the-blank template). Minor gap: does not explicitly state the data format (e.g., markdown/text) though 'template' implies 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?
Input schema contains zero parameters. Per calibration rules, 0 params warrants a baseline score of 4. The description correctly omits parameter discussion as there are none to document, with no penalty applicable.
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 opens with specific verb 'Get' and precise resource 'fill-in-the-blank template for planning a security product strategy'. It clearly distinguishes from sibling 'ir_get_template' via domain (product vs incident response) and from 'product_get_guidelines' via format (template with questions/evidence columns vs 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?
Provides clear context by describing the template's structure (strategic questions organized by section with evidence columns), implicitly guiding selection when a structured framework is needed. However, it does not explicitly contrast with 'product_get_guidelines' or state when to prefer one over the other, stopping short of a 5.
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?
Annotations declare readOnly/idempotent hints, so description adds value by disclosing privacy model ('plans are never sent to this server') and precise response sizing (~2k, ~5k, ~12k tokens). Notes compositional behavior ('Composes with analysis_mode'). 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?
Information-dense single paragraph with zero waste. Front-loaded with purpose ('Load...context'), followed by return value, privacy guarantee, and sequential parameter guidance. Every sentence conveys unique operational guidance; no tautology or redundancy despite 9-parameter complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description appropriately explains return values ('expert strategic frameworks, principles, and guidance'). Covers key parameter interactions (detail_level token sizes, composition of evaluation_perspective). Given 9 parameters with 100% schema coverage, description strategically elaborates on high-impact parameters without redundancy.
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, baseline is 3. Description adds substantial value: specific token counts for detail_level options, usage context for include_template ('saves a separate call'), and assessment framing for product_focus ('viability assessment'). These semantic details aid agent reasoning beyond schema definitions.
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 opens with specific verb 'Load' and resource 'Lenny Zeltser's product strategy context', immediately clarifying scope. It distinguishes from siblings like product_review_plan by emphasizing 'local analysis' and product_get_template by noting the include_template parameter 'saves a separate product_get_template call'.
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 parameter-level guidance ('Use detail_level to control response size', 'Use market_segment...', 'Use product_focus...'). Explicitly names alternative tool product_get_template. Privacy note 'your plans are never sent to this server' implies when to use vs server-side alternatives, though could more explicitly contrast with product_review_plan.
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?
While annotations declare readOnlyHint and idempotentHint, the description adds essential behavioral context not captured in structured fields: the data privacy model ('Your AI uses this to analyze your plan locally—your plan is never sent to this server') and the return value semantics ('focused guidance for constructive critique—what to check in each section'). It does not cover authentication or rate limits, preventing a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description comprises four efficient sentences: purpose (sentence 1), return value (sentence 2), privacy guarantee (sentence 3), and parameter examples (sentence 4). Every sentence delivers unique value with no redundancy or filler, and the information is front-loaded by priority (purpose first, details last).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's read-only nature and lack of output schema, the description adequately covers the conceptual output (review criteria, section checklists) and critical privacy constraints. It sufficiently compensates for the missing output schema by explaining what 'focused guidance' entails. Minor gap: could clarify behavior when called with zero parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description mentions specific parameter values ('smb', 'endpoint') but essentially repeats the schema's explanations without adding syntactic details, validation rules, or semantic nuance beyond what the structured schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'Lenny Zeltser's expert criteria for reviewing an existing product strategy plan,' specifying the exact resource (expert criteria), action (reviewing), and target (existing product strategy plans). This distinguishes it from sibling tools like product_get_guidelines (general guidance) and product_get_template (templates) by focusing specifically on critique and evaluation frameworks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context for specific parameter values ('Use market_segment: "smb"...' and 'Use product_focus: "endpoint"...') and critical privacy guidance ('your plan is never sent to this server'). However, it lacks explicit 'when-not-to-use' guidance or direct comparison to sibling alternatives like product_get_guidelines.
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 indicate read-only, non-destructive, and idempotent behavior, but the description adds useful context by specifying the search scope (titles, abstracts, content, topics) and the content domain (security articles on malware analysis, incident response, security leadership). This enhances understanding beyond the basic safety profile provided by 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 in the first sentence, followed by supporting details in a second sentence. Every sentence adds value without redundancy, making it efficient and well-structured.
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, 100% schema coverage, annotations covering safety), the description is complete enough for a search tool. However, the lack of an output schema means the description could benefit from mentioning the return format (e.g., list of articles with titles/links), though this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'query' and 'limit' parameters. The description does not add any additional parameter details beyond what the schema provides, such as syntax examples or format specifics, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search Lenny Zeltser's Website'), the resource ('Security articles'), and the scope ('by keywords... Searches across titles, abstracts, full content, and topics'). It distinguishes itself from siblings like 'get_article' by emphasizing search functionality rather than direct retrieval.
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 finding security articles via keywords, but it does not explicitly state when to use this tool versus alternatives like 'get_article' or other sibling tools. No exclusions or prerequisites are mentioned, leaving the context somewhat vague.
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), and vuln-specific topics: severity (calibrated insecurity, no vendor passthrough), 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 declare readOnlyHint=true and idempotentHint=true. The description adds: 'never requests your vulnerability notes' and 'instructs your AI to keep them local', which provides extra safety 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?
Single paragraph that efficiently covers purpose, topics, parameter usage, and privacy. Slightly dense but front-loaded with main action. Could be broken into sentences for 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?
No output schema, but description implies textual guidelines. Mentions 'guidelines flow to your AI for local analysis' but does not explicitly state output format (e.g., markdown). Mostly complete for a guidelines retrieval 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?
Schema coverage is 100%, but the description adds: 'Pair the 'fields' topic with field_id for single-field guidance' and explains behavior when 'field_id' is omitted (returns directory). This enhances understanding of inter-parameter dependencies.
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 'Get Lenny Zeltser's expert vulnerability-brief writing guidelines' with specific topics like 'severity', 'actions', 'gaps', etc. It clearly distinguishes from sibling tools (cti_get_guidelines, ir_get_guidelines) by focusing on vulnerability briefs.
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 context: 'Pair the 'fields' topic with field_id' and 'This server never requests your vulnerability notes...guidelines flow to your AI for local analysis.' Lacks explicit when-not-to-use or comparisons to 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.
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 Advisory Brief context for local analysis. Returns a JSON payload with brief section guidance, completeness criteria, severity discipline, 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 already indicate readOnlyHint=true and idempotentHint=true. The description adds value by disclosing that it always embeds the mcpHandoffs array and that the server does not request vulnerability notes. 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 front-loaded with the core purpose and then details contents. It is somewhat lengthy but every sentence adds information about functionality or handoffs. Could be slightly more concise, but it is well-structured.
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 (multiple topics, detail levels, examples, and handoffs), the description provides a complete picture. It explains the return value thoroughly, including the embedded handoffs array, and covers data locality. No output schema exists, so the description carries the burden effectively.
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 descriptions in the schema (100% coverage), so baseline is 3. The description does not add parameter-specific meaning beyond what the schema provides, but it does not contradict or mislead.
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 Vulnerability Advisory Brief context for local analysis' and specifies the exact content of the returned JSON payload. It distinguishes itself from sibling tools by explicitly listing the six handoff pointers and noting data is kept local.
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 guidance on when to use the tool by explaining it returns context and handoff pointers to sibling tools. It also clarifies data handling ('this server never requests your vulnerability notes and instructs your AI to keep them local'). However, it does not explicitly state when not to use this tool.
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 Advisory Brief. Surfaces per-theme review criteria (severity, 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, severity, 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?
The description adds significant behavioral context beyond annotations: it states the server never requests vulnerability notes and instructs the AI to keep them local, and it describes how focus triggers scoring or writing-mechanics pointers. Annotations already indicate readOnly, idempotent, non-destructive, but the description enhances understanding of the tool's interaction pattern.
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 long, front-loaded with the main purpose. The second sentence is dense and includes multiple details (per-theme criteria, cross-cutting, anti-patterns, mcpHandoffs pointers) which could be split for clarity, but overall it's concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 optional enum parameters, no output schema), the description covers what the tool does, what it surfaces, and how it interacts with the AI (keeping notes local). It provides enough context for correct selection and invocation without needing additional details.
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 both parameters (focus and sections) with enums. Schema description coverage is 100%. The description adds minimal extra meaning beyond noting that certain focus values trigger pointers, which is helpful but not substantial enough to raise the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get Lenny Zeltser's expert criteria for reviewing an existing Vulnerability Advisory Brief.' It uses a specific verb ('Get') and resource ('Vulnerability Advisory Brief'), and distinguishes from sibling tools like cti_review_report by focusing on vulnerability briefs and noting that it never requests vulnerability notes.
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 when to use the tool (for reviewing a Vulnerability Advisory Brief) and provides context about focus areas triggering specific pointers. It also instructs the AI to keep notes local, offering some guidance. However, it does not explicitly contrast with alternative tools or state 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.
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!