Koskamo

OFACScreen MCP

An official MCP server provided by OFACScreen that allows AI agents to screen person and company names, as well as street addresses, against 14 major sanctions and export-control lists including OFAC, EU, UN, and UK lists. It supports fuzzy name matching and exact ID lookups to identify sanctioned entities, vessels, and aircraft.

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.

OFACScreen MCP logo, by OFACScreenVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by OFACScreen
MCP endpoint (Streamable HTTP)
https://www.ofacscreen.com/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 4 of 4 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to ofacscreen.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Screen individual or company names against global sanctions lists
  • Check street addresses for matches against embargoed parties
  • Identify sanctioned vessels and aircraft by name or ID
  • Perform compliance checks for KYC/AML purposes

Source and maintenance

Vendor evidenceRegistry 1.3.0

Protocol and capabilities

Server
ofacscreen 1.3.0
MCP protocol negotiated in check
2025-11-25
Tools
5 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {},
  "resources": {}
}

Server-provided instructions

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

OFACScreen screens a person or company name (screen_entity) or a street address (screen_address) against 14 sanctions and export-control lists. list_sanctions_sources gives each list its code for the lists argument, whether it is core (searched when a screening names no lists) and when it was last updated. A score is name similarity, not a finding that a match is the same party: confirm a date of birth, an address or an ID document before acting on it. Free, no account, 25 screenings a day from each internet address, shared by screen_entity and screen_address; in ChatGPT, each user has their own 25. A screening is not recorded and produces no document: its report_url opens the same search on ofacscreen.com, where a timestamped PDF record of it can be bought. search finds listed entries by name and fetch returns one entry's record, each with a link to cite. To screen a name, use screen_entity.

Tools

5 advertised

screen_entity — Sanctions screening (OFAC SDN + 13 more lists)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Screen a person or company name against 14 sanctions and export-control lists: OFAC SDN, OFAC Non-SDN, EU Financial Sanctions, UN Security Council, UK Sanctions List, Canada SEMA, Swiss SECO, Australia DFAT, BIS Denied Persons, BIS Entity List, BIS Unverified List, BIS Military End-User, ITAR Debarred and State Nonproliferation. Fuzzy name matching, so transliterations and spelling variants still surface. Returns the number of potential matches and the ten highest scoring, each with its score, list, program, aliases and addresses. A score is name similarity, not a finding that a match is the same party: confirm a date of birth, an address or an ID document before acting on it. Free, no account, 25 screenings a day from each internet address, shared by screen_entity and screen_address; in ChatGPT, each user has their own 25. A screening is not recorded and produces no document: its report_url opens the same search on ofacscreen.com, where a timestamped PDF record of it can be bought. The price is in report_price. Calling this tool is free. Searched only when named in lists: UAE Local Terrorist List, UFLPA Entity List, FBI Most Wanted, FinCEN Special Measures, France Registre des gels, Israel NBCTF crypto wallets, Japan MOF, Mexico SAT 69-B, Poland MSWiA.

screen_entity input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 300,
      "description": "Full name of the person or entity to screen, e.g. \"Vladimir Petrov\" or \"Acme Trading LLC\". Up to 300 characters."
    },
    "email": {
      "type": "string",
      "maxLength": 300,
      "description": "The party's email address, checked against the ones the lists record. Optional; up to 5 separated by commas or semicolons."
    },
    "lists": {
      "type": "array",
      "items": {
        "enum": [
          "AE_EOCN",
          "AU_DFAT",
          "BIS_DPL",
          "BIS_EL",
          "BIS_MEU",
          "BIS_UVL",
          "CANADA_SEMA",
          "DHS_UFLPA",
          "EU_FSF",
          "FBI_WANTED",
          "FINCEN_311",
          "FR_GELS",
          "IL_NBCTF",
          "JP_MOF",
          "MX_SAT_69B",
          "OFAC_NONSDN",
          "OFAC_SDN",
          "PL_MSWIA",
          "STATE_DTC",
          "STATE_ISN",
          "SWISS_SECO",
          "UK_SANCTIONS",
          "UN_CONSOLIDATED"
        ],
        "type": "string"
      },
      "description": "List codes to search instead of the default 14. Omit to search the default lists."
    },
    "phone": {
      "type": "string",
      "maxLength": 300,
      "description": "The party's phone number, checked against the ones the lists record. Optional; up to 5 separated by commas or semicolons."
    },
    "website": {
      "type": "string",
      "maxLength": 300,
      "description": "The party's website, checked against the ones the lists record. Optional; up to 5 separated by commas or semicolons."
    }
  }
}
screen_entity output schema
{
  "type": "object",
  "required": [
    "query",
    "match_found",
    "results_count",
    "results",
    "report_url",
    "report_price"
  ],
  "properties": {
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "program": {
            "type": "string"
          },
          "addresses": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "list_name": {
            "type": "string"
          },
          "score_pct": {
            "type": "integer"
          },
          "entry_type": {
            "type": "string"
          },
          "match_level": {
            "type": "string"
          },
          "aliases_total": {
            "type": "integer"
          },
          "matched_alias": {
            "type": [
              "string",
              "null"
            ]
          },
          "addresses_total": {
            "type": "integer"
          },
          "matched_identifier": {
            "type": "boolean"
          }
        }
      }
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "report_url": {
      "type": "string"
    },
    "match_found": {
      "type": "boolean"
    },
    "screened_at": {
      "type": "string"
    },
    "report_price": {
      "type": "string"
    },
    "results_count": {
      "type": "integer"
    },
    "results_shown": {
      "type": "integer"
    },
    "lists_screened": {
      "type": "integer"
    },
    "contact_matches": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "is_audit_record": {
      "type": "boolean"
    },
    "lists_refreshed": {
      "type": [
        "string",
        "null"
      ]
    },
    "results_truncated": {
      "type": "boolean"
    },
    "results_count_is_capped": {
      "type": "boolean"
    }
  }
}
screen_entity annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
screen_address — Sanctions address screening (14 lists)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Screen a street address against the addresses recorded on 14 sanctions and export-control lists: OFAC SDN, OFAC Non-SDN, EU Financial Sanctions, UN Security Council, UK Sanctions List, Canada SEMA, Swiss SECO, Australia DFAT, BIS Denied Persons, BIS Entity List, BIS Unverified List, BIS Military End-User, ITAR Debarred and State Nonproliferation. Returns the number of listed parties whose recorded address resembles it and the ten highest scoring, each with matched_address (the listed address it matched on), its score, list and program, plus jurisdiction_flags: an embargoed or high-risk country or region the address points to. A jurisdiction flag says where, not who: it is not a sanctions match and never counts as one. The lists record addresses for only some of the parties on them, so no match clears no one at the address: screen their names with screen_entity too. The address must name a street or a building, e.g. "Tverskaya 7, Moscow"; a city or a country alone is refused. Free, no account, 25 screenings a day from each internet address, shared by screen_entity and screen_address; in ChatGPT, each user has their own 25. A screening is not recorded and produces no document: its report_url opens the same search on ofacscreen.com, where a timestamped PDF record of it can be bought. The price is in report_price. Calling this tool is free. Searched only when named in lists: UAE Local Terrorist List, UFLPA Entity List, FBI Most Wanted, FinCEN Special Measures, France Registre des gels, Israel NBCTF crypto wallets, Japan MOF, Mexico SAT 69-B, Poland MSWiA.

screen_address input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "lists": {
      "type": "array",
      "items": {
        "enum": [
          "AE_EOCN",
          "AU_DFAT",
          "BIS_DPL",
          "BIS_EL",
          "BIS_MEU",
          "BIS_UVL",
          "CANADA_SEMA",
          "DHS_UFLPA",
          "EU_FSF",
          "FBI_WANTED",
          "FINCEN_311",
          "FR_GELS",
          "IL_NBCTF",
          "JP_MOF",
          "MX_SAT_69B",
          "OFAC_NONSDN",
          "OFAC_SDN",
          "PL_MSWIA",
          "STATE_DTC",
          "STATE_ISN",
          "SWISS_SECO",
          "UK_SANCTIONS",
          "UN_CONSOLIDATED"
        ],
        "type": "string"
      },
      "description": "List codes to search instead of the default 14. Omit to search the default lists."
    },
    "address": {
      "type": "string",
      "maxLength": 300,
      "description": "The street address to screen: the street and number or the building, with the city and country if known, e.g. \"Tverskaya 7, Moscow, Russia\". Up to 300 characters."
    }
  }
}
screen_address output schema
{
  "type": "object",
  "required": [
    "query",
    "match_found",
    "results_count",
    "results",
    "report_url",
    "report_price",
    "mode",
    "jurisdiction_flags"
  ],
  "properties": {
    "mode": {
      "enum": [
        "address"
      ],
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "program": {
            "type": "string"
          },
          "addresses": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "list_name": {
            "type": "string"
          },
          "score_pct": {
            "type": "integer"
          },
          "entry_type": {
            "type": "string"
          },
          "match_level": {
            "type": "string"
          },
          "aliases_total": {
            "type": "integer"
          },
          "matched_alias": {
            "type": [
              "string",
              "null"
            ]
          },
          "addresses_total": {
            "type": "integer"
          },
          "matched_address": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "state": {
                "type": "string"
              },
              "address": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "postal_code": {
                "type": "string"
              }
            }
          },
          "matched_identifier": {
            "type": "boolean"
          }
        }
      }
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "report_url": {
      "type": "string"
    },
    "match_found": {
      "type": "boolean"
    },
    "screened_at": {
      "type": "string"
    },
    "report_price": {
      "type": "string"
    },
    "results_count": {
      "type": "integer"
    },
    "results_shown": {
      "type": "integer"
    },
    "lists_screened": {
      "type": "integer"
    },
    "contact_matches": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "is_audit_record": {
      "type": "boolean"
    },
    "lists_refreshed": {
      "type": [
        "string",
        "null"
      ]
    },
    "place_data_credit": {
      "type": [
        "string",
        "null"
      ]
    },
    "results_truncated": {
      "type": "boolean"
    },
    "jurisdiction_flags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tier": {
            "enum": [
              "embargoed",
              "high_risk"
            ],
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "heading": {
            "type": "string"
          },
          "evidence": {
            "type": "string"
          },
          "authority": {
            "type": "string"
          },
          "source_url": {
            "type": "string"
          },
          "jurisdiction": {
            "type": "string"
          },
          "other_grounds": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      }
    },
    "results_count_is_capped": {
      "type": "boolean"
    }
  }
}
screen_address annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_sanctions_sources — Sanctions lists screened
Advertised by the server during the last successful anonymous check.
Advertised read-only

Every list OFACScreen screens against, each with its code (the value the lists argument of screen_entity and screen_address takes), its name and issuing authority, whether it is core (searched when a screening names no lists), when it was last updated and how many entries it holds. Calling this tool is free.

list_sanctions_sources input schema
{
  "type": "object",
  "additionalProperties": false
}
list_sanctions_sources output schema
{
  "type": "object",
  "required": [
    "lists"
  ],
  "properties": {
    "lists": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "authority",
          "core",
          "last_updated",
          "entry_count"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "core": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "authority": {
            "type": "string"
          },
          "entry_count": {
            "type": "integer"
          },
          "last_updated": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  }
}
list_sanctions_sources annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search — Search sanctions lists
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the 14 sanctions and export-control lists for a person or company name. Returns up to 10 listed entries, closest match first, each with an id for fetch and a link to cite. A result is name similarity, not a finding that it is the same party, and an empty result does not clear the name. Free, no account, 100 searches a day from each internet address.

search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 300,
      "description": "A person or company name, e.g. \"Acme Trading LLC\". Up to 300 characters."
    }
  }
}
search output schema
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      }
    }
  }
}
search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch — Sanctions list entry
Advertised by the server during the last successful anonymous check.
Advertised read-only

One listed entry, by the id a search result gave: its name, list, program, entry type, up to 5 aliases and 3 locations, and when the list was last updated. Free, no account, 200 lookups a day from each internet address.

fetch input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The id of a search result."
    }
  }
}
fetch output schema
{
  "type": "object",
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "program": {
          "type": "string"
        },
        "list_code": {
          "type": "string"
        }
      }
    }
  }
}
fetch annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

Sanctions screening results

Advertised by the server during the last successful anonymous check.

Shows the scored sanctions-list matches for the name or address screened, the list each match sits on, any jurisdiction flag for an address, and a link to the $9.99 PDF record of that screening.

Sanctions screening results URI
ui://widget/screen-results.html

MIME type: text/html;profile=mcp-app

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

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
1391 ms
95th percentile latency
1391 ms

Maintenance history

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

  • · probe · passed · 1391 ms · metadata changed · 5 tool(s), 1 resource(s), 0 resource template(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 ofacscreen-mcp https://www.ofacscreen.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 ofacscreen-mcp --url https://www.ofacscreen.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start ofacscreen-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "ofacscreen-mcp": {
      "type": "http",
      "url": "https://www.ofacscreen.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 ofacscreen-mcp https://www.ofacscreen.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.ofacscreen.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": {
    "ofacscreen-mcp": {
      "serverUrl": "https://www.ofacscreen.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like OFACScreen 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 OFACScreen 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