Skip to main content
Glama

mitre-cwe-mcp-server

Server Details

Explore MITRE CWE weaknesses, CAPEC attack patterns, mitigations, code examples, and mappings.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/mitre-cwe-mcp-server
GitHub Stars
0
Server Listing
mitre-cwe-mcp-server

TDQS

A4.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct role: get-detail tools target specific CWE/CAPEC entities, search tools find matching weaknesses or attack patterns, and hierarchy/view/reference tools handle navigation and vocabulary. The descriptions explicitly route overlapping view-related needs to the correct tool.

Naming Consistency5/5

All tools use the same cwe_ prefix and a consistent verb_noun pattern: get_, list_, or search_ followed by the target resource. Singular/plural forms follow the operation naturally.

Tool Count5/5

Seven tools is well-scoped for a read-only CWE/CAPEC reference server. Each tool covers a distinct retrieval, search, navigation, or catalog-inspection need.

Completeness5/5

The surface covers searching and retrieving weaknesses, attack patterns, views, hierarchy traversal, vocabulary/versions, and health/reference data. For a read-only MITRE reference server, this provides comprehensive lifecycle coverage without unnecessary write operations.

Available Tools

7 tools
cwe_get_attack_patternRetrieve CAPEC attack patternsA
Read-onlyIdempotent
Inspect

Retrieve CAPEC attack patterns, categories, and views by ID, such as CAPEC-66, CAPEC66, or 66, including Deprecated and Obsolete records; each entry’s type says which. Processes up to 20 distinct IDs within a 24,000-byte response budget and discloses deferred IDs; a CWE ID or an item that is no ID returns in notFound with recovery guidance; only an item holding a control character other than whitespace, or a non-ID item over 150 characters, rejects the whole call. Patterns default to summary, prerequisites, execution, mitigations, and mappings; categories and views default to summary (the category summary or view objective) and relations (members in source order, or a filter-defined view’s source XPath filterDefinition). Views CAPEC-1000 (Mechanisms of Attack) and CAPEC-3000 (Domains of Attack) are entry points for browsing patterns by category. A default section that does not fit the budget is omitted whole and named with its size and a re-call (kind partial). The notes section, outside the defaults, returns recorded MITRE notes. Explicit sections remain complete, including one oversized record with disclosure; an empty array requests an outline. Recorded CWE and ATT&CK mappings are incomplete and do not establish current ATT&CK validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesOne to 200 submitted IDs; up to 20 distinct items are processed within the response budget.
sectionsNoSelected sections; omit for defaults, or pass an empty array for an outline.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoMaximum identifiers processed per call.
errorNoPresent when the call failed. Absent on success.
shownNoIdentifiers processed.
noticeNoWhole-identifier continuation and budget disclosure.
entriesNoFound projected entries in request order.
guidanceNoCall-level guidance: deferred-ID continuation, budget disclosure, and the re-call for parameters the selected sections leave unused.
notFoundNoPer-ID misses; an all-missing batch is success.
truncatedNoWhether the count or response budget deferred identifiers.
provenanceNoLoaded catalog provenance.
totalCountNoDistinct submitted identifiers before the batch cap.
deferredIdsNoDistinct items to submit in a later call: canonical IDs, or the collapsed text of an item that is no ID.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover read-only/idempotent/open-world, while the description discloses the 24,000-byte budget, deferred-ID reporting, omission of default sections with a named size and 'kind partial' re-call, per-item notFound behavior for CWE IDs, whole-call rejection triggers, and the caveat that recorded ATT&CK mappings are not current validation. That is substantial behavior beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and ID formats are front-loaded and nearly every clause carries a distinct constraint. It is, however, a single semicolon-chained block that is hard to parse for a tool with this many conditional behaviors; light structure would improve it without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batched lookup with an output schema already defining return shape, the description covers the remaining risks: budget truncation, section defaults, per-item error handling, and mapping reliability. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by documenting the default section set for patterns (summary, prerequisites, execution, mitigations, mappings) versus categories/views (summary plus relations in source order or XPath filterDefinition), which the schema never states. It also explains the notes section as outside the defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (retrieve) and resource (CAPEC attack patterns, categories, views) plus accepted ID forms (CAPEC-66, CAPEC66, 66) and the fact that Deprecated/Obsolete records are included. An agent can tell this is a by-ID lookup rather than the sibling cwe_search_attack_patterns sweep without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: up to 20 distinct IDs per call, empty array requests an outline, and CAPEC-1000/CAPEC-3000 are named as entry points for browsing by category. It stops short of explicitly routing to cwe_search_attack_patterns when IDs are unknown, so there is no stated alternative path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_get_hierarchyGet CWE hierarchyA
Read-onlyIdempotent
Inspect

Navigate live CWE parents, children, ancestors, or descendants for a weakness, category, or view. Discover IDs with cwe_search_weaknesses or cwe_list_reference topic views. The default view is 1000; set viewId all for every view. primaryOnly applies only to ancestors. Edges point from parent to child and retain view identity; follow nextCursor for more edges. Continuations re-fetch the traversal and reject changed topology. Empty relations are successful; upstream failures remain errors. Node names come from the loaded catalog and may lag live IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCWE ID such as CWE-79 or 79, for a weakness, category, or view.
limitNoMaximum page size; capped at 100 and a 24,000-byte response budget with disclosure.
cursorNoOpaque continuation returned by this tool.
viewIdNoCWE view ID such as CWE-1000 or 1000, or all; discover with cwe_list_reference topic views. Blank means the default.1000
directionYesLive hierarchy direction.
primaryOnlyNoRestrict ancestors to primary parents; invalid for other directions when true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoCanonical queried root ID.
capNoEffective edge page cap.
edgesNoDeterministically ordered edge page.
errorNoPresent when the call failed. Absent on success.
foundNoWhether the root exists according to the live hierarchy response.
nodesNoEndpoint nodes of this page's edges; the first page also lists roots without edges.
shownNoReturned edge count.
noticeNoPaging cap or source drift notice.
viewIdNoCanonical selected view or all.
guidanceNoRecovery guidance for an unknown root.
directionNoApplied traversal direction.
truncatedNoWhether additional edges remain.
paginationNoLocal result pagination.
provenanceNoLoaded catalog provenance.
totalCountNoFull traversal edge count.
primaryOnlyNoApplied primary ancestor restriction.
retrievedAtNoLive retrieval time in ISO format.
appliedFiltersNoNormalized traversal and paging inputs.
hierarchyFingerprintNoFull traversal and catalog version fingerprint.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly/idempotent/openWorld; the description goes well beyond them by explaining edge orientation (parent to child with view identity retained), cursor continuation semantics including re-fetch and rejection of changed topology, that empty relations succeed while upstream failures error, and that node names may lag live IDs. These are non-obvious behaviors an agent could not infer from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose leads, then discovery, then parameter rules, then edge/pagination semantics, then error and freshness caveats – a sensible ordering with no filler. The telegraphic clauses about topology rejection and catalog lag are dense but each carries real information rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, an output schema, and full annotation coverage, the description supplies exactly the missing behavioral layer: pagination, error/success distinctions, and catalog staleness. Nothing needed to call the tool correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already documents id format, limit caps, cursor opacity, viewId default/all, and primaryOnly's restriction, so the description's viewId/primaryOnly notes largely restate the schema. Only the cursor follow-next and default-view framing add slight value, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb (navigate) plus resource (CWE hierarchy) and enumerates the four relation types, so an agent immediately knows this is traversal, not lookup. It explicitly routes ID discovery to cwe_search_weaknesses and cwe_list_reference, separating it from the get_* siblings that return a single node.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states how to obtain IDs, what the default view is (1000), how to span all views (viewId all), and that primaryOnly is valid only for ancestors. What it doesn't do is contrast traversal with cwe_get_weakness/cwe_get_view when the agent already has an ID, so the when-not-to-use case is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_get_viewGet CWE viewA
Read-onlyIdempotent
Inspect

Read a CWE view objective, audience, status, source filter, recorded notes, and direct members in published order. Navigation views list top-level members rather than every descendant; use cwe_get_hierarchy for navigation or cwe_search_weaknesses with viewId for weakness membership closure. A filter-defined (Implicit) view lists no members: its filterDefinition is the source XPath that defines membership, and cwe_search_weaknesses with its viewId returns the weaknesses that filter selects; when the filter has a part this server does not evaluate, the guidance says so and that search returns none with a disclosure. Unknown and non-view IDs return a structured miss. Follow nextCursor for remaining direct members.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCWE view ID such as CWE-1000 or 1000; discover with cwe_list_reference topic views.
limitNoMaximum page size; capped at 100 and a 24,000-byte response budget with disclosure.
cursorNoOpaque continuation returned by this tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoCanonical requested CWE ID.
capNoEffective page limit.
nameNoSource view name.
typeNoSource view type.
errorNoPresent when the call failed. Absent on success.
foundNoWhether this ID resolves to a CWE view.
notesNoNotes MITRE records for this entry, in source order; absent when none are recorded.
shownNoPage item count.
noticeNoPage cap disclosure.
reasonNoMissing record or known non-view.
statusNoSource status.
membersNoDirect members in source order.
audienceNoSource audience.
guidanceNoView discovery or empty-members guidance.
objectiveNoComplete source objective in CommonMark.
sourceUrlNoOfficial view definition URL.
truncatedNoWhether more direct members remain.
paginationNoLocal result pagination.
provenanceNoLoaded catalog provenance.
totalCountNoDirect members before paging.
appliedFiltersNoApplied inputs and defaults.
filterDefinitionNoSource XPath filter defining a filter-defined view’s membership, exactly as published.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnly/idempotent/openWorld; the description adds real behavioral knowledge beyond that: navigation views truncate to top-level members, Implicit views return no members at all, unknown or non-view IDs yield a structured miss, and unparseable filter parts produce a disclosure-backed empty result. It also discloses pagination semantics via nextCursor, which is non-obvious for a 'direct members' list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then edge cases; every sentence carries substantive routing or behavior information. There is mild redundancy, since weakness-membership-via-search is restated for the navigation and Implicit cases, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description correctly avoids describing return shapes and instead covers the decision-relevant edge cases: truncation, empty Implicit views, structured misses, pagination, and unevaluated filter parts. Nothing an agent needs to call this correctly in a knowledge-graph context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: cursor pagination is scoped to 'remaining direct members' rather than any other collection, and it clarifies what a filter view's filterDefinition represents. The limit parameter's cap and byte budget are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource (a CWE view) and enumerates exactly which fields are returned (objective, audience, status, source filter, notes, direct members). It also draws the boundary against cwe_get_hierarchy and cwe_search_weaknesses, so an agent can distinguish it from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes: 'use cwe_get_hierarchy for navigation or cwe_search_weaknesses with viewId for weakness membership closure,' which names both alternatives and the conditions that select them. It further explains the Implicit/filter-defined case where the correct alternative is the search tool, including the case where the filter part isn't evaluated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_get_weaknessRetrieve CWE weaknessesA
Read-onlyIdempotent
Inspect

Retrieve CWE weaknesses or categories by ID, such as CWE-79, CWE79, or 79. Processes up to 20 distinct IDs within a 24,000-byte response budget and discloses deferred IDs; a view, a CAPEC ID, or an item that is no ID returns in notFound with recovery guidance; only an item holding a control character other than whitespace, or a non-ID item over 150 characters, rejects the whole call. Defaults to summary, consequences, mitigations, and relations; a default section that does not fit the budget is omitted whole and named with its size and a re-call (kind partial). Summary carries recorded alternate terms such as XSS, ordinalities (Primary, Resultant, Indirect), and background details; the notes section, outside the defaults, returns every note MITRE records, such as Relationship, Maintenance, Terminology, and Research Gap notes. Explicit sections remain complete, including one oversized record with disclosure; an empty sections array requests an outline. exampleLanguage, exampleOffset, and exampleLimit select a complete source-ordered page of section examples: with sections omitted, setting any of them to a non-default value adds examples after the defaults, filled last and outlined with its page size and a re-call when it does not fit; explicit sections without examples ignore them, and guidance gives the re-call that adds examples. Categories are organizational entries, not vulnerability root causes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesOne to 200 submitted IDs; up to 20 distinct items are processed within the response budget.
sectionsNoSelected sections; omit for defaults, or pass an empty array for an outline.
exampleLimitNoComplete examples per entry in section examples; no upper bound beyond the finite source array. With sections omitted, a value other than 3 adds examples to the defaults.
exampleOffsetNoOffset in each entry’s language-filtered examples (section examples). With sections omitted, a value above 0 adds examples to the defaults.
exampleLanguageNoExact source example code language for section examples; discover values through cwe_list_reference topic platforms. With sections omitted, adds examples to the defaults.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoMaximum identifiers processed per call.
errorNoPresent when the call failed. Absent on success.
shownNoIdentifiers processed.
noticeNoWhole-identifier continuation and budget disclosure.
entriesNoFound projected entries in request order.
guidanceNoCall-level guidance: deferred-ID continuation, budget disclosure, and the re-call for parameters the selected sections leave unused.
notFoundNoPer-ID misses; an all-missing batch is success.
truncatedNoWhether the count or response budget deferred identifiers.
provenanceNoLoaded catalog provenance.
totalCountNoDistinct submitted identifiers before the batch cap.
deferredIdsNoDistinct items to submit in a later call: canonical IDs, or the collapsed text of an item that is no ID.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

On top of readOnly/openWorld/idempotent annotations, the description discloses a great deal of behavior beyond them: a 20-distinct-ID cap inside a 24,000-byte budget with deferred IDs named, whole-section omission marked with size and 'kind partial', completion guarantees for explicit sections including oversized records, and precise rejection rules (control characters, non-ID items over 150 characters). This is exactly the context an agent needs to interpret a partial result rather than retry blindly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Nearly every clause carries information, but the middle sentences are long semicolon-chained runs that are hard to parse on first read, and the example-paging semantics are restated across the description and multiple schema fields. The single most important fact (batch limits) is front-loaded, but overall structure is dense rather than crisp.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, rich annotations, and full schema coverage, the description rounds out the remaining gaps: budget behavior, partial-result semantics, rejection conditions, default vs explicit section behavior, and example paging. An agent can call this correctly and interpret truncated responses without further documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the property descriptions already repeat much of the budget and example-paging semantics, so the baseline is 3. The description still adds value by explaining the interaction rules -- that example parameters are ignored under explicit sections, that paging is source-ordered and language-filtered, and that the page is outlined with its size and a re-call -- which the schema only states piecemeal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource plus concrete accepted ID formats (CWE-79, CWE79, 79), and closes by clarifying that categories are organizational entries rather than root causes. Sibling differentiation is only implicit -- it notes that a view or CAPEC ID lands in notFound, which gestures at cwe_get_view / cwe_get_attack_pattern without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear operating context: defaults when sections is omitted, an outline for an empty array, and that explicit sections without examples ignore the example parameters. It also functions as a soft exclusion by stating that views and CAPEC IDs return in notFound with recovery guidance, but it never explicitly routes the agent to cwe_search_weaknesses for discovering IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_list_referenceList CWE and CAPEC reference valuesA
Read-onlyIdempotent
Inspect

List loaded CWE/CAPEC vocabulary, every CWE view, workflow guidance, or catalog versions and refresh health. Filter requires every whitespace-separated token in an item label, each at a word start or camelCase hump (script finds JavaScript); omit filter to browse. Platforms distinguishes example code languages from platform names and classes. Follow nextCursor for complete lists; limits above 100 are capped with disclosure.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum page size; capped at 100 and a 24,000-byte response budget with disclosure.
topicYesviews lists CWE view IDs; abstraction_levels explains CWE and CAPEC levels; mitigation_phases lists prevention phases; platforms lists platform dimensions and exampleLanguages; relationship_natures lists relation labels; filter_values lists statuses, consequence impacts, CWE mapping usage, CWE taxonomy names, severity, and likelihood; workflow explains navigation; versions reports catalog freshness and refresh health.
cursorNoOpaque continuation returned by this tool.
filterNoAll-token case-insensitive label filter; each token matches at a word start or camelCase hump, never inside a word. Blank means unset.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoEffective page limit.
errorNoPresent when the call failed. Absent on success.
itemsNoMatching reference page.
shownNoReference items on this page.
topicNoRequested topic.
noticeNoApplicable empty or cap disclosure.
catalogsNoBoth loaded catalog health records; versions only.
truncatedNoWhether the page limit omitted matching items.
paginationNoLocal result pagination.
provenanceNoLoaded catalog provenance.
totalCountNoMatching reference items before paging.
appliedFiltersNoApplied filters and defaults.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description adds behavior beyond them: page caps above 100 with disclosure and the need to follow nextCursor for exhaustive lists. It does not mention ordering of results or what an empty page means, which keeps it from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource scope, then filter and pagination behavior, with no filler sentences. The second sentence ("Platforms distinguishes example code languages from platform names and classes") is compressed to the point of being hard to parse on first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full schema descriptions, and annotations present, the description only needs to add routing and behavioral context, which it does for filtering, capping, and pagination. Coverage of how the topics relate to sibling tools is the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the non-obvious filter matching rule (tokens match at word starts or camelCase humps, with the "script finds JavaScript" example) and by clarifying that platforms mixes example-code languages with platform names and classes. The limit cap and cursor semantics largely repeat the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ("List loaded CWE/CAPEC vocabulary") and enumerates the topic families it covers, which clearly separates it from the get_/search_ siblings. The trailing "or" chaining of views, workflow, and versions makes it read as a grab-bag rather than a crisp statement of one purpose, so it falls short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"omit filter to browse" plus "Follow nextCursor for complete lists" gives concrete when-to guidance for the two main usage modes. It stops short of explicitly routing the agent away from cwe_search_weaknesses or cwe_get_view, so there is context but no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_search_attack_patternsSearch CAPEC attack patternsA
Read-onlyIdempotent
Inspect

Search CAPEC attack patterns by every whitespace-separated text token, recorded CWE or ATT&CK mapping, abstraction, severity, or likelihood. A text token matches at a word start, never inside a word, so search a compound or negated form such as deserialization or untrusted as written. Parent ATT&CK techniques include recorded subtechniques; CWE mappings are exact without hierarchy expansion. Omit filters to browse. Deprecated and Obsolete patterns are excluded by default. Mappings are incomplete and do not validate current ATT&CK coverage. Results order by all tokens in the name or in one recorded alternate term such as MITM, then all in the description, then any other match, then numeric ID; use cwe_get_attack_pattern for complete sections and follow nextCursor for remaining matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
cweIdNoExact recorded CWE mapping, a CWE ID such as CWE-79 or 79 from cwe_search_weaknesses; blank means unset.
limitNoMaximum page size; capped at 100 and a 24,000-byte response budget with disclosure.
cursorNoOpaque continuation returned by this tool.
filterNoAll-token case-insensitive filter over the name, recorded alternate terms, and description; each token matches at a word start or camelCase hump (path finds XPath), never inside a word. Blank means unset.
severityNoExact source severity; discover with cwe_list_reference topic filter_values.
likelihoodNoExact source likelihood; discover with cwe_list_reference topic filter_values.
abstractionNoExact CAPEC abstraction; blank means unset.
includeInactiveNoInclude Deprecated and Obsolete patterns; default false.
attackTechniqueIdNoRecorded Tdddd or Tdddd.ddd mapping from cwe_get_attack_pattern mappings, also accepting bare numeric form; blank means unset.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoEffective limit.
errorNoPresent when the call failed. Absent on success.
shownNoPage item count.
noticeNoEmpty-result or cap guidance.
resultsNoMatching pattern page.
truncatedNoWhether more matches remain.
paginationNoLocal result pagination.
provenanceNoLoaded catalog provenance.
totalCountNoMatching count before paging.
appliedFiltersNoApplied filters and defaults.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld/idempotent annotations, the description discloses token-matching semantics (word-start only, never mid-word), that parent ATT&CK techniques include recorded subtechniques, that CWE mappings are exact with no hierarchy expansion, that Deprecated/Obsolete records are excluded by default, and the precise result ordering. It even warns that mappings are incomplete and do not validate current ATT&CK coverage — a real caveat an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the search surface and back-loaded with ordering and paging guidance, with no filler sentences. It is somewhat dense and restates the word-start token rule that the filter parameter schema already documents, a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter search tool with an output schema, the description covers the behavioral edges an agent would otherwise get wrong: default exclusion of inactive patterns, no hierarchy expansion on CWE, incomplete mappings, deterministic ordering, and cursor continuation. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 meaning on top by clarifying that CWE filters are exact-without-hierarchy and that attack-technique filters roll up parent techniques, which the schema does not say. It does not explain how to discover severity/likelihood values in the description (that hint lives only in the schema), so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search CAPEC attack patterns) plus the full set of searchable dimensions. It explicitly routes to the sibling cwe_get_attack_pattern for complete sections, so an agent can distinguish it from related tools without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Omit filters to browse" gives the no-filter case, "use cwe_get_attack_pattern for complete sections" names the alternative and its condition, and "follow nextCursor for remaining matches" covers the paging case. Usage is fully specified rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cwe_search_weaknessesSearch CWE weaknessesA
Read-onlyIdempotent
Inspect

Search CWE weaknesses by all text tokens, exact platform or consequence vocabulary, abstraction, status, mapping usage, view membership, a recorded taxonomy mapping (taxonomy name or entry ID such as CERT C ARR30-C), or a CVE that MITRE cites as an observed example. A text token matches at a word start, never inside a word, so search a compound or negated form such as deserialization or untrusted as written; text never matches an entry ID or CVE. Omit filters to browse; categories are excluded. Each result carries MITRE’s mapping usage, which says whether the entry may be used to map a vulnerability, and, under a taxonomy or CVE filter, every mapping or observed example that matched. Results order by all tokens in the name or in one recorded alternate term such as XSS, then all in the description, then any other match, then numeric ID. Description previews contain the first sentence; use cwe_get_weakness for complete sections. Follow nextCursor for remaining matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum page size; capped at 100 and a 24,000-byte response budget with disclosure.
cursorNoOpaque continuation returned by this tool.
filterNoAll whitespace-separated tokens must match the name, a recorded alternate term, the description, or the extended description, each at a word start or camelCase hump (dos finds ReDoS), never inside a word: search a compound or negated form as written, such as deserialization or untrusted. Blank means unset.
statusNoExact weakness status; discover with cwe_list_reference topic filter_values. A status only categories carry matches nothing. Omission includes all statuses, including Deprecated.
viewIdNoCWE view ID such as CWE-1000 or 1000, from cwe_list_reference topic views; matches the weaknesses its recorded members reach within the view, or that its source filter selects for a filter-defined view. Blank means unset.
languageNoExact platform language name or class; discover with cwe_list_reference topic platforms.
technologyNoExact platform technology name or class; discover with cwe_list_reference topic platforms.
abstractionNoExact CWE abstraction level; blank means unset.
mappingUsageNoExact MITRE vulnerability mapping usage, such as Allowed or Allowed-with-Review; discover values with cwe_list_reference topic filter_values.
taxonomyNameNoExact taxonomy name a weakness mapping records, such as CERT C Secure Coding or ISA/IEC 62443; discover values with cwe_list_reference topic filter_values. Matches any mapping in that taxonomy, including one without an entry ID.
observedCveIdNoCVE ID such as CVE-2021-44228, in any case; matches the weaknesses MITRE cites it on as an observed example, not other CVE-to-CWE assignments such as NVD’s. Blank means unset.
taxonomyEntryIdNoEntry ID a weakness taxonomy mapping records, such as ARR30-C or A1, in any case and with any whitespace runs; matches only the whole recorded ID. With taxonomyName, both must hold on the same mapping. Blank means unset.
consequenceImpactNoExact consequence impact; discover with cwe_list_reference topic filter_values.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoEffective page limit.
errorNoPresent when the call failed. Absent on success.
shownNoItems shown on this page.
noticeNoEmpty-result or page-cap guidance.
resultsNoMatching weakness page.
truncatedNoWhether a page omits remaining matches.
paginationNoLocal result pagination.
provenanceNoLoaded catalog provenance.
totalCountNoComplete matching count before paging.
appliedFiltersNoApplied filters and defaults.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and open-world. The description adds substantive behavior beyond that: categories are excluded, results are ordered by match quality and then ID, result previews contain only the first sentence, and matching mapping/observed-example details appear under taxonomy or CVE filters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and searchability, then covers matching, exclusions, result shape, and pagination. It is dense and mostly earns its length, though several token-matching details duplicate the schema and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 optional parameters, a fully documented schema, an output schema, and strong annotations, the description supplies everything needed: browse behavior, matching semantics, exclusions, result composition, ordering, and continuation via cursor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains nearly every parameter in detail, including token matching, taxonomy mapping conjunction, CVE exactness, and view semantics. The description adds little parameter meaning beyond the schema, so the high-coverage baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: search CWE weaknesses, then enumerates the dimensions by which it can search. This clearly distinguishes it from cwe_get_weakness (full sections) and cwe_search_attack_patterns (different resource).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to omit filters to browse, that categories are excluded, and that cwe_get_weakness should be used for complete sections. It also explains following nextCursor and how to discover filter values, giving clear alternatives and conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedcwe_get_attack_pattern
    • First observedcwe_get_hierarchy
    • First observedcwe_get_view
    • First observedcwe_get_weakness
    • First observedcwe_list_reference
    • First observedcwe_search_attack_patterns
    • First observedcwe_search_weaknesses

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables querying MITRE Common Weakness Enumeration (CWE) data, including weaknesses, categories, views, and their relationships, through natural language or direct tools.
    21 npm
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables querying the MITRE ATT\&CK framework for adversarial tactics, techniques, mitigations, and detection methods through natural language, supporting both ID-based and fuzzy name-based searches.
    3
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.