opensanctions-mcp
opensanctions-mcp
MCP server for sanctions screening and PEP checks via the OpenSanctions API.
Lets AI agents (Claude, Cursor, Windsurf, GPT) screen persons and companies against 320+ sanctions and PEP lists from OFAC, EU, UN, UK HMT, and more.
Disclaimer: This tool provides informational data only. It is not legal or compliance advice. Always verify matches with official sources before taking action.
Quick Start
Add to your MCP client config:
{
"mcpServers": {
"opensanctions": {
"command": "npx",
"args": ["-y", "opensanctions-mcp"],
"env": {
"OPENSANCTIONS_API_KEY": "your-key-here"
}
}
}
}Get a free API key at opensanctions.org/api.
Where to add this config
Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows)Cursor: Settings > MCP Servers
Windsurf:
~/.windsurf/config.json
Related MCP server: mcp-sanctions-check
Tools
search_entities
Search the OpenSanctions database by name or keyword.
"Search for entities named Viktor Bout"
"Find companies related to Iran sanctions"match_entity
Screen a person or company against sanctions and PEP lists using structured properties. This is the primary screening tool.
"Screen Viktor Bout, born 1967-01-13, Russian national, against sanctions lists"
"Check if Acme Corp is on any EU sanctions list"get_entity
Fetch complete details for a specific entity, including relationships to other entities (companies, associates, family members).
"Get full details for entity NK-2Ciy8EG7jz1YHMGCxYLb25"list_datasets
List available sanctions and PEP datasets. No API key required.
"What sanctions lists are available?"
"Show me EU-related datasets"get_dataset
Get details about a specific dataset (publisher, entity count, last updated). No API key required.
"Tell me about the OFAC SDN list"investigate_entity
Run a full compliance investigation in one call: match, fetch details, map relationships, and return structured data.
"Investigate Viktor Bout for sanctions exposure"
"Run a compliance check on Acme Corp, jurisdiction Belgium"Configuration
Environment Variable | Required | Default | Description |
| Yes* | — | API key for the hosted OpenSanctions API. Get one at opensanctions.org/api. |
| No |
| API URL. Set to your self-hosted yente instance. |
| No |
| Dataset to screen against. |
| No |
| Max retries for failed API calls. |
| No | — | Set to any value to enable debug logging. |
*Not required for list_datasets, get_dataset, or when using a self-hosted yente instance without auth.
Self-hosted yente
If you run your own yente instance, point the server at it:
{
"mcpServers": {
"opensanctions": {
"command": "npx",
"args": ["-y", "opensanctions-mcp"],
"env": {
"OPENSANCTIONS_API_URL": "http://localhost:8000"
}
}
}
}No API key needed for self-hosted yente.
Development
git clone https://github.com/scka-de/opensanctions-mcp.git
cd opensanctions-mcp
npm install
npm test # run tests (fixtures, no API key needed)
npm run build # compile to dist/
npm run dev # run in dev mode
npm run lint # check code styleLicense
MIT
Available Tools
6 toolsget_datasetA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Dataset name (e.g. "us_ofac_sdn", "eu_fsf") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully adds context about 'No API key required' which is important operational information. However, it doesn't mention potential limitations like rate limits, error conditions, or response format details that would be helpful for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured with two focused sentences. The first sentence clearly states the purpose and scope, while the second provides essential usage guidance. Every word earns its place with zero wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with no output schema, the description provides good context about what information is returned and how to use the tool. The main gap is the lack of information about the response format or structure, which would be helpful since there's no output schema. However, the description covers the essential operational aspects well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'name' well-documented in the schema. The description doesn't add any additional parameter information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get full details about a specific dataset') and lists the exact information returned (description, publisher, entity count, last updated, coverage information). It explicitly distinguishes this tool from its sibling 'list_datasets' by explaining their complementary roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives: 'Use list_datasets first to find dataset names, then this tool for details.' This clearly establishes the workflow relationship between these two sibling tools and provides practical implementation advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entityA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | Yes | OpenSanctions entity ID (e.g. NK-...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool fetches 'complete details' including properties, memberships, and relationships, and specifies that 'Relationships come from the OpenSanctions knowledge graph' with examples like 'ownershipOwner'. However, it lacks details on potential errors (e.g., invalid ID), rate limits, or authentication needs, which are relevant for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by usage guidelines and additional details. Each sentence adds necessary information without redundancy, making it efficient and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (fetching detailed entity data), no annotations, and no output schema, the description does well by covering purpose, usage, and data scope. However, it could improve by mentioning the response format or potential limitations (e.g., data freshness, error cases), leaving minor gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'entityId', so the baseline is 3. The description adds value by specifying the parameter's purpose ('to get the full picture') and providing an example format ('e.g., NK-...'), which enhances understanding beyond the schema's basic type and requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch complete details') and resource ('specific entity by ID'), specifying the scope includes 'all properties, dataset memberships, and relationships to other entities'. It distinguishes from siblings like 'search_entities' (which finds entities) and 'match_entity' (which matches entities), making it specific and non-tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this after finding an entity via search or match to get the full picture'. This provides clear context for usage relative to alternatives like 'search_entities' and 'match_entity', with no misleading or missing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
investigate_entityA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Entity name to investigate | |
| schema | Yes | Entity type | |
| birthDate | No | ISO date (Person only, improves match precision) | |
| nationality | No | ISO country code (Person only) | |
| jurisdiction | No | ISO country code (Company only) | |
| threshold | No | Minimum match score 0.0-1.0 (default: 0.7) | |
| max_matches | No | Max matches to investigate in detail (default: 3) | |
| dataset | No | Specific dataset to screen against |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well at disclosing behavioral traits. It explains the multi-step process, clarifies that it 'returns data only — no risk judgments' (important behavioral constraint), mentions that the AI should interpret results, and notes it requires specific parameters for better precision. It doesn't cover rate limits or authentication needs, but provides substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured with clear sections: purpose statement, steps, output behavior clarification, and parameter guidance. Every sentence earns its place, though the final sentence about additional properties could be slightly more concise. It's front-loaded with the core purpose and effectively uses bullet-like formatting for the steps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, multi-step investigation) and lack of both annotations and output schema, the description does a good job of providing context. It explains the investigation process, clarifies the AI's role in interpretation, and provides parameter guidance. The main gap is the absence of output format details, which would be helpful since there's no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by explaining that 'additional properties like birthDate or nationality' improve match precision and that both name and schema are required, but doesn't provide significant semantic context beyond what the schema already documents. It mentions threshold and max_matches defaults but these are already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run a multi-step compliance investigation on a person or company.' It specifies the exact steps involved (matching, fetching details, relationship traversal) and distinguishes it from siblings by calling it 'the most powerful tool' that combines multiple functions in one call, unlike simpler tools like get_entity or match_entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for comprehensive compliance investigations that require multi-step analysis. It mentions that it 'combines matching, entity details, and relationship traversal in one call,' suggesting it should be used instead of calling multiple simpler tools separately. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datasetsA
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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Filter datasets by name, title, or summary (e.g. "ofac", "eu", "pep") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that no API key is required (useful auth context) and describes the return content (dataset names, titles, summaries, entity counts). However, it doesn't mention behavioral aspects like rate limits, pagination, error conditions, or whether this is a read-only operation (though implied by 'List').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: first sentence states purpose and key constraint, second describes returns, third explains parameter usage, and fourth provides concrete examples. Every sentence adds value, with no redundant information, and it's front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single optional parameter, no output schema, no annotations), the description is largely complete. It covers purpose, usage, returns, and examples. The main gap is lack of output structure details (e.g., format of returned list), but since there's no output schema, this could be more explicitly addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single optional 'query' parameter. The description adds minimal value beyond the schema by mentioning 'filter datasets by name, title, or summary' and providing example queries ('ofac', 'eu', 'pep'), but doesn't explain semantics like partial vs. exact matching. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List') and resource ('available sanctions and PEP datasets in OpenSanctions'), distinguishing it from siblings like get_dataset (retrieve specific dataset) or search_entities (search within datasets). It explicitly mentions what information is returned (dataset names, titles, summaries, entity counts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('No API key required' indicates accessibility, and 'Use the optional query parameter to filter' suggests it's for browsing/filtering datasets). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the siblings (e.g., use get_dataset for detailed metadata of a specific dataset).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_entityA
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".
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes | Entity type to match against | |
| properties | Yes | Entity properties. Required: "name". Optional for Person: "birthDate", "nationality", "idNumber", "gender". Optional for Company: "jurisdiction", "registrationNumber", "incorporationDate". | |
| dataset | No | Screen against a specific dataset. Defaults to all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it explains the scoring system (0.0-1.0 with confidence thresholds), defines PEP, and notes that PEP status appears in 'topics' as 'role.pep.' It could improve by mentioning rate limits or authentication needs, but it covers the core matching algorithm and output interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the purpose stated first. Each sentence adds useful information (e.g., scoring, PEP definition), but it could be slightly more concise by integrating the PEP explanation into the initial sentence or reducing redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (screening with scoring), no annotations, and no output schema, the description is mostly complete. It explains the purpose, usage, scoring, and PEP details. However, it lacks information on error handling or example outputs, which would enhance completeness for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by mentioning that the matching algorithm uses 'name comparison, birth dates, nationalities, and identifiers for scoring,' which provides context for the 'properties' parameter, but it does not significantly elaborate beyond what the schema already describes for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Screen a person or company against sanctions and PEP lists using structured properties.' It specifies the verb ('Screen'), resource ('person or company'), and target ('sanctions and PEP lists'), and distinguishes it from siblings by labeling it as 'the primary screening tool.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: it's for screening against sanctions and PEP lists. However, it does not explicitly state when not to use it or name alternatives (e.g., 'investigate_entity' might be for deeper analysis), though it implies this is the main tool for initial screening.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_entitiesA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Name or keyword to search for | |
| schema | No | Filter by entity type: "Person", "Company", "LegalEntity", "Organization" | |
| dataset | No | Screen against a specific dataset (e.g. "us_ofac_sdn"). Defaults to all datasets. | |
| limit | No | Max results to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits like ordering ('ordered by relevance'), result content ('entity type, datasets, and properties'), and default behavior ('Defaults to all datasets'), but lacks details on error handling, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with core functionality, followed by usage guidance and result details. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is largely complete—covering purpose, usage, and result structure. However, it lacks details on error cases or pagination, which would be helpful for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter semantics beyond the schema, mentioning only that queries can be 'by name or keyword' for the 'query' parameter, without providing additional context for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search', 'returns') and resources ('OpenSanctions database', 'matching entities'), and explicitly distinguishes it from sibling tool 'match_entity' by contrasting exploratory queries with formal sanctions screening.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('for exploratory queries') versus when to use an alternative ('for formal sanctions screening with confidence scores, use match_entity'), including concrete examples of appropriate queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.2- First observed
get_dataset - First observed
get_entity - First observed
investigate_entity - First observed
list_datasets - First observed
match_entity - First observed
search_entities
TDQS
Each tool has a clearly distinct purpose with minimal overlap: list_datasets enumerates datasets, get_dataset retrieves dataset details, search_entities performs keyword searches, match_entity conducts structured screening with scores, get_entity fetches full entity details, and investigate_entity runs comprehensive investigations. The descriptions explicitly differentiate them, such as noting that search_entities is for exploratory queries while match_entity is for formal screening.
All tool names follow a consistent verb_noun pattern using snake_case: list_datasets, get_dataset, search_entities, match_entity, get_entity, and investigate_entity. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 6 tools, the server is well-scoped for its domain of sanctions and PEP data access. Each tool serves a specific function in the workflow, from listing and getting datasets to searching, matching, and investigating entities, without being overly sparse or bloated.
The tool set provides complete coverage for the OpenSanctions domain, including dataset enumeration (list_datasets, get_dataset), entity discovery (search_entities, match_entity), detailed retrieval (get_entity), and advanced analysis (investigate_entity). There are no obvious gaps; agents can perform full workflows from initial screening to in-depth investigation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OpenSanctions MCP — Global sanctions and PEP data (free, no auth required)
Hosted MCP server for real-world data: business registries, sanctions, companies, domains, crypto.
CompanyLens is a remote MCP server giving AI agents instant access to official company registry data across 19 jurisdictions in Europe, the Americas, and Asia-Pacific. Eighteen read-only tools let you search companies and people, look up officers and beneficial owners, map corporate networks through shared directors, screen names against the UK disqualified directors register, find every company at a registered address, and pull filing history — all from a single connector. Visit our website: https://companylens.io
Compliance MCP for AI agents: sanctions & KYT screening on 50+ chains, stablecoin-freeze, oracle.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAML Watcher MCP Server gives AI agents direct, real-time access to AML Watcher's proprietary sanctions, watchlist, and PEP databases. Connect your agentic workflows to 215+ sanctions regimes, 2.6M+ PEP profiles, and coverage across 235+ countries, no complex integrations required.-
- AlicenseNot gradedqualityDmaintenanceMCP server for OFAC SDN sanctions screening. Check names against US Treasury sanctions lists with automatic cache refresh. No API key needed for the check itself.MIT

infinihash-kyt-mcpofficial
AlicenseNot gradedqualityCmaintenanceMCP server for Infinihash KYT providing real-time blockchain transaction monitoring, sanctions screening, and SAR generation. It enables MCP-compatible agents to screen wallets against OFAC SDN and generate compliance cases.1MIT
whetstone-mcpofficial
AlicenseAqualityBmaintenanceAn MCP server for U.S. public-records data, enabling AI agents to search business registrations, screen names against government watchlists, and pull federal awards.446MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/scka-de/opensanctions-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server