# io.github.scka-de/opensanctions-mcp (npm · opensanctions-mcp)

Sanctions screening and PEP checks via OpenSanctions API for AI agents

- Trust score: 68/100 (medium)
- Change this week: +44
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `opensanctions-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp.md), [page](https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp)

## Channel facts

- Registry: `npm`
- Package: `opensanctions-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 124 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 954 tokens (~159/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add scka-de-opensanctions-mcp -- npx -y opensanctions-mcp
```

### Codex

```bash
codex mcp add scka-de-opensanctions-mcp -- npx -y opensanctions-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "scka-de-opensanctions-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "opensanctions-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add scka-de-opensanctions-mcp --command npx --arg -y --arg opensanctions-mcp
```

### Hermes

```yaml
mcp_servers:
  scka-de-opensanctions-mcp:
    command: "npx"
    args: ["-y", "opensanctions-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "scka-de-opensanctions-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "opensanctions-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 67, +48)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 19, +14)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 5, −39)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 44, +20)

- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: unverified
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100

### 2026-07-27 (score 24)

First indexed and scored.

## MCP tools (6)

### `search_entities` (~161 tokens)

Search the OpenSanctions database by name or keyword. Returns matching entities ordered by relevance.

Use this for exploratory queries: "find entities named Goldman", "search for companies in Russia".
For formal sanctions screening with confidence scores, use match_entity instead.

Results include entity type, datasets (which sanctions lists), and properties. For numeric match scores, use match_entity.

Input parameters:

- `dataset` (string): Screen against a specific dataset (e.g. "us_ofac_sdn"). Defaults to all datasets.
- `limit` (number): Max results to return (default: 20)
- `query` (string, required): Name or keyword to search for
- `schema` (string): Filter by entity type: "Person", "Company", "LegalEntity", "Organization"

### `match_entity` (~227 tokens)

Screen a person or company against sanctions and PEP (Politically Exposed Person) lists using structured properties.

This is the primary screening tool. Provide a schema type and properties for precise matching.
The matching algorithm uses name comparison, birth dates, nationalities, and identifiers for scoring.

Scores: 0.0-1.0. Above 0.9 = very high confidence match. 0.7-0.9 = likely match, investigate further. Below 0.7 = possible but uncertain.

PEP = Politically Exposed Person (senior government officials, their families, close associates). PEP status appears in the "topics" property as "role.pep".

Input parameters:

- `dataset` (string): Screen against a specific dataset. Defaults to all.
- `properties` (object, required): Entity properties. Required: "name". Optional for Person: "birthDate", "nationality", "idNumber", "gender". Optional for Company: "jurisdiction", "registrationNumber", "incorporationDate".
- `schema` (string, required): Entity type to match against

### `get_entity` (~109 tokens)

Fetch complete details for a specific entity by ID, including all properties, dataset memberships, and relationships to other entities.

Use this after finding an entity via search or match to get the full picture: aliases, addresses, birth dates, related companies, family members, associates.

Relationships come from the OpenSanctions knowledge graph. Types include: ownershipOwner, familyRelative, associate, directorshipDirector, and more.

Input parameters:

- `entityId` (string, required): OpenSanctions entity ID (e.g. NK-...)

### `list_datasets` (~127 tokens)

List available sanctions and PEP datasets in OpenSanctions. No API key required.

Returns dataset names, titles, summaries, and entity counts. Use the optional query parameter to filter.
Examples of datasets: "us_ofac_sdn" (US OFAC), "eu_fsf" (EU Financial Sanctions), "un_sc_sanctions" (UN Security Council), "gb_hmt_sanctions" (UK HMT).

Input parameters:

- `query` (string): Filter datasets by name, title, or summary (e.g. "ofac", "eu", "pep")

### `get_dataset` (~75 tokens)

Get full details about a specific dataset: description, publisher, entity count, last updated, and coverage information. No API key required.

Use list_datasets first to find dataset names, then this tool for details.

Input parameters:

- `name` (string, required): Dataset name (e.g. "us_ofac_sdn", "eu_fsf")

### `investigate_entity` (~255 tokens)

Run a multi-step compliance investigation on a person or company. This is the most powerful tool — it combines matching, entity details, and relationship traversal in one call.

Steps: (1) Match the name against sanctions/PEP lists, (2) Fetch full details and relationships for top matches, (3) Return structured data with scores, datasets, and connected entities.

Returns data only — no risk judgments. You (the AI) should interpret the scores, dataset memberships, and relationships to provide context to the user.

Requires both name and schema (Person/Company). Provide additional properties like birthDate or nationality for better match precision.

Input parameters:

- `birthDate` (string): ISO date (Person only, improves match precision)
- `dataset` (string): Specific dataset to screen against
- `jurisdiction` (string): ISO country code (Company only)
- `max_matches` (number): Max matches to investigate in detail (default: 3)
- `name` (string, required): Entity name to investigate
- `nationality` (string): ISO country code (Person only)
- `schema` (string, required): Entity type
- `threshold` (number): Minimum match score 0.0-1.0 (default: 0.7)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 19
- 2026-07-31: 5
- 2026-07-30: 44
- 2026-07-28: 44
- 2026-07-27: 24

## Links

- npm package: https://www.npmjs.com/package/opensanctions-mcp
- Socket report: https://socket.dev/npm/package/opensanctions-mcp
- Repository: https://github.com/scka-de/opensanctions-mcp
- Changelog RSS feed: https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/scka-de-opensanctions-mcp/opensanctions-mcp
