mcpField
F
Financial Crime Screening

Financial Crime Screening

远程服务
ryanclinton--financial-crime-screening-mcp.apify.actor金融数据032 周前更新

关于 Financial Crime Screening

Financial Crime Screening 是面向合规团队的 MCP 服务,可针对个人和公司查询 13 个实时数据源。它通过八种工具返回 AML 风险等级、评分、证据和 SAR 建议。

主要功能

  1. 01八种 AML 筛查工具
  2. 02接入 13 个实时数据源
  3. 03五维风险评分
  4. 04制裁命中自动升级
  5. 05空壳公司指标检测
  6. 06结构化证据与 SAR 建议

适用场景

  1. 01筛查银行新客户
  2. 02加密货币交易所 AML 核查
  3. 03代理行尽职调查
  4. 04分流交易监控警报

MCP 相关

通过持久化 HTTP 端点向 MCP 客户端提供八种 AML 筛查工具。工具查询实时数据源,并返回风险分类及其证据。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

金融犯罪筛查 MCP 服务

在 ApifyForge 上查看 | 在 Apify Store 上使用


快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf):

{
  "mcpServers": {
    "financial-crime-screening-mcp": {
      "url": "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp"
    }
  }
}

金融犯罪筛查 MCP 服务可将你的 AI Agent 或合规工作流连接到 13 个实时数据源,用于 AML/CFT 尽职调查。提供实体名称后,它会返回结构化的 AML 风险等级——LOW、MEDIUM、HIGH 或 PROHIBITED——以及各维度评分、SAR 申报建议和佐证。专为银行、加密货币交易所、货币服务企业和合规团队打造,可按需提供满足审计要求的风险分类。

该服务运行在 Apify 的 Standby 基础设施上,并通过持久化的 /mcp 端点提供 8 个 MCP 工具。每个工具都会向底层 Actor 集群并行发送请求,查询制裁数据库、刑事监控名单、外国代理人登记册、企业登记册和金融监管机构,然后通过五维 AML 评分引擎生成量化且可解释的风险结果。无需订阅。没有月度最低消费。按工具调用次数付费。

可以访问哪些数据?

数据点来源示例
📋 美国财政部 SDN 名单及受封锁人员OFAC 制裁名单“Meridian Trade LLC”——精确匹配,评分 1.00
🌐 全球制裁名单、PEP 和监控名单OpenSanctions(100 多个名单)欧盟综合名单、联合国安理会名单
🚨 国际通缉人员Interpol 红色通缉令指控:电信欺诈、洗钱
🔴 美国联邦通缉人员FBI 最高通缉名单逃犯状态、最后已知位置
🏛️ 外国代理人登记信息FARA DOJ 登记册外国委托人、原籍国
🗳️ 政治捐款记录FEC 竞选财务数据捐款 485,000 美元——PEP 指标
🏢 企业登记信息(140 多个司法管辖区)OpenCorporates(2 亿多条记录)司法管辖区:VG,状态:已解散
🔑 法律实体识别信息GLEIF LEI 数据库LEI:549300ABCD1234567890
🤝 非营利组织 990 财务数据ProPublica 非营利组织查询工具IRS 撤销状态
⚠️ 消费者金融投诉CFPB 投诉数据库73 项投诉——存在造成伤害的模式
🏦 美国银行机构核验FDIC 银行数据存款保险有效/无效状态
📑 SEC 监管文件SEC EDGAR8-K、SC 13D、执法文件
📈 内部人交易披露SEC Form 4 内部人交易卖出/买入比例——87% 为卖出

为什么使用金融犯罪筛查 MCP 服务?

对单个实体进行人工 AML 筛查,需要打开六个或更多政府门户网站,使用不同拼写变体进行姓名搜索,将结果记录在电子表格中,并定期重复整个流程。经过培训的合规分析师为每个实体进行初始准入筛查需要 45–90 分钟。面对大量客户准入流程或交易监控队列时,这种处理能力无法扩展。

Dow Jones Risk 和 Refinitiv World-Check 等供应商每年收取 15,000–60,000 美元订阅费,以提供类似数据的访问权限。这个 MCP 可通过编程方式访问相同的一手来源——OFAC、Interpol、FBI、FARA、OpenSanctions、SEC、FDIC、CFPB——每次筛查只需几美元,且没有最低消费要求。

  • 定时调度——通过 Apify 内置的调度器,根据监控名单变动或合规日历定期重新筛查
  • API 访问——从 Python、JavaScript、Claude Desktop、Cursor 或任何兼容 MCP 的客户端触发筛查
  • 并行执行——每个工具内的所有 Actor 调用都会并行运行,数秒内即可返回结果,而非数分钟
  • 监控——筛查运行完成或返回意外结果时,通过 Slack 或电子邮件接收提醒
  • 集成——将结果连接到案件管理系统、Google Sheets、HubSpot 或 Webhook

功能

  • 八种专用 MCP 工具,覆盖完整的 AML 筛查工作流:实体筛查、制裁深度核查、刑事观察名单扫描、PEP 分析、空壳公司检测、金融机构验证、关联度评分和完整 AML 分类
  • 13 个实时数据源,实时查询——结果始终反映各数据库当前发布的状态,而非缓存副本
  • 五维 AML 评分引擎,按制裁风险(0-35)、企业透明度(0-25)、政治风险(0-20)、金融监管状况(0-10)和犯罪关联度(0-10)分配分值,总分为 0-100
  • 自动升级为 PROHIBITED——任何置信度 >= 0.95 的直接制裁匹配,无论综合评分如何,都会触发 PROHIBITED 等级,并要求提交 SAR
  • 模糊名称匹配——OFAC 和 OpenSanctions 命中结果分为精确匹配(评分 >= 0.95)和模糊匹配(0.50-0.95),以便建立优先审核队列
  • 空壳公司检测,使用七种文本指标(注册代理人、代名人、无记名股份、信托公司、企业服务、现成公司、注册代理机构)扫描 OpenCorporates 记录
  • 空壳公司避税地司法管辖区检查,针对 12 个已知离岸司法管辖区:巴拿马(PA)、英属维尔京群岛(VG)、开曼群岛(KY)、伯利兹(BZ)、塞舌尔(SC)、萨摩亚(WS)、瓦努阿图(VU)、马绍尔群岛(MH)、百慕大(BM)、泽西岛(JE)、根西岛(GG)、马恩岛(IM)
  • 犯罪关联汇聚评分——每个触发的不利信号类别都会为 0-100 的汇聚评分增加 17 分;四个或更多类别汇聚时,将触发 CRITICAL 分类
  • 通过 FEC 门槛逻辑检测 PEP——竞选捐款超过 $10,000 时触发潜在 PEP 标记;超过 $100,000 时确认为 PEP
  • FARA 外国代理人映射——识别已注册的外国代理人及其外国委托人和原籍国
  • 非营利组织洗钱标记——IRS 撤销非营利组织资格的情况被视为一项独立的 AML 风险信号
  • 支出限额执行——每个工具都会在执行前检查 Actor.charge(),如果达到单次运行的预算上限,则返回结构化错误
  • 无状态 Streamable HTTP 传输——每次向 /mcp 发送 POST 请求都会实例化一个全新的 McpServer,不保留会话状态,从而支持水平扩展

金融犯罪筛查用例

银行客户开户与 KYC

银行和信用合作社的合规团队在开户时使用 comprehensive_entity_screen,同时对新申请人进行 OFAC、OpenSanctions、Interpol 和 FBI 筛查。结构化输出可直接纳入开户案例档案,将每位客户的分析师耗时从 60 分钟缩短至不足 5 分钟,同时生成可审计的记录。

加密货币交易所 AML 与 FinCEN 合规

受 FinCEN 的 MSB 规则和欧盟 MiCA 监管的加密货币交易所,会在启用提现或高额交易前使用 aml_risk_classification。PROHIBITED 等级输出结合 sarRequired 标记和 SAR 叙述指南,可满足《银行保密法》规定的记录保存义务。

代理行尽职调查

寻求建立代理关系的被代理银行,根据 FATF 第 13 项建议,必须进行强化尽职调查。financial_institution_verify 会交叉核查 FDIC 保险状态、企业注册信息和 CFPB 投诉密度,以发现可能冒充受监管银行或存在消费者受害模式的机构。

交易监控与 SAR 调查

合规调查人员可使用 proximity_to_crime_score,根据汇聚等级对交易监控警报进行分流,然后再投入分析师时间开展完整调查。CRITICAL 汇聚评分(四个或更多不利信号类别)会直接升级至 SAR 准备流程;NONE 评分则表示警报已解除,无需人工审核。

高价值账户的 PEP 筛查

需要识别政治公众人物的私人银行和财富管理机构会使用 pep_influence_analysis 检查 FARA 注册记录和 FEC 捐款总额。该工具会返回 PEP 分类及佐证,并建议开展强化尽职调查、核实财富来源并获得高级管理层批准。

空壳公司调查与受益所有权

企业调查人员和 FinCEN 检查人员会使用 corporate_shell_detection,在处理电汇前识别潜在的分层结构。该工具会生成空壳风险评分(0-100)并列出各项指标的调查结果,为根据 CDD Rule 提出受益所有权文件要求提供支持。

如何筛查实体的金融犯罪风险

  1. 连接 MCP 客户端 — 将服务 URL https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp 添加到 Claude Desktop、Cursor、Windsurf 或任何兼容 MCP 的 AI Agent。
  2. 选择合适的工具 — 初次开户时从 comprehensive_entity_screen 开始;如果需要完整记录风险判定及各维度评分,则使用 aml_risk_classification。
  3. 运行筛查 — 传入实体名称和类型(个人/公司)。服务会并行调用最多 13 个 Actor,通常会在 30-90 秒内返回结果。
  4. 查看 AML 风险等级 — 响应包含风险等级(LOW/MEDIUM/HIGH/PROHIBITED)、数值评分、各维度细分、SAR 建议,以及合规档案所需的所有佐证。

输入参数

这是一个 MCP 服务,不包含传统的 Actor 输入字段。每个工具都接受下方列出的参数。

工具参数
工具参数类型必填默认值说明
comprehensive_entity_screenentity_namestring是—要筛查的个人或公司名称
comprehensive_entity_screenentity_typeenum否unknownindividual、company 或 unknown
comprehensive_entity_screencountrystring否—两字母国家代码提示(例如 US、GB)
sanctions_deep_checkentity_namestring是—要与 OFAC 和 OpenSanctions 数据进行比对的名称
sanctions_deep_checkinclude_aliasesboolean否true搜索已知别名和音译形式
criminal_watchlist_scannamestring是—要在 Interpol 和 FBI 数据库中搜索的名称
criminal_watchlist_scannationalitystring否—用于缩小 Interpol 搜索范围的国籍提示
pep_influence_analysisnamestring是—个人或组织名称
pep_influence_analysisinclude_campaign_financeboolean否true包含 FEC 竞选财务记录
corporate_shell_detectioncompany_namestring是—要分析空壳指标的公司名称
corporate_shell_detectionjurisdictionstring否—已知的公司管辖地
financial_institution_verifyinstitution_namestring是—金融机构名称
financial_institution_verifyinclude_complaintsboolean否true包含 CFPB 消费者投诉分析
proximity_to_crime_scoreentity_namestring是—要评估信号汇聚情况的实体
proximity_to_crime_scoreentity_typeenum否unknownindividual、company 或 unknown
aml_risk_classificationentity_namestring是—要进行分类的实体名称
aml_risk_classificationentity_typeenum否unknownindividual、company 或 unknown
aml_risk_classificationcountrystring否—国家代码提示
连接配置示例

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "financial-crime-screening": {
      "url": "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

Cursor / Windsurf / Cline(.cursor/mcp.json 或等效文件):

{
  "mcpServers": {
    "financial-crime-screening": {
      "url": "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

直接调用单个工具的 HTTP 请求:

curl -X POST "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "aml_risk_classification",
      "arguments": {
        "entity_name": "Meridian Trade & Finance LLC",
        "entity_type": "company",
        "country": "PA"
      }
    },
    "id": 1
  }'
使用技巧
  • 根据搜索内容匹配实体类型——对于个人,传入 entity_type: "individual",跳过 LEI、OpenCorporates 和 FDIC 查询,从而降低成本和延迟。
  • 初次入驻时使用 comprehensive_entity_screen,将 aml_risk_classification 留作需要记录各维度评分的最终风险判定。
  • 国家/地区代码提示可缩小结果范围——如果你已知某实体在 BVI 注册,传入 country: "VG" 可提高在各公司注册机构中的匹配精度。
  • 通过 Apify API 批量处理——对于大量筛查队列,可在 Python 或 JavaScript 中以编程方式调用 MCP 工具,使用 Promise.all 并行处理多个实体。
  • 保存完整的 JSON 响应——包含各维度评分的结构化输出旨在作为合规案例档案中的分析记录。

输出示例

以下是针对假设的高风险实体,aml_risk_classification 返回的代表性响应。

{
  "entity": "Meridian Trade & Finance LLC",
  "entityType": "company",
  "amlRiskTier": "PROHIBITED",
  "riskScore": 82,
  "directSanctionsMatch": true,
  "sarRequired": true,
  "dimensions": {
    "sanctionsWatchlist": {
      "score": 35,
      "max": 35,
      "findings": [
        "1 EXACT sanctions match — OFAC/OpenSanctions. PROHIBITED.",
        "3 fuzzy sanctions match(es) — manual review required"
      ]
    },
    "corporateTransparency": {
      "score": 20,
      "max": 25,
      "findings": [
        "Shell company indicators detected: registered agent, nominee",
        "Registered in known shell company jurisdiction: VG",
        "Entity incorporated only 2 months ago — high-risk age for AML"
      ]
    },
    "politicalExposure": {
      "score": 12,
      "max": 20,
      "findings": [
        "Registered foreign agent under FARA — principals: Government of Ruritania"
      ]
    },
    "financialRegulatory": {
      "score": 5,
      "max": 10,
      "findings": [
        "FDIC record shows INACTIVE/CLOSED institution — entity may be impersonating a bank"
      ]
    },
    "proximityCrime": {
      "score": 10,
      "max": 10,
      "findings": [
        "CRITICAL CONVERGENCE: 4 adverse signal categories (sanctions, foreign agent, shell indicators, consumer complaints) — strong proximity to financial crime"
      ]
    }
  },
  "recommendation": "TRANSACTION MUST BE BLOCKED. File Suspicious Activity Report (SAR) within 30 days. Do not tip off the subject. Escalate to BSA/AML officer immediately.",
  "actorsUsed": 13
}

输出字段

字段类型描述
entitystring提交的实体名称
entityTypestringindividual、company 或 unknown
amlRiskTierstringLOW、MEDIUM、HIGH 或 PROHIBITED
riskScorenumber综合 AML 评分,范围为 0-100
directSanctionsMatchboolean若任何制裁命中项的置信度 >= 0.95 或为精确匹配,则为 True
sarRequiredboolean对于 HIGH 和 PROHIBITED 级别为 True
dimensions.sanctionsWatchlist.scorenumber制裁维度的得分(最高 35 分)
dimensions.sanctionsWatchlist.findingsarray各项信号对应的易读发现说明
dimensions.corporateTransparency.scorenumber公司透明度维度的得分(最高 25 分)
dimensions.corporateTransparency.findingsarray空壳公司指标、司法管辖区标记、状态问题
dimensions.politicalExposure.scorenumberPEP 维度的得分(最高 20 分)
dimensions.politicalExposure.findingsarrayFARA 注册信息、FEC 捐款总额
dimensions.financialRegulatory.scorenumber监管状况维度的得分(最高 10 分)
dimensions.financialRegulatory.findingsarrayFDIC 状态、CFPB 投诉密度、内部人士交易比例
dimensions.proximityCrime.scorenumber信号汇聚评分(最高 10 分)
dimensions.proximityCrime.findingsarray汇聚级别和活跃类别列表
recommendationstring与风险级别对应的合规措施(拦截、提交 SAR、加强尽职调查、标准处理)
actorsUsednumber本次运行调用的底层 Actor 数量

对于 sanctions_deep_check,其他字段包括 blocked(boolean)、summary(判定字符串)、exactMatches(array)和 fuzzyMatches(array)。对于 proximity_to_crime_score,其他字段包括 proximityScore(0-100)、convergenceLevel(NONE/LOW/MODERATE/HIGH/CRITICAL)、activeSignals(数量)和 breakdown(按类别划分的数组)。

筛查实体是否涉及金融犯罪需要多少费用?

Financial Crime Screening MCP Server 采用按事件付费的定价方式——每次工具调用收费 $0.045。没有订阅费、月度最低消费,也不收取闲置待机费用。

场景工具调用次数单次调用费用总费用
快速制裁筛查1$0.045$0.045
初始入驻(筛查 + shell + PEP)3$0.045$0.135
完整 AML 分类(13 个 Actor)1$0.045$0.045
每日重新筛查 100 个实体100$0.045$4.50
每月批量筛查 1,000 个实体1,000$0.045$45.00

你可以为每次运行设置最高支出限额,以控制费用。服务会在每次执行工具前检查预算上限;如果达到限额,就会返回结构化错误,而不会继续收费。

Apify 免费套餐包含每月 $5 的平台额度——足以在无需付款的情况下完成约 110 次完整 AML 分类。

相比之下,Dow Jones Risk Center 或 Refinitiv World-Check 订阅同一批主要数据源的费用为每年 $15,000-60,000。使用此 MCP,每月进行 500-2,000 次筛查的大多数合规团队只需花费 $22-$90/月,且无需承诺长期使用。

使用 API 进行金融犯罪筛查

Python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

# Start the MCP server actor in standby mode
actor_client = client.actor("ryanclinton/financial-crime-screening-mcp")

# Call the AML classification tool via HTTP (the actor runs as a persistent server)
import urllib.request
import json

url = "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_APIFY_TOKEN"
}
payload = {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
        "name": "aml_risk_classification",
        "arguments": {
            "entity_name": "Meridian Trade & Finance LLC",
            "entity_type": "company",
            "country": "PA"
        }
    },
    "id": 1
}

req = urllib.request.Request(url, json.dumps(payload).encode(), headers)
with urllib.request.urlopen(req) as response:
    result = json.loads(response.read())

content = json.loads(result["result"]["content"][0]["text"])
print(f"Entity: {content['entity']}")
print(f"AML Risk Tier: {content['amlRiskTier']}")
print(f"Risk Score: {content['riskScore']}/100")
print(f"SAR Required: {content['sarRequired']}")
print(f"Recommendation: {content['recommendation']}")
JavaScript
const MCP_URL = "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp";
const API_TOKEN = "YOUR_API_TOKEN";

async function screenEntity(entityName, entityType = "unknown") {
    const response = await fetch(MCP_URL, {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Authorization": `Bearer ${API_TOKEN}`
        },
        body: JSON.stringify({
            jsonrpc: "2.0",
            method: "tools/call",
            params: {
                name: "aml_risk_classification",
                arguments: { entity_name: entityName, entity_type: entityType }
            },
            id: 1
        })
    });

    const envelope = await response.json();
    const result = JSON.parse(envelope.result.content[0].text);

    console.log(`Entity: ${result.entity}`);
    console.log(`AML Risk Tier: ${result.amlRiskTier} (score: ${result.riskScore}/100)`);
    console.log(`Direct Sanctions Match: ${result.directSanctionsMatch}`);
    console.log(`SAR Required: ${result.sarRequired}`);
    console.log(`Recommendation: ${result.recommendation}`);

    for (const [dim, data] of Object.entries(result.dimensions)) {
        console.log(`  ${dim}: ${data.score}/${data.max} — ${data.findings[0]}`);
    }

    return result;
}

await screenEntity("Meridian Trade & Finance LLC", "company");
cURL
# Screen an entity for AML risk
curl -X POST "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "aml_risk_classification",
      "arguments": {
        "entity_name": "Meridian Trade & Finance LLC",
        "entity_type": "company"
      }
    },
    "id": 1
  }'

# Run a quick sanctions check only
curl -X POST "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "sanctions_deep_check",
      "arguments": {
        "entity_name": "Viktor Petrov",
        "include_aliases": true
      }
    },
    "id": 2
  }'

# List all available tools
curl -X POST "https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 3}'

Financial Crime Screening MCP Server 的工作原理

Actor 集群与并行调度

此 MCP 服务使用 TypeScript 实现,采用 @modelcontextprotocol/sdk 1.17.5 版,并以 Express 5 作为 HTTP 主机。当工具调用到达 /mcp 端点时,getServer() 会在无状态模式下实例化一个全新的 McpServer 和 StreamableHTTPServerTransport(不设置 sessionIdGenerator)。这样无需共享会话状态即可进行水平扩展。

每个工具都会调用 actor-client.ts 中的 runActorsParallel(),该函数通过 Promise.all() 对一组 runActor() 调用进行封装。每个 runActor() 都会调用 ApifyClient.actor(name).call(input, { waitSecs: 120, memory: 256 }),并提取默认数据集。失败的 Actor 调用会返回空数组,而不是抛出异常,因此单个数据源中断不会导致整个筛查流程中止。底层的 13 个 Actor 涵盖:ofac-sanctions-search、opensanctions-search、interpol-red-notices、fbi-wanted-search、fara-foreign-agents、fec-campaign-finance、opencorporates-search、gleif-lei-lookup、nonprofit-explorer、edgar-filing-search、sec-insider-trading、cfpb-consumer-complaints 和 fdic-bank-search。

五维 AML 评分引擎

scoring.ts 实现了 computeAMLRisk(),用于评估五个独立维度,并将分数相加,最高为 100 分。

维度 1 — 制裁与观察名单风险(最高 35 分): 精确制裁匹配(置信度 >= 0.95 或 match === "exact")加 30 分,并将 directSanctionsMatch = true。模糊匹配每项加 5 分,最多额外加 15 分。命中 Interpol 红色通缉令加 15 分。命中 FBI 头号通缉犯名单加 15 分。任何直接匹配都会触发自动覆盖,将风险层级设为 PROHIBITED,无论综合总分是多少。

维度 2 — 企业透明度(最高 25 分): 非个人主体缺少企业记录,加 12 分。OpenCorporates 记录中出现空壳公司文本指标(通过不区分大小写的 JSON.stringify 扫描 7 个词进行检查),加 8 分。在 12 个空壳公司避税天堂司法管辖区之一注册,加 6 分。公司状态为已解散或不活跃,加 5 分。公司成立未满 3 个月,加 5 分;未满 12 个月,加 2 分。已注册公司缺少 LEI,加 4 分。非营利组织的 IRS 免税资格被撤销,加 6 分。

维度 3 — 政治风险暴露(最高 20 分): 注册为 FARA 机构加 12 分;外国委托人记录超过 3 条,再加 4 分。FEC 捐款超过 $100,000,加 10 分;超过 $10,000,加 5 分;存在任何 FEC 记录,加 2 分。totalDonations 数值通过汇总所有 FEC 记录中的 amount、contribution_receipt_amount 或 total 字段计算得出。

维度 4 — 金融监管状况(最高 10 分): 具有执法关注表单类型(8-K、SC 13D、10-K/A)的 SEC 文件超过 5 份,加 3 分。内幕交易投资组合中卖出交易占比超过 80%,作为潜在逃离或抢先交易信号加 4 分。CFPB 投诉超过 50 起,加 3 分;超过 10 起,加 1 分。FDIC 记录显示不活跃或已关闭,作为银行冒充指标加 5 分。

维度 5 — 与犯罪的关联度(最高 10 分): 统计 6 类不利信号(制裁、Interpol、FBI、FARA、超过 20 起 CFPB 投诉、空壳公司指标)中活跃的类别数量,并将信号汇聚数量转换为分数:1 类 = 2 分,2 类 = 4 分,3 类 = 7 分,4 类及以上 = 10 分。此维度体现了多个弱信号同时出现,比任何单个强信号更能表明存在洗钱风险。

风险层级阈值与 SAR 逻辑

tierFromScore() 将综合总分映射到风险层级:>= 71 或 directSanctionsMatch === true → PROHIBITED;>= 46 → HIGH;>= 21 → MEDIUM;否则为 LOW。PROHIBITED 和 HIGH 层级的 sarRequired 均设为 true。每个层级都对应一条特定的合规建议;PROHIBITED 层级返回完整的 BSA 义务文本,其中包括 30 天内提交 SAR 的期限,以及禁止向相关主体泄密的要求。

最佳实践提示

  1. 在入驻时筛查,并在发生事件时重新筛查。 初始筛查可发现已知的不良行为者。安排每 90 天运行一次 comprehensive_entity_screen,并在 OFAC 发布新的 SDN 更新时立即触发 sanctions_deep_check。

  2. 利用实体类型降低延迟和成本。 传入 entity_type: "individual" 可跳过企业注册查询(OpenCorporates、GLEIF、FDIC、Nonprofit Explorer),将行为者数量从 13 个降至 9 个,并将响应时间缩短 20-40%。

  3. 将制裁模糊匹配视为需要审核,而非已排除风险。 sanctions_deep_check 工具会将精确匹配与置信度为 0.50-0.95 的模糊匹配区分开来。模糊匹配需要分析师人工审核——不要自动将其标记为无风险。

  4. 结合 Sanctions Network Analysis MCP 分析所有权关系图。 此服务直接筛查指定实体。若要通过受益所有权链和企业中间方检测制裁风险敞口,请将输出传入 ryanclinton/sanctions-evasion-network-mcp。

  5. 使用 proximity_to_crime_score 进行分流,使用 aml_risk_classification 作出最终判定。 邻近犯罪评分工具会运行 6-7 个行为者,并在 15-30 秒内返回趋同评分。只有未通过分流或需要留存书面决策记录的实体,才需要进行完整分类(13 个行为者,30-90 秒)。

  6. 记录完整的 JSON 响应,而不仅是风险等级。 监管检查人员和审计人员希望查看 AML 决策的佐证。各维度评分和发现数组构成分析记录。

  7. 为批量运行设置支出限额。 以编程方式筛查大批次时,请在 Apify 运行配置中设置 maxTotalChargeUsd。服务会在每次工具调用前检查限额,并在达到限额时正常退出。

与其他 Apify 行为者结合使用

行为者组合使用方式
Sanctions Network Analysis MCP将高风险级别筛查中的实体名称传入网络 MCP,通过所有权链和企业中间方追踪制裁风险敞口
Export Control Screening MCP对需要同时满足 AML 和 EAR/OFAC 贸易合规审查要求的两用技术出口商,将其与金融犯罪筛查结合使用
OFAC Sanctions Search需要未经 AML 评分处理的原始 SDN 数据时,使用自定义参数直接查询 OFAC
OpenSanctions Search直接查询 100 多个整合后的观察名单,用于在调用完整 MCP 前进行预筛选的批量筛查工作流
Interpol Red Notices直接获取 Interpol 红色通缉令详情,用于 AML 领域之外的执法和调查工作流
GLEIF LEI Lookup发起电汇前,核实企业交易对手的 LEI 注册信息和所有权层级
FARA Foreign Agents绘制外国代理人网络和外国委托人关系图,用于地缘政治风险评估

局限性

  • 监管覆盖以美国为中心。 FDIC、CFPB、FEC 和 FARA 均为美国政府来源。对非美国金融机构和外国 PEP 的覆盖可能有限。对于跨境交易,请补充查询所在国家/地区的监管机构。
  • 未与 OFAC API 实时集成。 底层 Actor 会查询已发布的 OFAC 数据。SDN 名单更新与 Actor 反映该变更之间存在延迟。若要在交易层面实现真正实时的 OFAC 合规,请将此工具与专用 OFAC API 订阅服务配合使用。
  • 模糊匹配需要人工审核。 置信度为 0.50-0.95 的匹配结果会返回以供审核,但不会自动升级处理。该工具无法自行判断模糊匹配是否指向同一人,还是仅仅姓名相似。
  • 不能替代法律顾问。 SAR 申报建议是根据 AML 评分结果提供的合规指导文本。实际 SAR 申报义务由适用法律和机构政策决定,而非仅由此工具的输出决定。
  • 企业透明度受 OpenCorporates 数据覆盖范围限制。 OpenCorporates 覆盖 140 个司法管辖区的 2 亿多条记录,但部分司法管辖区的数据有限或有延迟。在 OpenCorporates 未覆盖的司法管辖区注册的实体会触发“未找到企业记录”评分惩罚。
  • 不提供生物识别或文件验证。 此工具仅处理实体名称,不会执行某些监管框架下完整 KYC 所要求的身份证明文件验证、照片匹配或生物识别检查。
  • 并行 Actor 调用的超时时间上限为 120 秒。 如果运行缓慢的底层 Actor(例如高峰时段的 EDGAR)超时,则该维度会返回空结果,而不会导致整个筛查失败。输出会注明 actorsUsed,其值可能低于预期。
  • 不适用于自然人隐私保护严格的司法管辖区。 通过 OpenCorporates 和 GLEIF 查询隐私保护法律严格的司法管辖区(例如某些欧盟成员国)的个人时,可能只能获得有限结果。OFAC 和 OpenSanctions 查询符合适用的制裁筛查豁免规定。

集成

  • Apify API — 以编程方式触发筛查、管理支出限额,并从合规平台获取运行历史记录
  • Webhooks — 每次运行完成后,将筛查结果发送到案件管理系统、合规工作流引擎或告警平台
  • Zapier — 将 PROHIBITED 级别的结果发送到 Slack 频道或 Jira 工单,以便分析师立即审核
  • Make — 构建自动化定期重新筛查工作流,在监控名单更新事件发生时触发
  • Google Sheets — 将筛查结果记录到合规登记表电子表格中,以便留存审计记录
  • LangChain / LlamaIndex — 在 AI Agent 流水线中将此 MCP 用作合规工具,以实现自动化入驻、交易审核或调查工作流

故障排除

  • 已知存在高风险实体,但工具返回的维度数据为空 — 一个或多个底层 Actor 可能超时了。检查响应中的 actorsUsed。如果低于预期,请重试运行。每个 Actor 的 120 秒超时是硬性限制;高峰时段的政府 API 偶尔会响应过慢,超过此限制。

  • 常见姓名出现模糊制裁匹配结果 — 常见姓名(例如“John Smith”)在模糊匹配中会产生许多误报。可通过国家/地区代码提示(country: "US")缩小搜索范围,或使用 sanctions_deep_check 并设置 include_aliases: false 以减少干扰。对于模糊匹配,合规决策始终需要人工审核。

  • 首次调用时出现 spending limit reached 错误 — 你的 Apify 账户为本次运行设置的 maxTotalChargeUsd 过低。请在 Apify 运行设置或程序化调用参数中提高支出限额。每次工具调用费用为 $0.045。

  • 服务对 GET 请求返回 405 — 根据 JSON-RPC 2.0 规范,MCP 端点仅接受 POST 请求。所有工具调用和 tools/list 发现请求都请使用 POST。向 /mcp 发送 GET 请求会有意返回 405 和说明性错误消息。

  • 同一实体的两次运行结果不同 — 所有数据库都会实时查询。OFAC 可能会在不另行通知的情况下更新 SDN 名单。OpenSanctions 会持续导入新的来源数据。结果反映的是各数据库在查询时的状态,因此不同运行之间出现差异是正常的,也是设计如此。

负责任地使用

  • 此服务仅访问公开的政府数据:OFAC、OpenSanctions、Interpol、FBI、FARA、FEC、SEC、CFPB、FDIC、GLEIF 和 OpenCorporates。
  • AML 筛查结果是分析辅助信息,并非法律认定。合规决策必须由具备资质的人员依据适用法律作出。
  • 存储包含个人信息的筛查结果时,请遵守 GDPR、CCPA 及适用的数据保护法律。
  • 请勿将此工具用于与合法合规、尽职调查或风险管理工作流无关的个人筛查。
  • SAR 申报义务和时限由 BSA/FinCEN 法规规定,而非由此工具返回的建议字符串决定。
  • 有关网页抓取合法性的指南,请参阅 Apify 的指南。

常见问题

使用此 MCP 进行金融犯罪筛查,与 World-Check 或 Dow Jones Risk Center 等付费合规平台有何不同? 此 MCP 以极低的成本查询与商业平台汇总的相同主要来源(OFAC SDN、Interpol、FBI、FARA、FEC、OpenSanctions)。商业平台还提供专有编辑内容、增强型数据关联和 SLA 保证。此工具最适合需要以编程方式集成 AI 进行 AML 筛查、又不想签订六位数年费合同的团队。

制裁筛查中的模糊姓名匹配有多准确? OFAC 匹配使用底层 ofac-sanctions-search Actor 内置的模糊匹配,通过 Levenshtein 距离和转写来识别不同拼写形式。置信度 >= 0.95 的命中会被归类为精确匹配。置信度介于 0.50 和 0.95 之间的命中会作为模糊匹配返回,需要人工审核。常见姓名的误报率不可忽视,因此模糊匹配结果始终需要人工审核。

观察名单数据库的更新及时性如何? 每次工具调用时都会实时查询所有数据库,不使用缓存快照。结果反映的是查询时 OFAC、OpenSanctions、Interpol、FBI 及其他来源已发布的状态。新增指定对象后,OFAC 通常会在数小时内更新 SDN 名单。 我可以根据金融犯罪筛查结果提交 SAR 吗? aml_risk_classification 工具会返回各维度评分、证据发现和合规建议,这些构成了 SAR 叙述的分析依据。该工具会明确标示 HIGH 和 PROHIBITED 等级的 sarRequired: true。不过,实际 SAR 必须由符合资质的 BSA/AML 专员根据 FinCEN Form 114 的要求编制并提交。

将此工具用于 AML 合规筛查是否合法? 合法。此工具查询政府公开数据库,旨在支持合规的工作流。根据《银行保密法》,OFAC 筛查是美国金融机构的法定义务。有关数据访问合法性的指南,请参阅 Apify 关于网页抓取合法性的指南。

每小时可以筛查多少个实体? 每次工具调用会并行运行多达 13 个 actor,通常在 30-90 秒内完成。实际使用中,单个客户端每小时可完成 40-80 次完整 AML 分类。如需更高吞吐量,请通过 Apify API 并发运行多个 MCP 调用。

此 MCP 是否支持对多个实体进行批量筛查? MCP 协议面向单实体工具调用。要进行批量筛查,请使用 Apify API 向 MCP 端点分发多个并发 HTTP 请求。建议使用 Python asyncio 循环,或通过 JavaScript Promise.all 遍历实体列表。

底层 actor 不可用或超时时会发生什么? 每个 runActor() 调用都由 try-catch 包裹,发生故障时会返回空数组。actor 超时不会中止整个筛查。响应中包含 actorsUsed,因此你可以查看有多少数据源参与了筛查。如果某个关键维度(例如制裁)因超时而返回空结果,请将结果视为不确定,并重新运行。

我可以定期安排重新筛查以进行持续监控吗? 可以。使用 Apify 的调度程序,按每日、每周或自定义日历触发重新筛查。可结合 Webhook,在筛查完成时自动将结果推送到你的案件管理系统。

空壳公司检测是否涵盖受益所有权? corporate_shell_detection 工具会在公开可用的企业记录中识别空壳公司指标——名义董事、注册代理人、不记名股份和避税天堂司法管辖区。它不会解析完整的受益所有权链。如需结构化所有权映射和 UBO 调查,请搭配使用 ryanclinton/sanctions-evasion-network-mcp。

PROHIBITED 等级在实际操作中意味着什么? 当出现直接制裁匹配(OFAC 或 OpenSanctions 置信度 >= 0.95),或综合风险评分高于 70 时,会触发 PROHIBITED 等级。建议文本与 BSA 义务一致:阻止交易,在 30 天内提交 SAR,不得向相关对象泄露信息,并立即上报 BSA/AML 专员。

接近犯罪评分与整体 AML 风险评分有何不同? 接近度评分(0-100,由 proximity_to_crime_score 工具给出)仅衡量信号汇聚情况——6 类不利类别中有多少类同时处于活跃状态,每类加权 17 分。AML 风险评分(0-100,由 aml_risk_classification 给出)则是涵盖全部 5 个维度的加权综合评分,其中制裁风险权重最高(最高 35 分)。接近度评分是更快速、成本更低的初步筛查信号;AML 风险评分则是完整的、有据可查的评估结论。

帮助我们改进

如果遇到问题,启用 Apify 账户中的运行共享功能,可以帮助我们更快地调试:

  1. 前往 账户设置 > 隐私
  2. 启用 与公开 Actor 创建者共享运行记录

这样一来,出现问题时我们就能查看运行详情,从而更快地修复问题。只有 Actor 开发者可以查看你的数据,不会公开显示。

支持

发现错误或有功能请求?请在此 Actor 页面上的 问题标签页 中提交问题。如需添加自定义数据源、企业集成或白标合规部署,请通过 Apify 平台联系我们。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。