1. Conduid
  2. Security
  3. Fetch Cwe List
MCP server · Security

Fetch Cwe List

MCP (Model Context Protocol) server exposing fetch-cwe-list tools for LLM agents. Experimental/alpha — APIs may change.

42Fair

Scored 5 months ago · breakdown

About Fetch Cwe List

Fetch Cwe List is an MCP server in the Security category: mCP (Model Context Protocol) server exposing fetch-cwe-list tools for LLM agents. Experimental/alpha — APIs may change.

Install

Claude Code
claude mcp add fetch-cwe-list -- npx -y fetch-cwe-list-mcp
npx
npx -y fetch-cwe-list-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Fetch Cwe List

Powered by Claude · Grounded in docs

I know everything about Fetch Cwe List. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

fetch-cwe-list

npm

A simple, secure Node.js module that fetches and parses the latest Common Weakness Enumeration (CWE) list from MITRE.

Quick Start

npm install fetch-cwe-list
const fetchCweList = require('fetch-cwe-list')

// Fetch latest CWE list
const cweList = await fetchCweList()
console.log(`Fetched ${cweList.length} CWE entries`)

// Fetch specific version
const cweListV413 = await fetchCweList('4.13')

That's it. Each entry includes parsed CWE data with enriched external references.

Features

  • Live data — Always current, fetched directly from MITRE
  • Enriched — CAPEC mappings, CVE context, hierarchy relationships, external references
  • Cached — Optional 1-hour TTL cache (configurable)
  • Query helpers — findById, findByName, findByCapec for common lookups
  • Secure — 30s timeout, 100MB size limit, XXE protection, no shared state
  • TypeScript — Full type definitions included

Usage

Fetch and iterate

const cweList = await fetchCweList()
cweList.forEach(cwe => {
  console.log(`${cwe.ID}: ${cwe.Name}`)
})

Use query helpers

const { findById, findByName, findByCapec } = require('fetch-cwe-list')
const cweList = await fetchCweList()

const cwe79      = findById(cweList, '79')
const injections = findByName(cweList, 'injection')
const xssCwes    = findByCapec(cweList, '209')  // CAPEC-209: XSS Using MIME Type Mismatch

Access enriched data

const cweList = await fetchCweList()
const cwe79 = findById(cweList, '79')

// CAPEC attack patterns
console.log(cwe79.CAPEC_IDs)  // ['63', '85', '209', '588', '591', '592']

// Hierarchy (parent weaknesses)
console.log(cwe79.Hierarchy.parents)  // ['74']

// Known CVEs
cwe79.Known_CVEs.forEach(({ id, description }) => {
  console.log(`${id}: ${description}`)
})

Cache control

const { clearCache } = require('fetch-cwe-list')

const list1 = await fetchCweList()  // Downloads, caches for 1 hour
const list2 = await fetchCweList()  // Instant (cached)

// Bypass cache
const fresh = await fetchCweList('latest', { cache: false })

// Invalidate cache
clearCache()

API Reference

fetchCweList([version], [opts])

Parameters:

  • version (string, optional) — CWE version to fetch (e.g., '4.13'). Defaults to 'latest'.
  • opts (object, optional) — Options:
    • cache (boolean, optional) — Set to false to bypass cache. Default: true

Returns:

  • Promise resolving to array of CWE objects

Throws:

  • Error if download fails, timeout occurs, or version not found

clearCache()

Clears the in-memory cache. The cache instance itself is not exposed to prevent external poisoning via cache.set().

findById(cweList, id)

Find a single CWE by its ID string.

Parameters:

  • cweList — Array returned by fetchCweList()
  • id (string) — The CWE ID, e.g., '79'

Returns:

  • CWE object or undefined

findByName(cweList, pattern)

Find all CWEs whose name contains the given string (case-insensitive).

Parameters:

  • cweList — Array returned by fetchCweList()
  • pattern (string) — Case-insensitive substring

Returns:

  • Array of CWE objects

Note: RegExp is intentionally not supported to prevent ReDoS attacks.

findByCapec(cweList, capecId)

Find all CWEs that map to a given CAPEC ID string.

Parameters:

  • cweList — Array returned by fetchCweList()
  • capecId (string) — The CAPEC ID, e.g., '86'

Returns:

  • Array of CWE objects

Data Structure

Each CWE entry contains MITRE's fields plus enriched data after v0.1.0:

Field Type Always present Description
ID string Yes CWE ID (normalized from numeric parser output)
CAPEC_IDs string[] Yes Mapped CAPEC attack pattern IDs (empty array if none)
Known_CVEs { id, description }[] Yes CVEs from Observed_Examples (empty array if none)
Hierarchy object No Parent relationships (absent if no Related_Weaknesses)
References.Full_Details object[] No Enriched external reference objects

Example entry:

{
  ID: "79",
  Name: "Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')",
  Status: "Stable",
  Description: "...",
  CAPEC_IDs: ['63', '85', '209', '588', '591', '592'],
  Known_CVEs: [
    { id: 'CVE-2021-1879', description: '...' }
  ],
  Hierarchy: {
    parents: ['74'],
    relationships: [
      { nature: 'ChildOf', cweId: '74', viewId: '1000', ordinal: 'Primary' }
    ]
  },
  References: {
    Reference: [{ External_Reference_ID: "REF-2" }],
    Full_Details: [
      {
        Reference_ID: "REF-2",
        Author: "OWASP",
        Title: "Cross Site Scripting (XSS)",
        URL: "https://www.owasp.org/..."
      }
    ]
  }
}

Note: Single references are automatically normalized to arrays and enriched just like multiple references. IDs are normalized to strings for consistency across all API surfaces.

MCP Server

Experimental: Alpha release. APIs may change.

An MCP server is available for using this library as tools in LLM agents like Claude Code, Codex, etc.:

npx fetch-cwe-list-mcp

See packages/fetch-cwe-list-mcp for full setup and usage.

License

MIT

Author

Alejandro Saenz

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Fetch Cwe List

How do I install Fetch Cwe List?

Run claude mcp add fetch-cwe-list -- npx -y fetch-cwe-list-mcp, then add the server to your MCP client's configuration.

Is Fetch Cwe List safe to use with an AI agent?

Its trust score is 42 out of 100 (fair). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Fetch Cwe List still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.