mcpField
F
Financial Crime Screening

Financial Crime Screening

リモート
ryanclinton--financial-crime-screening-mcp.apify.actor金融データ032 週間前に更新

Financial Crime Screening について

Financial Crime Screeningは、コンプライアンスチーム向けに個人や企業を13のライブデータソースで調査するMCPサーバーです。8種類のツールでAMLリスク区分、スコア、根拠、SARの推奨を返します。

主な機能

  1. 01AMLスクリーニング用の8ツール
  2. 0213のライブデータソース
  3. 035次元のリスクスコアリング
  4. 04制裁該当時の自動エスカレーション
  5. 05シェル企業の兆候検出
  6. 06根拠とSAR推奨の構造化出力

活用シーン

  1. 01銀行の新規顧客審査
  2. 02暗号資産取引所のAML確認
  3. 03コルレス銀行のデューデリジェンス
  4. 04取引監視アラートのトリアージ

MCP 対応

永続HTTPエンドポイントを通じて、MCPクライアントに8種類の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"
    }
  }
}

AML/CFT デューデリジェンス向けの13のライブデータソースに、AI エージェントやコンプライアンスワークフローを接続する金融犯罪スクリーニング MCP サーバーです。エンティティ名を入力すると、次元別スコア、SAR 届出の推奨事項、裏付けとなる証拠とともに、構造化された AML リスク階層(LOW、MEDIUM、HIGH、PROHIBITED)を返します。監査に対応したリスク分類を必要に応じて利用する銀行、暗号資産取引所、送金事業者、コンプライアンスチーム向けに特化して構築されています。

このサーバーは Apify の Standby インフラストラクチャ上で稼働し、永続的な /mcp エンドポイントを通じて8つの MCP ツールを公開します。各ツールは、制裁データベース、犯罪者ウォッチリスト、外国代理人登録簿、法人登記簿、金融規制当局など、基盤となるアクター群に並列リクエストを送信し、5次元の AML スコアリングエンジンを適用して、定量的で説明可能なリスク結果を生成します。サブスクリプションは不要です。月額最低料金もありません。ツール呼び出しごとに料金が発生します。

どのようなデータにアクセスできますか?

データ項目ソース例
📋 米国財務省の SDN および資産凍結対象者OFAC 制裁リスト「Meridian Trade LLC」—完全一致、スコア1.00
🌐 世界の制裁対象者、PEP、ウォッチリストOpenSanctions(100以上のリスト)EU 統合リスト、国連安全保障理事会
🚨 国際指名手配者Interpol Red Notices容疑:電信詐欺、マネーロンダリング
🔴 米国連邦政府の指名手配者FBI Most Wanted逃亡者の状態、最後に確認された場所
🏛️ 外国代理人登録FARA DOJ Registry外国の依頼主、出身国
🗳️ 政治献金記録FEC Campaign Finance献金額485,000ドル — PEP 指標
🏢 法人登記簿(140以上の管轄区域)OpenCorporates(2億件以上の記録)管轄区域:VG、状態:解散
🔑 法人識別情報GLEIF LEI DatabaseLEI:549300ABCD1234567890
🤝 非営利団体の990財務データProPublica Nonprofit ExplorerIRS による資格取消の状態
⚠️ 消費者金融関連の苦情CFPB Complaint Database苦情73件 — 被害のパターン
🏦 米国銀行の金融機関確認FDIC Bank Data保険の有効/無効状態
📑 SEC 規制関連の提出書類SEC EDGAR8-K、SC 13D、執行関連の提出書類
📈 内部者取引の開示情報SEC Form 4 Insider Trading売却/購入比率 — 売却87%

Financial Crime Screening MCP Server を使う理由

単一のエンティティを手作業で AML スクリーニングするには、6つ以上の政府ポータルを開き、表記ゆれを含む名前検索を行い、結果をスプレッドシートに記録して、定期的に同じ作業を繰り返す必要があります。訓練を受けたコンプライアンスアナリストでも、初回オンボーディングには1エンティティあたり45~90分かかります。顧客の登録や取引監視の処理件数が多い場合、この処理能力では対応できません。

Dow Jones Risk や Refinitiv World-Check などのベンダーは、同様のデータへのサブスクリプションアクセスに年間15,000~60,000ドルを請求します。この MCP を使えば、OFAC、Interpol、FBI、FARA、OpenSanctions、SEC、FDIC、CFPB などの同じ一次情報源に、最低利用契約なしで、スクリーニング1回あたり数ドルでプログラムからアクセスできます。

  • スケジュール設定 — Apify に組み込まれたスケジューラーを使い、ウォッチリストの変更時やコンプライアンスカレンダーに沿って定期的な再スクリーニングを実行します
  • API アクセス — Python、JavaScript、Claude Desktop、Cursor、または MCP 互換のあらゆるクライアントからスクリーニングを実行します
  • 並列実行 — 各ツール内のすべてのアクター呼び出しを並列実行するため、結果を数分ではなく数秒で返します
  • モニタリング — スクリーニングの完了時や、予期しない結果が返されたときに、Slack またはメールでアラートを受け取ります
  • 連携 — 結果をケース管理システム、Google Sheets、HubSpot、または Webhook に接続します

機能

  • 用途を絞った8つの MCP ツールで、AML スクリーニングの全ワークフローをカバーします。エンティティ審査、制裁対象の詳細確認、犯罪ウォッチリストのスキャン、PEP 分析、シェル企業の検出、金融機関の検証、近接性スコアリング、AML 総合分類に対応します
  • 13のライブデータソースにリアルタイムで照会します。結果にはキャッシュされた複製ではなく、各データベースの最新の公開状況が常に反映されます
  • 5次元の 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 の記録を対象に、7つのテキスト指標(登録代理人、名義人、無記名株式、信託会社、法人サービス、休眠会社、会社設立代理人)を用いてシェル企業を検出します
  • シェル企業の租税回避地管轄区域チェックでは、既知の12のオフショア管轄区域を確認します。Panama (PA)、British Virgin Islands (VG)、Cayman Islands (KY)、Belize (BZ)、Seychelles (SC)、Samoa (WS)、Vanuatu (VU)、Marshall Islands (MH)、Bermuda (BM)、Jersey (JE)、Guernsey (GG)、Isle of Man (IM)
  • 犯罪との近接性に関する集約スコアリングでは、有効になった不審シグナルのカテゴリごとに、0~100点の集約スコアに17点を加算します。4つ以上のカテゴリが集約されると、CRITICAL に分類されます
  • FEC のしきい値ロジックによる PEP 検出では、選挙運動への寄付が $10,000 を超えると潜在的な PEP フラグが立ち、$100,000 を超えると確定 PEP に分類されます
  • FARA による外国代理人のマッピングでは、登録済みの外国代理人と、その外国人依頼人および出身国を特定します
  • 非営利団体を利用したマネーロンダリングのフラグでは、IRS による非営利団体ステータスの取り消しを、独立した AML の危険信号として扱います
  • 利用上限の適用により、すべてのツールは実行前に Actor.charge() を確認し、1回の実行あたりの予算上限に達している場合は、構造化されたエラーを返します
  • ステートレスな Streamable HTTP トランスポートでは、/mcp への各 POST でセッション状態を持たない新しい McpServer をインスタンス化し、水平スケーリングを可能にします

金融犯罪スクリーニングのユースケース

銀行の顧客受け入れと KYC

銀行や信用組合のコンプライアンスチームは、口座開設時に comprehensive_entity_screen を使用して、新規申込者を OFAC、OpenSanctions、Interpol、FBI に同時に照会します。構造化された出力はオンボーディングのケースファイルに直接取り込まれ、監査可能な記録を作成しながら、顧客1人あたりのアナリスト作業時間を60分から5分未満に短縮します。

暗号資産取引所の AML と FinCEN コンプライアンス

FinCEN の MSB 規則および EU の MiCA 規制の対象となる暗号資産取引所は、出金や高額取引を有効にする前に aml_risk_classification を使用します。PROHIBITED ティアの出力に sarRequired フラグと SAR の記述ガイダンスを組み合わせることで、Bank Secrecy Act に基づく記録保持義務を満たせます。

コルレス銀行業務のデューデリジェンス

コルレス関係の構築を目指す回答銀行は、FATF 勧告13に基づく強化されたデューデリジェンスが必要です。financial_institution_verify は、FDIC の預金保険加入状況、法人登録、CFPB への苦情の密度を相互確認し、規制対象の銀行になりすましている可能性や、消費者被害の傾向がある金融機関を明らかにします。

取引モニタリングと SAR 調査

proximity_to_crime_score を使用するコンプライアンス調査担当者は、完全な調査にアナリストの時間を割く前に、集約レベルに基づいて取引モニタリングのアラートを優先順位付けできます。CRITICAL の集約スコア(不審シグナルが4カテゴリ以上)は SAR の作成に直接移行し、NONE スコアの場合は手動審査なしでアラートをクリアします。

高額口座のPEPスクリーニング

政治的に重要な人物を特定する必要があるプライベートバンクやウェルスマネージャーは、pep_influence_analysisを使用して、FARA登録とFECへの献金総額を確認します。このツールは、根拠となる証拠と、強化されたデューデリジェンス、資産形成源の確認、上級管理職の承認に関する推奨事項を添えて、PEP分類を返します。

ペーパーカンパニーの調査と実質的支配者の特定

企業調査担当者やFinCENの審査官は、電信送金の処理前に潜在的な多層化構造を特定するため、corporate_shell_detectionを使用します。このツールは、項目別の指標判定を含むペーパーカンパニーリスクスコア(0~100)を生成し、CDD規則に基づく実質的支配者関連書類の請求を支援します。

金融犯罪について事業体をスクリーニングする方法

  1. MCP クライアントを接続する — サーバー URL https://ryanclinton--financial-crime-screening-mcp.apify.actor/mcpをClaude Desktop、Cursor、Windsurf、またはMCP対応のAIエージェントに追加します。
  2. 適切なツールを選ぶ — 初期オンボーディングにはcomprehensive_entity_screenから始めます。次元別スコアを含む、文書化されたリスク判定が必要な場合はaml_risk_classificationを使用します。
  3. スクリーニングを実行する — 事業体名と種類(個人/企業)を渡します。サーバーは最大13件のアクター呼び出しを並行して実行し、通常30~90秒以内に結果を返します。
  4. AMLリスクティアを確認する — レスポンスには、ティア(LOW/MEDIUM/HIGH/PROHIBITED)、数値スコア、次元別の内訳、SARの推奨事項、およびコンプライアンスファイル用のすべての裏付け証拠が含まれます。

入力パラメーター

これはMCPサーバーであり、従来のアクター入力フィールドはありません。各ツールは、以下に定義されている独自のパラメーターを受け付けます。

ツールのパラメーター
ツールパラメーター型必須デフォルト説明
comprehensive_entity_screenentity_namestringはい—スクリーニング対象の個人または企業の名前
comprehensive_entity_screenentity_typeenumいいえunknownindividual、company、またはunknown
comprehensive_entity_screencountrystringいいえ—2文字の国コードのヒント(例: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いいえtrueFECの選挙資金記録を含める
corporate_shell_detectioncompany_namestringはい—ペーパーカンパニーの指標を分析する企業名
corporate_shell_detectionjurisdictionstringいいえ—企業の既知の管轄地
financial_institution_verifyinstitution_namestringはい—金融機関の名前
financial_institution_verifyinclude_complaintsbooleanいいえtrueCFPBの消費者苦情分析を含める
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
riskScorenumberAML 総合スコア(0~100)
directSanctionsMatchboolean信頼度が 0.95 以上、または完全一致となる制裁リストのヒットがある場合は true
sarRequiredbooleanHIGH および 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 は従量課金制で、ツール呼び出し 1 回につき $0.045かかります。サブスクリプションや月額最低料金はなく、待機時間にも料金は発生しません。

シナリオツール呼び出し数1 回あたりの料金合計費用
制裁対象の簡易チェック1$0.045$0.045
初回オンボーディング(スクリーニング+シェル+PEP)3$0.045$0.135
AML の完全分類(13 アクター)1$0.045$0.045
100 件のエンティティを毎日再スクリーニング100$0.045$4.50
1,000 件のエンティティを月次で一括処理1,000$0.045$45.00

費用を管理するため、実行ごとに最大支出額を設定できます。サーバーは各ツールの実行前に予算上限を確認し、上限に達した場合は課金を続けるのではなく、構造化されたエラーを返します。

Apify の無料枠には毎月 $5 分のプラットフォームクレジットが含まれており、支払いなしで約 110 回の AML 完全分類を実行できます。

同じ一次データソースへのサブスクリプションアクセスに年間 $15,000~60,000 かかる Dow Jones Risk Center や Refinitiv World-Check と比べてください。この 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 の仕組み

アクターフリートと並列ディスパッチ

この MCP サーバーは、@modelcontextprotocol/sdk バージョン 1.17.5 と、HTTP ホストとしての Express 5 を使用して TypeScript で実装されています。/mcp エンドポイントにツール呼び出しが到着すると、getServer() はステートレスモード(sessionIdGenerator なし)で新しい McpServer と StreamableHTTPServerTransport をインスタンス化します。これにより、共有セッション状態を持たずに水平スケーリングできます。

各ツールは actor-client.ts の runActorsParallel() を呼び出します。この関数は、runActor() 呼び出しの配列に対して Promise.all() を実行します。各 runActor() は ApifyClient.actor(name).call(input, { waitSecs: 120, memory: 256 }) を呼び出し、デフォルトのデータセットを抽出します。アクターの呼び出しが失敗した場合、例外をスローするのではなく空の配列を返すため、単一のデータソースに障害が発生してもスクリーニング全体は中止されません。基盤となる 13 個のアクターは、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 を対象としています。

5 次元 AML スコアリングエンジン

scoring.ts は computeAMLRisk() を実装し、5 つの独立した次元をスコア化して合計し、最大 100 点に制限します。

次元 1 — 制裁・監視リストへの該当(最大 35 点): 制裁対象との完全一致(信頼度 >= 0.95 または match === "exact")は 30 点を加算し、directSanctionsMatch = true に設定します。あいまい一致は最大 15 点を追加します(一致 1 件につき 5 点)。Interpol の赤手配書への該当は 15 点を加算します。FBI 最重要指名手配リストへの該当は 15 点を加算します。直接一致がある場合、合計スコアにかかわらず、自動的に PROHIBITED ティアに設定されます。

次元 2 — 企業の透明性(最大 25 点): 個人以外で企業記録がない場合は 12 点です。OpenCorporates の記録におけるペーパーカンパニーを示すテキスト上の指標(7 つの用語を対象に、大文字・小文字を区別しない JSON.stringify スキャンで確認)は 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、CFPB への苦情が 20 件超、ペーパーカンパニーの指標)のうち、該当する数を数え、その合計に応じてスコアに変換します。1 カテゴリー = 2 点、2 = 4 点、3 = 7 点、4 以上 = 10 点です。この次元では、複数の弱いシグナルが同時に見られることは、単一の強いシグナルよりも強力な AML 指標になるという点を捉えます。

リスクティアのしきい値と SAR ロジック

tierFromScore() は合計スコアをティアに割り当てます。>= 71 または directSanctionsMatch === true の場合は PROHIBITED、>= 46 の場合は HIGH、>= 21 の場合は MEDIUM、それ以外は LOW です。PROHIBITED と HIGH の両方のティアでは、sarRequired は true に設定されます。各ティアには個別のコンプライアンス推奨文が対応し、PROHIBITED の場合は、SAR 提出期限の 30 日間および対象者への情報漏えい禁止を含む BSA 上の義務全体が返されます。

最良の結果を得るためのヒント

  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 を使用します。 proximity ツールは6〜7個のアクターを実行し、15〜30秒で収束スコアを返します。完全な分類(13個のアクター、30〜90秒)は、トリアージで基準を満たさなかったエンティティ、または記録に残す判断が必要なエンティティに限って実施してください。

  6. 階層だけでなく、JSON レスポンス全体を記録します。 規制当局の検査官や監査人は、AML に関する判断を裏付ける証拠の提示を求めます。各次元のスコアと findings 配列が、分析記録を構成します。

  7. 一括実行には支出上限を設定します。 プログラムから大規模なバッチをスクリーニングする場合は、Apify の実行設定で maxTotalChargeUsd を設定してください。サーバーは各ツール呼び出しの前に上限を確認し、上限に達すると正常に終了します。

他の Apify アクターとの組み合わせ

アクター組み合わせ方法
Sanctions Network Analysis MCPHIGH 階層のスクリーニング結果からエンティティ名をネットワーク MCP に渡し、所有関係の連鎖や企業仲介者を通じた制裁対象との関係をたどります
Export Control Screening MCPAML と EAR/OFAC の貿易コンプライアンスの両方で承認が必要な、デュアルユース技術の輸出業者に対し、金融犯罪スクリーニングと組み合わせます
OFAC Sanctions SearchAML のスコアリング層を介さず、生の SDN データが必要な場合に、カスタムパラメーターを指定して OFAC に直接クエリを実行します
OpenSanctions Search100以上の統合ウォッチリストに直接クエリを実行し、完全な MCP を呼び出す前に事前フィルターを行う一括スクリーニングパイプラインを構築します
Interpol Red NoticesAML 以外の法執行や調査のワークフローで、Interpol の赤手配書の詳細を直接取得します
GLEIF LEI Lookup電信送金を開始する前に、企業取引相手の LEI 登録と所有関係の階層を確認します
FARA Foreign Agents地政学的リスク評価のため、外国エージェントのネットワークと外国の依頼主との関係を把握します

制限事項

  • 米国中心の規制対象範囲です。 FDIC、CFPB、FEC、FARA は米国政府の情報源です。米国外の金融機関や外国の PEP は、対象範囲が限られる場合があります。国境を越える取引では、各国固有の規制当局による確認を追加してください。
  • OFAC API とのリアルタイム連携はありません。 基盤となるアクターは、公開されている OFAC データを照会します。SDN リストの更新から、アクターに変更が反映されるまでには遅延があります。取引単位で真のリアルタイム OFAC コンプライアンスを実現するには、このツールを専用の OFAC API サブスクリプションと併用してください。
  • ファジーマッチングには人による確認が必要です。 信頼度が 0.50〜0.95 の一致は確認用に返されますが、自動的にエスカレーションされることはありません。ファジーマッチが同一人物を示すのか、偶然の名前の類似なのかを、このツールだけで判断することはできません。
  • 法律専門家の助言に代わるものではありません。 SAR の提出推奨は、AML スコアリング結果に基づくコンプライアンスガイダンスの文字列です。実際の SAR 提出義務は、適用法および組織のポリシーによって決まり、このツールの出力だけで決まるものではありません。
  • 企業の透明性に関する情報は OpenCorporates の対象範囲に限られます。 OpenCorporates は 140 の管轄区域にわたる 2 億件以上の記録を対象としていますが、データが限られている、または反映が遅れている管轄区域もあります。OpenCorporates の対象外の管轄区域で登録された事業体には、「企業記録が見つからない」というスコアリング上のペナルティが適用されます。
  • 生体認証や書類確認には対応していません。 このツールが扱うのは事業体名のみです。一部の規制フレームワークで完全な KYC に必要とされる身分証明書の確認、写真の照合、生体認証チェックは行いません。
  • 並列アクター呼び出しのタイムアウトは 120 秒に制限されています。 基盤となるアクターの応答が遅い場合(例:ピーク時の EDGAR)、タイムアウトしたディメンションはスクリーニング全体が失敗するのではなく、空の結果を返します。出力には actorsUsed が記載されますが、その値は想定より少ない場合があります。
  • 自然人のプライバシー保護が厳しい管轄区域向けには設計されていません。 自然人のデータプライバシー法が厳しい管轄区域(例:一部の EU 加盟国)の個人を OpenCorporates および GLEIF で照会すると、結果が限られる場合があります。OFAC および OpenSanctions への照会は、適用される制裁スクリーニングの免除規定に準拠しています。

連携

  • Apify API — コンプライアンスプラットフォームからプログラムでスクリーニングを実行し、支出上限を管理して、実行履歴を取得します
  • Webhooks — 各実行の完了時に、スクリーニング結果をケース管理システム、コンプライアンスワークフローエンジン、またはアラートプラットフォームに送信します
  • Zapier — PROHIBITED ティアの結果を Slack チャンネルまたは Jira チケットに転送し、アナリストが直ちに確認できるようにします
  • Make — ウォッチリスト更新イベントをトリガーとして、定期的な再スクリーニングの自動ワークフローを構築します
  • Google Sheets — 監査証跡のために、スクリーニング結果をコンプライアンス台帳のスプレッドシートに記録します
  • LangChain / LlamaIndex — 自動オンボーディング、取引レビュー、または調査ワークフローのために、AI エージェントのパイプライン内でこの MCP をコンプライアンスツールとして使用します

トラブルシューティング

  • リスクが高いと分かっている対象があるのに、ツールから空のディメンションデータが返される — 内部で使用されるアクターの一部がタイムアウトした可能性があります。レスポンスの actorsUsed を確認してください。想定より少ない場合は、実行を再試行してください。アクターごとの120秒のタイムアウトは厳格な制限です。ピーク時には、政府機関のAPIの応答が遅くなり、この制限を超えることがあります。

  • 一般的な名前で制裁リストのあいまい一致が発生する — 「John Smith」のような一般的な名前では、あいまい一致による誤検知が多数発生します。国コードのヒント(country: "US")で検索を絞り込むか、include_aliases: false を指定して sanctions_deep_check を使用すると、ノイズを減らせます。あいまい一致に基づくコンプライアンス上の判断には、必ず人による確認が必要です。

  • 初回呼び出しで spending limit reached エラーが発生する — Apify アカウントで、実行時の maxTotalChargeUsd が低く設定されています。Apify の実行設定またはプログラムからの呼び出しパラメーターで、利用上限を引き上げてください。ツール呼び出し1回あたりの料金は $0.045 です。

  • サーバーが GET リクエストに対して405を返す — MCP エンドポイントは、JSON-RPC 2.0 仕様に従い POST リクエストのみを受け付けます。すべてのツール呼び出しと tools/list による検出には POST を使用してください。/mcp への GET は意図的に、説明を含むエラーメッセージとともに405を返します。

  • 同じ対象に対する2回の実行で結果が異なる — すべてのデータベースにリアルタイムで問い合わせています。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 保証が追加されます。このツールは、6桁の年間契約を結ばずに、プログラムから利用でき、AI と統合された AML スクリーニングを必要とするチームに最適です。

制裁スクリーニングにおける、あいまいな名前照合の精度はどの程度ですか? OFAC の照合では、内部の ofac-sanctions-search アクターに組み込まれたあいまい照合が使用され、レーベンシュタイン距離と文字変換を適用して、表記のバリエーションを検出します。信頼度が >= 0.95 のヒットは完全一致に分類されます。0.50~0.95 のヒットは、あいまい一致として返され、人による確認が必要です。一般的な名前では誤検知率が無視できないため、あいまい一致の結果は必ず手動で確認してください。

監視リストのデータベースはどの程度最新ですか? 各ツール呼び出し時に、すべてのデータベースへリアルタイムで問い合わせます。キャッシュされたスナップショットはありません。結果は、クエリ時点で公開されている OFAC、OpenSanctions、Interpol、FBI などの情報源の状態を反映します。OFAC は通常、新たな指定から数時間以内に SDN リストを更新します。 金融犯罪スクリーニングの結果をSAR提出の根拠として使用できますか? aml_risk_classification ツールは、SAR の説明文の分析的根拠となる各項目のスコア、証拠の調査結果、およびコンプライアンス上の推奨事項を返します。このツールは、HIGH および PROHIBITED の各ティアについて sarRequired: true を明示します。ただし、実際の SAR は、FinCEN Form 114 の要件に従い、資格を有する BSA/AML 担当者が作成して提出する必要があります。

AML コンプライアンスのスクリーニングにこのツールを使用することは合法ですか? はい。このツールは公開されている政府のデータベースを照会するもので、正当なコンプライアンス業務を支援するよう設計されています。OFAC スクリーニングは、銀行秘密法に基づき、米国の金融機関に課せられた法的義務です。データアクセスの合法性に関するガイダンスについては、Apify のウェブスクレイピングの合法性に関するガイドをご覧ください。

1 時間あたり何件の事業体をスクリーニングできますか? ツール呼び出しごとに最大 13 個のアクターが並行して実行され、通常 30~90 秒で完了します。実際には、単一のクライアントから 1 時間あたり 40~80 件の完全な AML 分類を実行できます。スループットを高めるには、Apify API を使用して複数の MCP 呼び出しを同時に実行してください。

この MCP は複数の事業体の一括スクリーニングに対応していますか? MCP プロトコルは、事業体ごとに 1 回のツール呼び出しを行うよう設計されています。一括スクリーニングを行うには、Apify API を使用して MCP エンドポイントに複数の HTTP リクエストを同時に送信してください。推奨される方法は、Python の asyncio ループ、または事業体のリストに対する JavaScript の Promise.all です。

基盤となるアクターが利用できない場合やタイムアウトした場合はどうなりますか? 各 runActor() 呼び出しは try-catch でラップされており、失敗時には空の配列を返します。アクターがタイムアウトしても、スクリーニング全体が中止されることはありません。レスポンスには actorsUsed が含まれているため、結果に寄与したソースの数を確認できます。制裁対象者の照合など、重要な項目がタイムアウトによって空の結果を返した場合は、結果を確定できないものとして扱い、再実行してください。

継続的なモニタリングのために、定期的な再スクリーニングをスケジュールできますか? はい。Apify のスケジューラーを使用すると、毎日、毎週、または任意のカレンダーに従って再スクリーニングを実行できます。ウェブフックと組み合わせれば、スクリーニング完了時に結果をケース管理システムへ自動的に送信できます。

シェルカンパニーの検出では、実質的支配者も確認できますか? corporate_shell_detection ツールは、公開されている法人記録から、名義上の取締役、登録代理人、無記名株式、タックスヘイブンの法域といったシェルカンパニーの兆候を特定します。実質的支配者の完全な連鎖を解明するものではありません。体系的な所有関係のマッピングや UBO 調査には、ryanclinton/sanctions-evasion-network-mcpを併用してください。

実務上、PROHIBITED ティアは何を意味しますか? PROHIBITED は、制裁対象者との直接一致(OFAC または OpenSanctions の信頼度 >= 0.95)、または複合リスクスコアが 70 を超えた場合に適用されます。推奨事項は 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 のページにあるIssues タブで Issue を作成してください。カスタムデータソースの追加、エンタープライズ統合、ホワイトラベルのコンプライアンス導入については、Apify プラットフォームからお問い合わせください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。