mcpField
O
Ontology Mcp Server

Ontology Mcp Server

本地服务
github.com/mrcholis金融数据019 周前更新

关于 Ontology Mcp Server

Ontology MCP Server 将 ISO 20022 XML 转为可查询的 RDF 金融知识图谱,供银行、金融科技公司及支付处理商使用。它支持消息关联、生命周期查询、异常检测和实时流式导入。

主要功能

  1. 01解析 ISO 20022 XML 并映射为 RDF
  2. 02查询交易及消息生命周期
  3. 03运行 SPARQL 查询
  4. 04检测高额交易及余额异常
  5. 05按 BIC 汇总机构活动
  6. 06通过 WebSocket 流式导入

适用场景

  1. 01跨 XML 文件查找指定金额和机构的交易
  2. 02追踪取消请求与支付的完整关联链
  3. 03检查数据中的余额不匹配或异常
  4. 04实时接收并处理 XML 消息

MCP 相关

它将金融信号与图谱操作作为 MCP 工具提供给兼容客户端。工具涵盖 XML 导入、图查询、生命周期检索和异常检测。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ontology": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mrcholis/ontology-mcp"
]
}
}
}
启动命令docker run -i --rm ghcr.io/mrcholis/ontology-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/mrcholis/ontology-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Ontology MCP 服务

将 ISO 20022 银行消息转换为可查询的知识图谱——任何 AI Agent 都可通过 MCP 访问。

银行、金融科技公司和支付处理商每天都会处理数千条 ISO 20022 消息(pacs.008 付款、camt.056 撤销、camt.029 响应)。这些 XML 文件内容密集、相互关联,几乎无法跨文件查询——直到现在。

Ontology 可导入 ISO 20022 XML,提取结构化金融信号,构建 RDF 知识图谱,并将其作为原生工具开放,供任何兼容 MCP 的 AI Agent 使用。

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 Agent 无法使用这些数据——即使使用 RAG,结构化金融数据也难以通过简单分块处理

Ontology 通过构建具有类型、彼此关联的知识图谱和自然语言界面,解决了以上所有问题。


快速开始

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 安装
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启动 WebSocket 服务,以流式方式导入 XML
push_stream_message通过 WebSocket 实时推送 XML 消息
支持的消息类型
消息说明
pacs.008付款发起(金融机构 → 金融机构)
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 流式导入
  • 生产环境 IRIs(替换 http://example.org/ 命名空间)
  • SPARQL HTTP 端点
  • pain.001 / pain.002 付款发起消息
  • 提供 Docker 镜像,实现一键部署

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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