Ontology Mcp Server について
Ontology MCP ServerはISO 20022 XMLを検索可能なRDF金融ナレッジグラフに変換し、銀行、フィンテック企業、決済処理事業者向けに提供します。メッセージを関連付け、ライフサイクル検索や異常検知、ストリーム取り込みを行えます。
主な機能
- 01ISO 20022 XMLの解析とRDF変換
- 02取引とメッセージのライフサイクル検索
- 03SPARQLクエリの実行
- 04高額取引と残高異常の検出
- 05BIC別の機関活動集計
- 06WebSocketによるXMLストリーム取り込み
活用シーン
- 01複数のXMLファイルから金額や機関で取引を検索
- 02決済と取消メッセージの関連経路を追跡
- 03読み込んだデータの残高不一致や異常を確認
- 04到着するXMLメッセージを逐次処理
MCP 対応
金融シグナルとグラフ操作を、MCP対応クライアント向けのツールとして公開します。XML取り込み、グラフ検索、ライフサイクル照会、異常検知を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/mrcholis/ontology-mcpローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/mrcholis/ontology-mcpstdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Ontology MCP Server
ISO 20022 の銀行メッセージを、MCP を介してあらゆる AI エージェントが利用できる、クエリ可能なナレッジグラフに変換します。
銀行、フィンテック企業、決済処理業者は、毎日何千もの ISO 20022 メッセージ(pacs.008 決済、camt.056 取消、camt.029 応答など)を扱っています。これらの XML ファイルは情報が密で相互につながり、ファイルをまたいだクエリはほぼ不可能でした。これまでは。
Ontology は ISO 20022 XML を取り込み、構造化された金融シグナルを抽出して RDF ナレッジグラフを構築し、MCP 互換の AI エージェントが利用できるネイティブツールとして公開します。
pip install ontology-mcp
python mcp_server.py
# Connect Claude Desktop, Cursor, or any MCP client
これが必要な理由
ISO 20022 は、金融メッセージングのグローバル標準です。すべての決済、決済処理、取消、明細書がこの標準を通じてやり取りされます。しかし、データは次のような問題を抱えています。
- XML はクエリできません — 「BLUEUSNY が関わる 50,000 ドル超のすべての取引」を見つけるには、ファイルを grep する必要があります
- メッセージは相互につながっています — camt.056 の取消は pacs.008 の決済を参照しますが、両者は別々の XML ファイルにあり、リンクがありません
- AI エージェントはデータを利用できません — RAG を使っても、構造化された金融データを単純にチャンク化するのは困難です
Ontology は、自然言語インターフェースを備えた型付きのリンクされたナレッジグラフを構築し、この 3 つの問題をすべて解決します。
クイックスタート
Docker(最も簡単)
docker pull ghcr.io/mrcholis/ontology-mcp:latest
docker run ghcr.io/mrcholis/ontology-mcp
または、デモを実行します。
docker run ghcr.io/mrcholis/ontology-mcp python demo.py
pip install
pip install ontology-mcp
# Or with persistent storage:
pip install "ontology-mcp[oxigraph]"
2. デモを実行する
python -m ontology_mcp.demo
サンプルの ISO 20022 メッセージを読み込み、グラフの内容を表示します。
3. サーバーを起動する
python mcp_server.py
4. Claude Desktop に接続する
claude_desktop_config.json に追加します。
{
"mcpServers": {
"ontology": {
"command": "python",
"args": ["/path/to/ontology-mcp/mcp_server.py"]
}
}
}
Claude を再起動します。次のように質問できるようになります。
「messages フォルダーから XML ファイルを読み込み、BLUEUSNY が関わる 50,000 ドル超のすべての取引を見つけて」
「取消ケース 20220718USDDSA9407803873 のライフサイクル全体を教えて」
「読み込んだデータに異常や残高の不一致はありますか?」
できること
| ツール | 機能 |
|---|---|
extract_and_map | ISO 20022 XML を解析 → シグナルを抽出 → RDF に変換し、グラフにマージします |
load_xml_file | ディスクから XML ファイルを読み込み、処理します |
load_output_directory | フォルダーから、事前に構築されたすべての .ttl ファイルを読み込みます |
query_lifecycle | ケース ID/取引 ID/BIC に関するメッセージチェーン全体を取得します |
sparql_query | グラフに対して任意の SPARQL を実行します |
find_anomalies | 高額取引、却下された取消、残高の不一致にフラグを付けます |
get_institution_activity | BIC コードに関するすべてのメッセージと、種類別の合計を取得します |
graph_stats | トリプル数、シグナルの内訳、BIC の一覧を取得します |
start_stream_server | XML 取り込み用の WebSocket サーバーを起動します |
push_stream_message | XML メッセージを WebSocket 経由でリアルタイムに送信します |
サポートされているメッセージタイプ
| メッセージ | 説明 |
|---|---|
pacs.008 | 決済開始(FI → FI) |
pacs.009 | 決済処理 |
camt.053 | 口座明細書 |
camt.054 | 入出金通知 |
camt.056 | 取消依頼 |
camt.026 | 適用不可 |
camt.029 | 取消応答/解決 |
アーキテクチャ
ISO 20022 XML
|
v
FinancialSignalExtractionPipeline → extracts typed Python signal objects
|
v
FinancialSignalToRDFMapper → maps signals to RDF triples
|
v
RDF Knowledge Graph (rdflib / Oxigraph)
| queryable via SPARQL
v
MCP Tools (mcp_server.py) → exposed over stdio transport
|
v
AI Agent / Claude Desktop
永続ストレージには Oxigraph(RocksDB ベース)を使用します。Oxigraph がインストールされていない場合は、インメモリの rdflib にフォールバックします。
使用例
決済ライフサイクル全体をクエリする
User: What happened with cancellation case 20220718USDDSA9407803873BLUEUSNY001?
Agent: I found 4 messages in the lifecycle:
1. pacs.008 — Payment initiated (BLUEUSNY → FEDNYUSS)
$94,078.03 USD on 2022-07-18
2. camt.056 — Cancellation requested by BLUEUSNY
Reason: duplicate submission
3. camt.029 — Cancellation rejected
Reason: payment already settled
4. camt.026 — Unable to apply notification sent to BLUEUSNY
異常を見つける
User: Are there any unusual transactions?
Agent: Found 4 high-value transactions (>$50K):
- TXN_20220718_001: $94,078.03 (BLUEUSNY → FEDNYUSS)
...
Found 1 rejected cancellation:
- Case 20220718USDDSA9407803873: rejected (already settled)
開発
git clone https://github.com/mrcholis/ontology-mcp
cd ontology-mcp
python3.11 -m venv venv311
source venv311/bin/activate
pip install -e ".[all]"
# Run tests
python _test_mcp_v2.py
ロードマップ
- ISO 20022 メッセージのサポート(pacs.008/009、camt.053/054/056/026/029)
- 永続的な Oxigraph ストレージ
- WebSocket ストリーミング取り込み
- 本番環境向け IRI(
http://example.org/の名前空間を置き換え) - SPARQL HTTP エンドポイント
-
pain.001/pain.002決済開始メッセージ - 1 コマンドでデプロイできる Docker イメージ
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。