Aviation Accident Analysis MCP

io.github.hzy9981由 GitHub 帳號 hzy9981 發布v0.1.0更新於 Oct 25, 2026

Aviation accident report parsing and prompt generation service under the SHELL framework.

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

本機 MCP 伺服器,解析航空事故報告(PDF、DOCX、TXT)並將文字注入 GraphRAG 提示詞範本,用於實體與致因抽取。

可以做什麼
依檔案路徑解析並清理 PDF、DOCX、TXT 格式的航空事故報告,將擷取文字注入指定的提示詞範本,供 GraphRAG 抽取實體與關係;列出 prompts 目錄中可用的提示詞範本。整體專案可建構「人-機-環-管」知識圖譜,並支援匯入 Neo4j。
適用情境
適合處理航空事故報告、希望讓助理把報告轉成結構化 GraphRAG 抽取提示詞時使用,也適合研究此專案的事故致因知識圖譜流程。
執行需求
以本機 Python 程序執行(Python 3.10+,建議使用 uv),透過 uv run mcp_server.py 啟動。完整流程需設定 GraphRAG 的 settings.yaml 與 LLM 端點(本機 Ollama 或 OpenAI 相容介面);可選的 Docker 環境包含 Neo4j。
安裝前請注意
工具會讀取呼叫端提供的檔案路徑,應只指向預期檔案。Docker 環境內建預設 Neo4j 帳號與密碼,應予變更。README 顯示關係抽取分數偏低,抽取結果需人工核查。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Aviation Accident Analysis MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

航空事故致因抽取与知识图谱项目 (Aviation Accident Analysis)

本项目基于 Microsoft GraphRAG 框架 ,旨在自动从航空事故报告中抽取实体与因果关系,并构建符合“人-机-环-管”框架的知识图谱。

项目结构

  • data/: 原始数据与地标数据。
  • input/: GraphRAG 输入目录(清洗后的文本)。
  • output/: GraphRAG 输出结果(Parquet, GraphML 等)。
  • prompts/: 自定义的 GraphRAG 提取提示词。
  • src/:
    • ingest.py: PDF/DOCX 解析与文本清洗。
    • evaluate.py: 提取准确率与 F1 分数评测脚本。
  • run.sh: 一键运行脚本。
  • settings.yaml: GraphRAG 配置文件。

环境要求

  • Python 3.10+
  • uv (推荐)

环境配置注意事项

  • 若遇到 LLM 连接错误,请检查 settings.yaml 中的 api_base 是否配置正确。在某些 Docker 或受限环境中,建议将 localhost 修改为 127.0.0.1。
  • 本项目已对 prompts/extract_graph.txt 中的抽取示例进行了优化,通过引入复杂场景示例,提升了在航空事故报告中的实体抽取表现。

Prompt 优化与评估记录 (2026-07-24)

优化策略

针对航空事故报告的复杂性,对 prompts/extract_graph.txt 进行了多轮手动迭代优化:

  1. 实体原子化:强制拆分复杂短语(如“燃油管路破裂”拆分为实体“燃油管路”与关系“破裂导致”),提升知识图谱的结构化程度。
  2. 严格去噪:建立了否定约束,排除通用职衔(如单独的“机长”)和指示代词(如“该部件”),提升精确率。
  3. 少样本增强:集成了 few_shot_data.csv 中的高质量航空事故致因链示例,引导模型识别长程因果关系。
  4. 因果链强制构建:明确 [因素] -> [事件] -> [结果] 的链条要求。

评估结果 (Fuzzy Match)

通过 scripts/run_automated_evaluation.py 运行自动化评估,对比 data/ground_truth.json 得到以下指标:

指标实体 (Entities)关系 (Relationships)
精确率 (Precision)0.43480.0556
召回率 (Recall)0.71430.0909
F1 分数 (F1 Score)0.54050.0690

结论:实体抽取的精确率和 F1 分数相比基准版本有显著提升。关系抽取受限于本地模型的指令遵循能力,仍有优化空间。

MCP 服务 (Model Context Protocol)

本项目提供了一个 MCP 服务,方便通过 MCP 客户端(如 Claude Desktop)直接调用文档解析与提示词生成功能。

核心功能

  • 文档解析:支持 PDF、DOCX、TXT 格式的自动解析与清洗。
  • 提示词注入:将解析出的文档内容自动注入到指定的提示词模板中。

启动方式

bash
uv run mcp_server.py

可用工具

  1. upload_and_generate_prompt:
    • 参数 file_path: 文档路径。
    • 参数 template_name: prompts/ 目录下的模板名(默认 extract_entities)。
  2. list_available_templates: 列出所有可用的提示词模板。

🐳 一键启动 (Docker)

如果你想快速启动整个分析环境(包含 Neo4j 数据库和 MCP 服务),可以使用 Docker Compose:

bash
docker-compose up -d

启动后:

  • Neo4j 控制台: http://localhost:7474 (默认账号: neo4j, 密码: password)
  • MCP 服务: 已在容器内运行,并自动连接到容器内的 Neo4j。

运行流程

  1. 将事故报告(PDF/DOCX/TXT)放入 data/input_reports。
  2. 运行流水线:
    bash
    bash run.sh

使用 Ollama (本地 LLM)

在 settings.yaml 中修改 completion_models 和 embedding_models:

yaml
completion_models:  default_completion_model:    model_provider: openai    api_base: http://localhost:6006/v1    model: llama3 # 或其他模型    api_key: ollama # 占位符

注意:GraphRAG 对本地模型的支持取决于模型的遵循指令能力。

提取 Schema (人-机-环-管)

  • 实体类型: person (人), equipment (机), environment (环), organization (管), procedure, event, weather, violation.
  • 关系类型: leads to, limited by, violates, not executed, belongs to.

Neo4j 知识图谱导入

  • 本项目支持将 GraphRAG 提取的实体与关系导入 Neo4j 图数据库。
  • 使用 src/export_to_neo4j.py 脚本完成导入。
  • 已配置 Docker 容器运行 Neo4j 实例,确保能够正常连接。

來源:README.md,提交 82a0ccc

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。