Koskamo

Distributed Risk MCP

A read-only MCP server that allows AI assistants to access Distributed Risk's desk notes and search official US records including screening lists, OFAC actions, CISA KEV, SEC filings, and travel advisories.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Distributed Risk MCP logo, by Distributed RiskVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Distributed Risk
MCP endpoint (Streamable HTTP)
https://www.distributedrisk.com/mcp
Vendor documentation

What you can do with it

  • List and search desk notes
  • Search US screening lists
  • List OFAC recent actions
  • Search CISA's KEV catalog

Source and maintenance

Vendor evidenceRegistry 1.5.0

Protocol and capabilities

Server
distributed-risk-desk 1.5.0
MCP protocol
2025-06-18
Tools
14 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only access to the Distributed Risk public desk and the official US record behind it. Desk notes are short reads on official actions (designations, general licenses, advisories, dates that turn), each citing the record and naming the readers it is for: list_notes for what is current (a page at a time, by topic or reader), search_notes to find a name, list, country or date, get_note for one note with its sources. The official record, read from the government sources directly: search_screening_lists (OFAC, BIS and State screening lists), list_ofac_actions, search_kev (CISA Known Exploited Vulnerabilities), search_federal_register, list_travel_advisories, get_reference_rates (New York Fed EFFR, SOFR and related rates) and get_treasury_yields (Treasury par yield curve). Each answer links the source and says when it was read. Cyber: get_cve (one CVE in full: the CVE.org record, CISA's exploitation call and KEV listing, FIRST's EPSS estimate), list_cyber_advisories (CISA alerts, joint advisories, ICS advisories), list_cyber_incident_filings (incidents public companies report to the SEC on Form 8-K) and list_ai_stack_vulnerabilities (new advisories and malicious-package reports against agent frameworks, LLM gateways, MCP, model serving and ML platforms). EPSS is a model estimate and OSV.dev is the open-source advisory record; both are labeled where they appear. A list match is a lead to check against the official entry, not a determination; no match is not a clearance. Decision support from official public sources. Not a legal determination of sanctions, travel, or cyber status. Readers own their compliance obligations.

Tools

14 advertised

list_notes — List desk notes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Published desk notes, newest first: entry number, date, title, status, topic (cyber or sanctions), readers, source class, a one-line summary, and the note's URL. Pages with limit and offset; total is the count that matches, next_offset the offset of the next page. Filter by topic or reader as on the desk page.

list_notes input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "How many notes to return."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only notes dated on or after this day (YYYY-MM-DD)."
    },
    "topic": {
      "enum": [
        "cyber",
        "sanctions"
      ],
      "type": "string",
      "description": "cyber (exploited vulnerabilities, advisories, incident filings, the AI stack) or sanctions (everything else)."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 10000,
      "minimum": 0,
      "description": "How many matching notes to skip, for the next page."
    },
    "reader": {
      "enum": [
        "sanctions-trade-finance-committee",
        "owner-operating-executive",
        "platform-ai-stack-owner",
        "deal-team",
        "credit-committee",
        "cyber-underwriter"
      ],
      "type": "string",
      "description": "Only notes written for this reader: sanctions-trade-finance-committee (Sanctions or trade-finance committee), owner-operating-executive (Owner or operating executive), platform-ai-stack-owner (Platform or AI-stack owner), deal-team (Deal team), credit-committee (Credit committee), cyber-underwriter (Cyber underwriter)."
    }
  },
  "additionalProperties": false
}
list_notes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_notes — Search desk notes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find published notes that mention every word of the query (a name, a list, a country, a program, a date) in the title, summary, sources or body.

search_notes input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Words to find, for example \"Venezuela general license\"."
    }
  },
  "additionalProperties": false
}
search_notes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_note — Read a desk note
Advertised by the server during the last successful anonymous check.
Advertised read-only

One published note in full (Markdown), with its numbered sources and links to the official record.

get_note input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "The note's slug, from list_notes or search_notes."
    }
  },
  "additionalProperties": false
}
get_note annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_screening_lists — Search the US screening lists
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search the Consolidated Screening List (OFAC SDN and other Treasury lists; BIS Entity, Denied Persons, Unverified and Military End User lists; State ITAR-debarred and nonproliferation lists) by name, alias or identifier (IMO, SWIFT/BIC, registration number). Close spellings match. Each result gives the list, programs, addresses, IDs, remarks and the official list link; the answer says when each list last changed.

search_screening_lists input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "Individual",
        "Entity",
        "Vessel",
        "Aircraft"
      ],
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "lists": {
      "type": "array",
      "items": {
        "enum": [
          "SDN",
          "SSI",
          "FSE",
          "NS-MBS",
          "CMIC",
          "PLC",
          "CAP",
          "EL",
          "DPL",
          "UVL",
          "MEU",
          "DTC",
          "ISN"
        ],
        "type": "string"
      },
      "description": "Only these lists, for example [\"SDN\", \"EL\"]."
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "A name (person, company, vessel, aircraft) or an identifier."
    },
    "country": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Only entries with an address in this country (two-letter code)."
    },
    "min_score": {
      "type": "number",
      "default": 0.9,
      "maximum": 1,
      "minimum": 0.88,
      "description": "How close a name must be. 1 is exact; lower allows more spelling variation."
    }
  },
  "additionalProperties": false
}
search_screening_lists annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_ofac_actions — OFAC recent actions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

OFAC's recent actions, newest first: designations and removals, general licenses, FAQs, regulations and settlements, each with its date, categories and the official page. Filter by date or words in the title.

list_ofac_actions input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 30,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words in the title or category, for example \"Iran general license\"."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only actions on or after this day (YYYY-MM-DD). Reaches back about 30 actions."
    }
  },
  "additionalProperties": false
}
list_ofac_actions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_kev — Search CISA's KEV catalog
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

CISA's Known Exploited Vulnerabilities catalog, newest first: CVE, vendor, product, date added, federal due date, known ransomware use, the required action, FIRST's EPSS estimate, and whether it sits in the AI and agent software stack. Look up one CVE, search vendor or product words, list what was added since a date, or only the AI stack. For one CVE in full, use get_cve.

search_kev input schema
{
  "type": "object",
  "properties": {
    "cve": {
      "type": "string",
      "pattern": "^[Cc][Vv][Ee]-\\d{4}-\\d{4,}$",
      "description": "One CVE, for example CVE-2025-62593."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Vendor, product or vulnerability words, for example \"fortinet fortios\"."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only entries added on or after this day (YYYY-MM-DD)."
    },
    "ai_stack": {
      "type": "boolean",
      "description": "true: only AI and agent software (agent frameworks, MCP, model serving, ML platforms, GPU infrastructure, AI assistants)."
    },
    "ransomware": {
      "type": "boolean",
      "description": "true: only entries CISA marks as used in ransomware campaigns."
    }
  },
  "additionalProperties": false
}
search_kev annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_federal_register — Search the Federal Register
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search Federal Register rules, proposed rules, notices and presidential documents: title, type, agencies, publication and effective dates, citation, abstract and the official document link. Narrow by agency (for example foreign-assets-control-office, industry-and-security-bureau, state-department), type or date.

search_federal_register input schema
{
  "type": "object",
  "required": [
    "term"
  ],
  "properties": {
    "term": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Words to find, for example \"entity list additions\"."
    },
    "type": {
      "enum": [
        "RULE",
        "PRORULE",
        "NOTICE",
        "PRESDOCU"
      ],
      "type": "string",
      "description": "RULE, PRORULE (proposed rule), NOTICE or PRESDOCU (presidential document)."
    },
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1
    },
    "order": {
      "enum": [
        "newest",
        "relevance"
      ],
      "type": "string",
      "default": "newest"
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only documents published on or after this day (YYYY-MM-DD)."
    },
    "agency": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "description": "Federal Register agency slug, for example foreign-assets-control-office, treasury-department, industry-and-security-bureau, state-department, homeland-security-department."
    }
  },
  "additionalProperties": false
}
search_federal_register annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_travel_advisories — State travel advisories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

US State Department travel advisories, most recently updated first: country, level (1 to 4), the advisory's summary and the official page. Filter by country, minimum level or update date.

list_travel_advisories input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only advisories updated on or after this day (YYYY-MM-DD)."
    },
    "country": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "A country name, or State's two-letter code."
    },
    "min_level": {
      "type": "integer",
      "maximum": 4,
      "minimum": 1,
      "description": "Only advisories at this level or higher (4 is Do Not Travel)."
    }
  },
  "additionalProperties": false
}
list_travel_advisories annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_reference_rates — New York Fed reference rates
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

The New York Fed's reference rates: EFFR and OBFR (unsecured), SOFR, BGCR and TGCR (secured), and the SOFR averages and index (SOFRAI). With no rate, the latest of each; with a rate, its last N days, with percentiles, volume and, for EFFR, the target range.

get_reference_rates input schema
{
  "type": "object",
  "properties": {
    "last": {
      "type": "integer",
      "default": 5,
      "maximum": 60,
      "minimum": 1,
      "description": "How many days of history, when a rate is given."
    },
    "rate": {
      "enum": [
        "EFFR",
        "OBFR",
        "SOFR",
        "BGCR",
        "TGCR",
        "SOFRAI"
      ],
      "type": "string",
      "description": "One rate, for its history. Omit for the latest of all."
    }
  },
  "additionalProperties": false
}
get_reference_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_treasury_yields — Treasury par yield curve
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Treasury's daily par yield curve, newest first: yields by tenor from 1 month to 30 years. Ask for the last N days, and optionally only some tenors (for example ["2 Yr", "10 Yr"]).

get_treasury_yields input schema
{
  "type": "object",
  "properties": {
    "last": {
      "type": "integer",
      "default": 1,
      "maximum": 30,
      "minimum": 1,
      "description": "How many business days."
    },
    "tenors": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 12
      },
      "maxItems": 16,
      "description": "Tenors as Treasury names them: 1 Mo, 3 Mo, 6 Mo, 1 Yr, 2 Yr, 5 Yr, 10 Yr, 30 Yr…"
    }
  },
  "additionalProperties": false
}
get_treasury_yields annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_cve — One CVE, in full
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Everything the record says about one CVE, in one answer: the CVE.org record (description, severity, weakness, affected products, references), CISA's exploitation call (SSVC) and its KEV listing with the federal due date, FIRST's EPSS estimate, and whether it sits in the AI and agent software stack.

get_cve input schema
{
  "type": "object",
  "required": [
    "cve"
  ],
  "properties": {
    "cve": {
      "type": "string",
      "pattern": "^[Cc][Vv][Ee]-\\d{4}-\\d{4,}$",
      "description": "For example CVE-2025-62593."
    }
  },
  "additionalProperties": false
}
get_cve annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_cyber_advisories — CISA cybersecurity advisories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

CISA's advisories, newest first: alerts, joint cybersecurity advisories (#StopRansomware, state-sponsored activity), ICS and ICS-medical advisories, and analysis reports. Each with its kind, date, summary, the CVEs it names and the official page. Filter by kind, date, words, or the AI stack.

list_cyber_advisories input schema
{
  "type": "object",
  "properties": {
    "kind": {
      "enum": [
        "alert",
        "cybersecurity_advisory",
        "ics_advisory",
        "ics_medical_advisory",
        "analysis_report"
      ],
      "type": "string",
      "description": "One kind. Asking for one kind reads that kind's own feed, which reaches further back."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 40,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words in the title, summary or CVEs, for example \"ransomware\" or \"Siemens\"."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only advisories published on or after this day (YYYY-MM-DD)."
    },
    "ai_stack": {
      "type": "boolean",
      "description": "true: only advisories that name AI or agent software."
    }
  },
  "additionalProperties": false
}
list_cyber_advisories annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_cyber_incident_filings — Cyber incidents reported to the SEC
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Cybersecurity incidents public companies report on Form 8-K, newest first: Item 1.05 (the company judged it material) and, unless excluded, Item 8.01 reports made without that judgment. Each with the company, tickers, filing and event dates, items, state, industry code and the EDGAR filing.

list_cyber_incident_filings input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 40,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Company name, ticker, CIK or state."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Filed on or after this day (YYYY-MM-DD). Default 90 days ago; Item 1.05 began 2023-12-18."
    },
    "until": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Filed on or before this day. Default today."
    },
    "material_only": {
      "type": "boolean",
      "default": false,
      "description": "true: only Item 1.05 filings."
    }
  },
  "additionalProperties": false
}
list_cyber_incident_filings annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_ai_stack_vulnerabilities — AI and agent stack: new advisories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

New advisories against the software AI agents run on, newest and most severe first: agent frameworks (LangChain, LlamaIndex, CrewAI, n8n, Langflow), LLM gateways (LiteLLM), MCP servers and SDKs, model serving (vLLM, Ollama), ML platforms (MLflow, Ray, Jupyter), model libraries, AI apps and coding agents. Malicious-package reports (a compromised or lookalike release) come first. CISA KEV entries in the same stack are included. Each with package, severity, fixed versions, CVEs, EPSS and the advisory.

list_ai_stack_vulnerabilities input schema
{
  "type": "object",
  "properties": {
    "kind": {
      "enum": [
        "malicious_package",
        "vulnerability"
      ],
      "type": "string"
    },
    "layer": {
      "enum": [
        "agent_framework",
        "llm_gateway",
        "mcp",
        "model_serving",
        "ml_platform",
        "model_library",
        "ai_app",
        "coding_agent",
        "gpu_infra",
        "ai_assistant",
        "ai_systems"
      ],
      "type": "string",
      "description": "One layer of the stack."
    },
    "limit": {
      "type": "integer",
      "default": 15,
      "maximum": 50,
      "minimum": 1
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Advisories dated on or after this day (YYYY-MM-DD). Default 14 days ago; reaches back 30 days."
    },
    "package": {
      "type": "string",
      "maxLength": 120,
      "description": "One package name, for example litellm or @modelcontextprotocol/sdk."
    },
    "include_kev": {
      "type": "boolean",
      "default": true,
      "description": "Include CISA KEV entries for AI-stack products added in the window."
    }
  },
  "additionalProperties": false
}
list_ai_stack_vulnerabilities annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
621 ms
95th percentile latency
621 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 621 ms · metadata changed · 14 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http distributed-risk-mcp https://www.distributedrisk.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add distributed-risk-mcp --url https://www.distributedrisk.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable distributed-risk-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "distributed-risk-mcp": {
      "url": "https://www.distributedrisk.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "distributed-risk-mcp": {
      "type": "streamableHttp",
      "url": "https://www.distributedrisk.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start distributed-risk-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "distributed-risk-mcp": {
      "type": "http",
      "url": "https://www.distributedrisk.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http distributed-risk-mcp https://www.distributedrisk.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "distributed-risk-mcp": {
      "url": "https://www.distributedrisk.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "distributed-risk-mcp": {
      "serverUrl": "https://www.distributedrisk.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Distributed Risk MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Distributed Risk MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing