UNPKG

mcp-cve-intelligence-server-lite-test

Version:

Lite Model Context Protocol server for comprehensive CVE intelligence gathering with multi-source exploit discovery, designed for security professionals and cybersecurity researchers - Alpha Release

115 lines 4.52 kB
import type { CVE, CVESearchFilters, CVESearchResult } from '../types/cve.js'; import { BaseCVESourceImplementation, SourceValidationResult, type RequestOptions } from './base.js'; /** * MITRE Corporation CVE Source Implementation * * MITRE is the original CVE numbering authority and maintains the official CVE Services API. * This implementation provides access to authoritative CVE records directly from the source. * * API Documentation: https://cveawg.mitre.org/api-docs/ * Base URL: https://cveawg.mitre.org/api * * IMPLEMENTED ENDPOINTS: * * Public Access (no authentication): * - GET /cve/{id} - Retrieve individual CVE records by ID * * Authenticated Access (requires CVE Program membership): * - GET /cve - Search/filter CVE records (Secretariat role) * - GET /cve_cursor - Cursor-based pagination (Secretariat role) * * AUTHENTICATION: * MITRE uses a three-header authentication system for CVE Program members: * - CVE-API-ORG: Organization short name (env: MITRE_API_ORG or CVE_API_ORG) * - CVE-API-USER: Username (env: MITRE_API_USER or CVE_API_USER) * - CVE-API-KEY: API key (env: MITRE_API_KEY) * * FEATURES: * Individual CVE lookup (public) * Authenticated search (requires CVE Program membership) * CVE JSON 5.1 format support * CVSS v3.1/v3.0/v2.0 metrics * CWE weakness mapping * Product/version configuration data * Authoritative reference links * Exploit indicator detection * Multi-container data (CNA + ADP) * * LIMITATIONS: * - Search functionality requires CVE Program membership and Secretariat role * - Public access limited to individual CVE ID lookups * - Rate limiting applies (respects API guidelines) * * NOTE: Without authentication, only public read-only access to individual CVE records * is available. All administrative, creation, and modification operations require * CVE Program membership with appropriate roles. */ export declare class MITRESourceImplementation extends BaseCVESourceImplementation { /** * Override base class authentication headers for MITRE's custom multi-header system. * * MITRE API requires three specific headers for CVE Program member authentication: * - CVE-API-ORG: Organization short name (from MITRE_API_ORG or CVE_API_ORG env var) * - CVE-API-USER: Username (from MITRE_API_USER or CVE_API_USER env var) * - CVE-API-KEY: API key (from MITRE_API_KEY env var, configured via apiKeyEnvVar) * * This authentication system is only required for search operations and CVE Program * member features. Individual CVE lookups work without authentication. * * @override Base class getAuthHeaders() method * @returns Record of MITRE-specific authentication headers */ protected getAuthHeaders(): Record<string, string>; /** * Check if authenticated search endpoints can be used. * Requires CVE Program membership with proper credentials. */ private hasAuthentication; buildSearchRequest(filters: CVESearchFilters): { url: string; options: RequestOptions; }; buildDetailsRequest(cveId: string): { url: string; options: RequestOptions; }; normalizeSearchResults(data: Record<string, unknown>): CVESearchResult; normalizeCVEData(data: Record<string, unknown>): CVE; private mapMITREState; private normalizeMITREMetrics; private normalizeMITREWeaknesses; private normalizeMITREConfigurations; private normalizeMITREReferences; private formatDate; testConnection(): Promise<boolean>; /** * Validates MITRE-specific configuration */ protected validateSourceSpecificConfig(): SourceValidationResult; /** * MITRE CVE Services API validation - checks both public and authenticated access */ protected validateSourceSpecificApiKey(): SourceValidationResult; /** * MITRE API key environment variable from configuration */ getApiKeyEnvironmentVariable(): string | undefined; /** * Alternative environment variables for MITRE API key */ getAlternativeApiKeyEnvironmentVariables(): string[]; /** * MITRE API key identifier for mapping */ getApiKeyIdentifier(): string; /** * Check if this source matches MITRE-related identifiers */ matchesSourceIdentifier(identifier: string): boolean; /** * MITRE API key validation */ canUseApiKey(apiKey: string): boolean; private getRequestOptions; } //# sourceMappingURL=mitre.d.ts.map