Skip to main content
Glama
HiroakiKatoh

Deep Impact Mapper

by HiroakiKatoh
README.md
# Deep Impact Mapper (DIM)

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

[Legal Impact Mapper (LIM)](https://github.com/HiroakiKatoh/legal-impact-mapper) の派生版。法律文書の代わりに、社内メール・会議依頼・アジェンダ・資料を対象にします。

## 概要

**このツールがやること:**

- メール・会議依頼・アジェンダ・資料をノードとエッジのグラフに構造化
- 1箇所の編集を検出し、依存グラフを辿って影響範囲を自動伝播
- 複数文書の同一人物・案件を名寄せして統合(`merge_content_graphs`)
- 情報同士の矛盾・新旧関係を検出(`detect_conflicts`)
- 「この情報はもう古くないか」を判定(`assess_freshness`)
- 本人の承認・修正・否認をノードのライフサイクルに反映(`record_feedback`)

**代表例:**

```
開始時刻 14:00 → 16:00 に変更
  → 参加メンバーが変わる
    → アジェンダの進行が変わる
      → 資料(Q2実績スライド)の内容修正が必要
```

```
メール(7/1: 期限は水曜) + アジェンダ(7/8: 期限は金曜)
  → 名寄せで「同一案件の期限」と特定
    → 新旧関係を確定(金曜が最新、水曜は stale)
      → 古い記載箇所のみが編集対象に
```

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

- 文書の自動生成・自動修正
- 要約
- ポリシー判断・法的助言

## インストール

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

## 設定

### 環境変数

主要なもののみ。全一覧は [.env.example](./.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`:

```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 モード)

```bash
npm run start:http   # http://localhost:3000/mcp
```

```json
{
  "mcpServers": {
    "deep-impact-mapper": {
      "url": "https://<host>/mcp",
      "headers": { "Authorization": "Bearer <APIキー>" }
    }
  }
}
```

Azure へのデプロイ(Container Apps + Cosmos DB)は [infra/README.md](./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
```

## 開発

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

## LIM との関係

DIM は [Legal Impact Mapper](https://github.com/HiroakiKatoh/legal-impact-mapper) をベースに、社内コミュニケーション向けにドメインモデルとプロンプトを差し替えた派生版です。詳細は [MEMO.md](./MEMO.md) を参照。

## ライセンス

ISC

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.

Maintenance

ActivityInactive
ResponsivenessNo issues