Skip to main content
Glama
Deep Impact Mapper

Deep Impact Mapper

by HiroakiKatoh

Deep Impact Mapper (DIM)

社内文書・メールの「業務文脈を整理する頭脳」 — 編集波及の特定に加え、複数文書の名寄せ・矛盾検出・鮮度判定・フィードバック反映を提供する MCP サーバー(Azure MCP SaaS 対応)

Legal Impact Mapper (LIM) の派生版。法律文書の代わりに、社内メール・会議依頼・アジェンダ・資料を対象にします。

概要

このツールがやること:

  • メール・会議依頼・アジェンダ・資料をノードとエッジのグラフに構造化

  • 1箇所の編集を検出し、依存グラフを辿って影響範囲を自動伝播

  • 複数文書の同一人物・案件を名寄せして統合(merge_content_graphs)

  • 情報同士の矛盾・新旧関係を検出(detect_conflicts)

  • 「この情報はもう古くないか」を判定(assess_freshness)

  • 本人の承認・修正・否認をノードのライフサイクルに反映(record_feedback)

代表例:

開始時刻 14:00 → 16:00 に変更
  → 参加メンバーが変わる
    → アジェンダの進行が変わる
      → 資料(Q2実績スライド)の内容修正が必要
メール(7/1: 期限は水曜) + アジェンダ(7/8: 期限は金曜)
  → 名寄せで「同一案件の期限」と特定
    → 新旧関係を確定(金曜が最新、水曜は stale)
      → 古い記載箇所のみが編集対象に

このツールがやらないこと:

  • 文書の自動生成・自動修正

  • 要約

  • ポリシー判断・法的助言

Related MCP server: legal-impact-mapper

インストール

git clone https://github.com/HiroakiKatoh/DeepImpactMapper.git
cd DeepImpactMapper
npm install
npm run build

設定

環境変数

主要なもののみ。全一覧は .env.example を参照。

変数名

必須

説明

ANTHROPIC_API_KEY

Yes*

Anthropic API キー(DIM_LLM_PROVIDER=anthropic 時)

DIM_LLM_PROVIDER

No

anthropic(デフォルト)/ azure-openai(BYOキー対応)

DIM_MODEL

No

使用モデル(デフォルト: claude-sonnet-4-20250514)

DIM_STUB_LLM

No

1 でスタブモード(API 不要)

DIM_STORAGE

No

memory(デフォルト)/ file / cosmos

Cursor での設定(ローカル stdio)

.cursor/mcp.json:

{
  "mcpServers": {
    "deep-impact-mapper": {
      "command": "node",
      "args": ["path/to/Deep_Impact_Mapper/dist/server.js"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-xxxxx"
      }
    }
  }
}

リモート接続(Streamable HTTP / SaaS モード)

npm run start:http   # http://localhost:3000/mcp
{
  "mcpServers": {
    "deep-impact-mapper": {
      "url": "https://<host>/mcp",
      "headers": { "Authorization": "Bearer <APIキー>" }
    }
  }
}

Azure へのデプロイ(Container Apps + Cosmos DB)は infra/README.md を参照。

提供ツール

ツール

説明

LLM使用

extract_content_graph

テキストを ContentGraph に構造化(判断経緯・観測日時・根拠付き)

あり

update_content_node

ノードの内容を変更

なし

analyze_impact

変更の影響範囲を分析

あり

merge_content_graphs

複数文書のグラフを名寄せ統合

あり

detect_conflicts

矛盾・新旧関係を検出(supersedes エッジ自動追記)

あり(無効化可)

assess_freshness

情報の鮮度(fresh/stale/unverified)を判定

なし

record_feedback

本人の承認/修正/否認を status に反映

なし

save_graph / load_graph / list_graphs

グラフの永続化と graph_id 参照

なし

使い方の流れ

単一文書の編集波及:
  extract_content_graph → update_content_node → analyze_impact

複数文書の文脈整理(難所B):
  extract_content_graph ×N → merge_content_graphs → detect_conflicts
    → assess_freshness → record_feedback

開発

npm install
npm run build
npm test        # 単体・統合テスト
npm run eval    # golden set 10件の評価ハーネス(スタブモードで無料実行可)
npm run dev

LIM との関係

DIM は Legal Impact Mapper をベースに、社内コミュニケーション向けにドメインモデルとプロンプトを差し替えた派生版です。詳細は MEMO.md を参照。

ライセンス

ISC

Available Tools

3 tools
analyze_impactAnalyze ImpactA

【いつ使う】update_content_nodeで変更したノードの影響範囲を確定するとき。 【入力】graph: 更新済みContentGraph / changed_node_ids 【出力】{ changed_node_ids, affected_node_ids, directly_affected, indirectly_affected, explanations, risk_level, warning? } 【注意】affected_node_ids: []の場合は編集作業は不要。編集対象は changed_node_ids + affected_node_ids に対応する原文箇所のみ。

Inputs: graph (required), changed_node_ids (required).

extract_content_graphExtract Content GraphA

【いつ使う】社内メール・会議依頼・アジェンダ・資料のテキストを初めてグラフ化するときのみ呼ぶ。同一文書群に対して2回目以降は不要(内部でLLMを呼ぶため高コスト)。 【入力】text: メール本文、会議依頼、アジェンダ、資料の記述(最大50,000文字) 【出力】ContentGraph: { nodes: ContentNode[], edges: Edge[] }。各ノードはid/type/text/confidenceを持ち、source_docで元文書を示す。競合解釈にはgroup_idが付与される。 【注意】このgraphオブジェクトをそのまま後続の update_content_node と analyze_impact に渡すこと。

Inputs: text (required).

update_content_nodeUpdate Content NodeA

【いつ使う】ユーザーがノードの内容(メール文言、時刻、参加者等)を変更するとき。extract_content_graphの出力graphを受け取って呼ぶ。 【入力】graph / node_id / new_text / new_type(任意)/ mark_verified(デフォルトtrue) 【出力】{ graph, changed_node_ids, diff_summary } 【注意】user_verified=trueのノードは変更を拒否する。

Inputs: graph (required), node_id (required), new_text (required), new_type, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a distinct purpose: extraction, modification, and analysis. No overlap in functionality.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in underscore_case (extract_content_graph, update_content_node, analyze_impact).

    Tool Count5/5

    Three tools cover the essential workflow without redundancy. Each tool serves a clear, necessary function.

    Completeness4/5

    The workflow from extraction to analysis is complete. A minor gap is the lack of a dedicated tool for viewing the graph, but the graph is accessible via outputs.

    Related MCP Connectors

    Related MCP Servers