mcpField
O
ofac-match

ofac-match

ローカル
github.com/krunalsolanki法務・行政13 日前に更新

ofac-match について

OfacMatchは、OFACのSDNリストに照らして名前をスクリーニングする.NETライブラリ兼ローカルMCPサーバーです。候補の一致度を採点し、該当した名前や別名、名前の各部分の比較内容を説明します。コンプライアンス上の判断は人が行います。

主な機能

  1. 01OFAC SDNリストに対する名前の照合
  2. 02候補一致の採点と理由の説明
  3. 03別名、アクセント、名前の表記揺れへの対応
  4. 04生年や国の不一致のフラグ付け
  5. 05リストを読み込んだオフライン照合

活用シーン

  1. 01コンプライアンス審査での借り手名の確認
  2. 02名前が一致候補になった理由の調査
  3. 03異なる表記や別名を持つ名前の確認
  4. 04AIクライアントによる照合とリスト項目の検索

MCP 対応

OfacMatch.Mcpは、単数・複数の名前の照合、SDN項目の検索、名前の比較、リスト情報の取得ツールを提供します。ローカルで動作し、APIキーは不要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
nugetOfacMatch.Mcp2.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OfacMatch

ソフトウェアの DOI 論文の DOI

.NET 向けの OFAC 制裁対象者名のスクリーニングツールです。名前が一致した理由もわかります。

OfacMatch がスペルミスのある名前をスクリーニングし、生年の不一致を警告し、一般的な名前を除外する様子

ブラウザーで試す:インストール不要です。入力した名前がブラウザーの外に送信されることはありません。

開発の背景

私は First American で 10 年間、権原・住宅ローン関連のシステムを開発していました。その中には、融資が財務省の制裁リストに掲載されている人物に提供されるのを防ぐ OFAC スクリーニングも含まれていました。コンプライアンス担当者から、ある名前に警告が出た理由や、スペルミスのある名前が警告されなかった理由を尋ねられるまでは、名前の照合は簡単に思えるものです。

今でも多くのチームは、OFAC のウェブサイトを手作業で検索するか、内部の仕組みが見えないスクリーニングロジックに頼っています。私は、小規模でオープンなツールを作りたいと思いました。公式リストを読み込み、OFAC が独自のよくある質問で説明している方法で名前をスコアリングし、すべてのスコアの根拠を示すツールです。

できること

OfacMatch は、OFAC から特別指定国民(SDN)リストをダウンロードし、そのリストと名前を照合して、潜在的な一致ごとに 0〜100 のスコアを付けます。このスケールは OFAC の検索ツールと同じです。一致ごとに、該当した名前または別名、そして名前の各部分がどのように対応したかを説明します。

実際の名前にありがちな複雑さにも対応しています。アクセント記号、LAST, First の語順、アポストロフィやハイフン、「Dr.」のような敬称、LLC や LTD のような会社種別(スペルミスも含む)、別名などです。生年や国を指定して、掲載されている記録と一致しない場合、その一致を隠さずに警告します。その判断は人が行うべきだからです。

依存関係はなく、独自のプロセス内で実行されるため、名前がシステムの外に出ることはありません。また、最新の .NET と .NET Framework 4.7.2+ の両方で動作します。

推測ではなく、実際のリストを使って測定しました。しきい値を 85 に設定した場合、掲載されている名前の現実的なスペルミスや表記揺れ 4,255 件のうち 99.8% を検出します。評価結果では、まだ検出できないケースも含めて詳しく説明しています。

これは初期リリース(0.1)です。ご意見、バグ報告、スコアが低くなる名前の表記揺れをぜひお寄せください。

OfacMatch はスクリーニングを支援するものであり、コンプライアンス上の判断を下すものではなく、法律上の助言でもありません。スコアが示すのは 2 つの名前の表記がどれほど似ているかであり、2 つの記録が同一人物のものかどうかではありません。独自のリスク評価に基づいてしきい値を設定し、潜在的な一致はすべて人が確認してください。詳しくはOfacMatch の責任ある利用をご覧ください。

クイックスタート

dotnet add package OfacMatch
using OfacMatch.Data;
using OfacMatch.Screening;

using var http = new HttpClient();
var list = await SanctionsList.DownloadAsync(http, saveToDirectory: "ofac-data");

var screener = new SanctionsScreener(list, new ScreeningOptions { MinScore = 85 });

foreach (var match in screener.Screen("Aymen Zawahri"))
{
    Console.WriteLine(match.Explain());
}

2026 年 10 月 27 日公開の SDN リストを使った出力:

Score 95.8 via NameParts against Primary name "AL ZAWAHIRI, Dr. Ayman"
  Entry 2676: AL ZAWAHIRI, Dr. Ayman (Individual; programs: SDGT)
  Full-name score 84.5; name-parts score 95.8
  AYMEN -> AYMAN: similarity 0.907, sounds alike
  ZAWAHRI -> ZAWAHIRI: similarity 0.946, sounds alike

スコアリングの仕組みでは、この例を順を追って説明しています。

より多くの情報を使ったスクリーニング
var request = new ScreeningRequest("John Michael Doe")
{
    Type = EntryType.Individual, // a borrower is a person, so skip companies and vessels
    YearOfBirth = 1971,          // flags matches whose listed dates of birth disagree
    Country = "United States",   // flags matches whose listed addresses are all elsewhere
};

var matches = screener.Screen(request);
オフラインでの利用
var list = SanctionsList.LoadFromDirectory("ofac-data"); // SDN.CSV, ALT.CSV, ADD.CSV

OFAC はリストを頻繁に更新します。少なくとも毎日再読み込みし、判断を下す前に必ず最新のリストと照合してください。

AI アシスタントから使用する(MCP サーバー)

OfacMatch.Mcp を使うと、Claude、GitHub Copilot、その他の MCP クライアントで、名前のスクリーニング、SDN エントリーの検索、スコアの説明ができます。ローカルで動作し、API キーは不要です。

Claude Desktop: 使用するコンピューター向けの拡張機能を最新リリース(ofac-match-windows.mcpb または ofac-match-mac-*.mcpb)からダウンロードし、ダブルクリックしてください。.NET や設定ファイルは不要です。

Claude Code プラグイン(結果を責任を持って報告するためのスキルとサーバーを追加します。.NET 10 SDK が必要です):

/plugin install ofac-match --marketplace krunalsolanki/ofac-match

Claude Code およびその他のクライアント(.NET 10 SDK が必要です):

claude mcp add ofac-match -- dnx OfacMatch.Mcp --yes

ツール:screen_name、screen_names、get_sanctions_entry、compare_names、get_list_info。その他のクライアントと設定については、MCP サーバーガイドをご覧ください。

コマンドライン
dotnet run --project samples/OfacMatch.Cli -- "Aymen Zawahri" --min 85 --yob 1951

実際の SDN リストでの結果

評価では、掲載対象者 600 件(個人 400 件、企業 200 件)と、その名前に対する現実的な表記揺れ 4,255 件、および一般的な名前 2,000 件を、2026 年 10 月 27 日公開の SDN リストと照合しました。

しきい値見つかった掲載対象者アラートが出た一般的な名前
8099.9%83.4%
8599.8%47.9%
9099.8%15.9%
9599.5%3.8%

テストした表記揺れ:完全一致、姓を先にした表記、句読点を除いた小文字表記、1 文字の誤り、2 文字の入れ替え、1 文字の欠落、異なる翻字、中間語の連結(「ALZAWAHIRI」)、ミドルネームの省略、企業名の接尾辞の変更。

この数字から驚いた点が 2 つありました。まず、名前だけでスクリーニングすると、多くのアラートが出ます。一般的な 2 語の名前の約半数が、リストにある何らかの名前に似ており、掲載対象者と完全に同じ綴りのものもいくつかあります。生年月日と国の情報があれば、審査担当者はこれらをすばやく除外できます。次に、しきい値を 85 から 90 に上げると、今回の表記揺れを見落とすことなくアラートを 3 分の 2 減らせました。そのため、しきい値はデフォルトのままにせず、慎重に選ぶ必要があります。

自分で再実行できます:

dotnet run -c Release --project eval/OfacMatch.Evaluation -- --data ofac-data --out docs/evaluation.md

ドキュメント

ガイド内容
OfacMatch を選ぶ理由利点と他の選択肢との比較
スコアリングの仕組み実例を交えた各手順
API と設定のリファレンス型、オプション、デフォルト値
OfacMatch の責任ある使用しきい値、審査、記録の保持、制限
評価表記揺れや設定ごとの詳細な結果
MCP サーバーAI アシスタントから OfacMatch を使用する方法

今後の予定

おおよそ優先度順に、取り組みたい内容を挙げます。

  • 実際のリストでの評価
  • 出現頻度の低い単語の重みを大きくする(「CUBA」は「BANK」より重くするなど)。一般的な名前でのアラートを減らします
  • 企業名の語尾の先頭にある誤字を検出する(「LTMITED」など)
  • OFAC の統合リスト(非 SDN リスト)と Advanced XML 形式に対応する
  • バッチスクリーニングの高速化
  • ASP.NET Core のサンプルと dotnet tool パッケージ

これらへの協力を希望される場合や、スコアが低くなるケースがある場合は、issue を作成してください。詳細は CONTRIBUTING.md をご覧ください。

引用

研究や執筆で OfacMatch を使用する場合は、次の論文を引用してください。

Solanki, K. (2026). OFAC SDN リストに対する説明可能な氏名スクリーニング:オープンな実装と再現可能な評価(プレプリント). Zenodo. https://doi.org/10.5281/zenodo.23930926

@misc{solanki2026ofacmatch,
  author    = {Solanki, Krunal},
  title     = {Explainable Name Screening Against the {OFAC} {SDN} List: An Open Implementation and Reproducible Evaluation},
  year      = {2026},
  publisher = {Zenodo},
  note      = {Preprint},
  doi       = {10.5281/zenodo.23930926},
  url       = {https://doi.org/10.5281/zenodo.23930926}
}

ソフトウェア自体を引用する場合:

Solanki, K. OfacMatch:OFAC 制裁対象者の氏名を説明可能な方法でスクリーニングするソフトウェア(ソフトウェア). Zenodo. https://doi.org/10.5281/zenodo.23926803

どちらの DOI も常に最新版を指します。各バージョンには Zenodo 上で個別の DOI も付与されています。GitHub の このリポジトリを引用 ボタンから、論文をほかの形式で引用できます。

クレジット

クルナル・ソランキが開発しました。このアイデアとコンプライアンスに関する背景は、住宅ローン融資における OFAC スクリーニングの業務経験に基づいています。

プライバシーポリシー

OfacMatch は情報を一切収集しません。スクリーニングする氏名は、お使いのコンピューター上、またはウェブページの場合はブラウザー内で処理され、外部に送信されることはありません。唯一のネットワークリクエストは、OFAC から公開 SDN リストをダウンロードするもので、データはローカルにキャッシュされます。詳細はPRIVACY.mdをご覧ください。

データ

SDN リストは、米国財務省外国資産管理局が公開しています。OfacMatch は OFAC の制裁リストサービスからリストをダウンロードし、再配布は行いません。ユニットテストでは架空の氏名のみを使用しています。

ライセンス

Apache License 2.0

コメント

MCP は初めてですか?

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

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