Security & Testing
echelongraph.io
Provides security vulnerability intelligence by searching and retrieving CVE details, severity scores, and internet-exposure data from EchelonGraph's aggregated feeds.
ENDPOINT 1
https://mcp.echelongraph.io/mcp
MCP server metadata
- Name
- echelongraph-mcp
- Version
- 2.6.2
EchelonGraph's public CVE and internet-exposure data, read-only and keyless. Everything these tools return is public: EchelonGraph's CVE Pulse feed, and aggregate, host-redacted totals from its exposure radars. Every result says how it was measured: state, measured_at, method, coverage, freshness and notes, in its structuredContent and again in its text. Its last text block is that structuredContent as JSON, less what an earlier text block already gives verbatim: data, which is a success's first text block; the sentences of the text block just before it (the note, or a failure's message), with which structuredContent's notes end; and method, where that block quotes it. state is measured, not_assessed, failed or invalid_input. not_assessed means the answer holds no dated measurement of what was asked, so no count in it is presented as one. It can still relay a count, as what the source holds on record, undated, and its notes say what each count is: cve_exposure's exposed_hosts when its exposure_state is exposed, and exposure_radar's labelled totals, are such counts. A zero is not a finding of no exposure where the answer holds no measurement for that CVE, for example a CVE outside the KEV-exposure radar's tracked set (exposure_state not_assessed). failed and invalid_input mean nothing was measured: never report them as zero, none found or unexposed. measured_at is when the underlying observation was made, and null when the answer does not say or holds none. freshness gives the producing radar's last_run_at: when it last completed a check whose reads succeeded. That is not the time of every record the radar's numbers count, which cover everything still on record, and it is null when the API does not say. Every figure is as fresh as the schedule that refreshes it. Exposure numbers are aggregate: counts of distinct ip:port services on EchelonGraph's record (a machine answering on two ports counts twice), not machines, and not an internet-wide census. exposure_radar's mcp_servers counts hostnames instead, each by its latest verdict on record. Exposure counts are derived from Shodan data. Shodan data is owned by Shodan, which holds its copyright (© Shodan). exposure_radar's mcp_servers counts use no Shodan data: their hostnames come from EchelonGraph's own Certificate Transparency feed.
Known tools 14
search_cvesSearch/list CVEs from EchelonGraph's CVE feed (NVD + MITRE-CNA pre-NVD + CISA-KEV + EPSS + GitHub GHSA, each polled on a schedule).
Inferred read-onlyget_cveFull record for one CVE: description, severity, cvss_v3_score, cvss_v4_score and cvss_v4_severity (when the record has a CVSS v4 score), echelongraph_score and echelongraph_severity with score_confidence (EchelonGraph's multi-source score) and score_assessed (whether EchelonGraph has scored it), epss_score and epss_percentile, CISA-KEV status (kev_listed, kev_added_date, and kev_ransomware for known ransomware-campaign use), ghsa_id (GitHub GHSA), references, cpe_match (the CPE criteria as one flat list) and cpe_configurations (NVD's configurations as NVD sent them, with each AND/OR operator, negate, versionStartExcluding and matchCriteriaId; absent where EchelonGraph has stored none, which is not a finding that no product is affected), published, modified and updated_at; each field only where the record has it.
Inferred read-onlycve_exposureInternet-exposure footprint for one CVE from EchelonGraph's KEV-exposure radar: how many internet-facing services (distinct ip:port, returned as exposed_hosts; a machine answering on two ports counts twice) the radar has on record running a version its CVE matcher maps to this CVE, with a country/product breakdown and a ransomware flag.
Inferred read-onlyexposure_radarAggregate totals from EchelonGraph's internet-exposure radars, each refreshed on its own schedule: internet-facing services running actively-exploited (CISA-KEV) CVEs, plus the ransomware-linked subset, derived from Shodan data; unauthenticated data stores and observability UIs, found through Shodan (LeakIX when Shodan query credits run low) and then confirmed by EchelonGraph's own identified check (not a pure read: on Redis it names its client, and on ClickHouse its query is recorded in the server's query log); leaked credentials sampled from public GitHub push events; and shadow AI services found through Certificate Transparency logs and Shodan and then checked by EchelonGraph's identified probes.
Inferred read-onlykev_recentThe CVEs CISA has added to its Known Exploited Vulnerabilities (KEV) catalog, newest first, from EchelonGraph's copy of that catalog, which polls CISA's feed every 5 minutes.
Inferred read-onlyepss_historyHow one CVE's EPSS score (FIRST's exploit-prediction probability, 0 to 1, with its percentile) has changed, as EchelonGraph recorded it: points, oldest first, each with at, epss_score and epss_percentile; current, the record's value now (epss_score, epss_percentile, epss_updated_at); series_kind, always change_only; series_starts_at, when EchelonGraph began recording EPSS changes for any CVE; history_rows, points_truncated and latest_point_matches_current.
Inferred read-onlycheck_affectedWhether a product or package at a given version is affected by known CVEs, from the same matcher as echelongraph.
Inferred read-onlycheck_sbomCheck a dependency list against EchelonGraph's advisory corpus, one verdict per component.
Inferred read-onlycve_intelWeakness, public exploit code, affected packages and fixed versions for one CVE, from EchelonGraph's per-CVE enrichment.
Inferred read-onlyvendor_advisories_for_cveThe vendor-published advisories that name one CVE, newest first, at most 20: for each, vendor, vendor_display_name, vendor_advisory_id, title, severity and cvss_v3_score where the vendor gives them.
Inferred read-onlyget_vendor_advisoryOne vendor advisory in full, by vendor and the vendor's advisory ID (the vendor and vendor_advisory_id fields of a row from search_vendor_advisories or vendor_advisories_for_cve): title, description, severity, cvss_v3_score, cve_ids and known_cve_ids (those with a record in EchelonGraph's CVE feed), affected_products, remediation, references, vendor_modified_at, and withdrawn_at and withdrawn_reason when the vendor withdrew it.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.echelongraph-mcp]
url = "https://mcp.echelongraph.io/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"echelongraph-mcp": {
"type": "http",
"url": "https://mcp.echelongraph.io/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: echelongraph-mcp
Remote MCP URL: https://mcp.echelongraph.io/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"echelongraph-mcp": {
"url": "https://mcp.echelongraph.io/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"echelongraph-mcp": {
"type": "http",
"url": "https://mcp.echelongraph.io/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "echelongraph-mcp",
"transport": "streamable-http",
"url": "https://mcp.echelongraph.io/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for echelongraph.io was fetched 2026-10-15T09:38:32.216Z.
echelongraph.io is assessed as Neutral: No suspicious signals found, but no strong positive signal either
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.