Skip to main content
Glama
Janani879

DPR MCP Server

by Janani879

DPR MCP AIドキュメント共同編集プラットフォーム

このプロジェクトは、人間とAIエージェントが共有ドキュメントを安全に共同編集できる、Gitを基盤としたローカルなドキュメント共同編集プラットフォームです。

以下の要素を組み合わせています:

  • Model Context Protocolサーバー

  • 実際のMCP stdioクライアント

  • Reactダッシュボード

  • LangGraphベースのエージェント

  • Gitベースのバージョン管理

  • 分離されたワークスペース

  • 変更リクエスト

  • 人間によるレビューとマージ

  • 競合検出

  • 競合解決の提案

  • 来歴の追跡

核となる考え方:

AI agents can write and review documents, but they cannot silently overwrite main.
Every edit becomes a versioned, reviewable, traceable Change Request.

このプロジェクトが存在する理由

通常のAIによるドキュメント編集は、エージェントがファイルを直接上書きしたり、履歴を失わせたり、複数のユーザーの編集を混在させたり、誰が何をなぜ変更したのかを不明瞭にしたりするリスクを伴います。

このプロジェクトは、AIエージェントを制御された共同編集プロトコルの背後に配置することで、その問題を解決します:

Agent -> MCP Client -> MCP Server -> Controlled Tools -> Git + SQLite

エージェントは正規のドキュメントリポジトリを直接変更しません。エージェントは分離されたワークスペースを作成し、そこでファイルを編集して、変更リクエストを開き、人間のレビューを待ちます。

Related MCP server: agentsync

アーキテクチャ

プロジェクト全体のアーキテクチャ:

プロジェクトアーキテクチャ

フェーズ2のエージェントアーキテクチャ:

フェーズ2エージェントアーキテクチャ

高水準のフロー:

React Dashboard / External MCP Client
        |
        v
Dashboard API
        |
        v
LangGraph Agents
        |
        v
DPRMCPClient
        |
        v
MCP stdio
        |
        v
DPR MCP Server
        |
        v
MCP Tools
        |
        v
DPR Services
        |
        v
Git Repositories + Isolated Workspaces + SQLite Metadata

主なコンポーネント

MCPサーバー

MCPサーバーは、管理されたバックエンドインターフェースです。ドキュメント共同編集のための安全なツールを提供します。

エントリポイント:

src/dpr_mcp/server.py

主なツール:

  • create_project

  • create_workspace

  • read_project_file

  • read_change_file

  • create_file

  • edit_file

  • create_change

  • review_change

  • approve_change

  • merge_change

  • get_diff

  • get_file_patch

  • get_conflicts

  • propose_conflict_resolution

  • apply_conflict_resolution

  • rollback_change

  • get_provenance

直接実行:

python -m dpr_mcp.server

サーバーはstdio上でMCPを話します。通常はクライアントがサーバーと通信するもので、プロセスに手動で入力することはありません。

実際のMCPクライアント

再利用可能なMCPクライアントはここにあります:

src/dpr_mcp/mcp/client.py

stdio経由でDPR MCPサーバーを起動・接続し、ツールを名前で呼び出します。これはClaude Codeなどの外部MCPクライアントと同じ考え方です。

実際のクライアントデモを実行する:

python examples\real_mcp_client.py

期待される出力:

Connected to DPR MCP server. 35 tools available.
Project: client-demo
Workspace: ws-...
Change request: CR-...
Open changes: 1

Reactダッシュボード

ダッシュボードは人間向けのUIです。

ユーザーは以下を行うことができます:

  • ローカルのDPRルートフォルダを選択する

  • プロジェクトを作成する

  • ドキュメントを表示する

  • エージェントを実行する

  • 変更リクエストを検査する

  • 差分をレビューする

  • 承認された変更をマージする

  • 競合を検査する

  • 履歴と来歴を表示する

バックエンド:

src/dpr_mcp/dashboard.py

フロントエンド:

frontend/

LangGraphエージェント

エージェントのワークフロー層はここにあります:

src/dpr_mcp/agents/workflows.py

実際のダッシュボードのエージェントアクションは、実際のDPRMCPClientを作成し、stdio経由でMCPサーバーに接続して、MCPツールを呼び出します。つまり、エージェントの経路は現在次のようになります:

Dashboard -> LangGraph Agent -> DPRMCPClient -> MCP Server -> MCP Tools

現在のエージェント:

  • ドラフトエージェント

  • レビューアーエージェント

  • コンプライアンスエージェント

  • 競合解決エージェント

LLM統合はここにあります:

src/dpr_mcp/agents/llm.py

対応モード:

  • Groq

  • OpenAI

  • キーが設定されていない場合のフォールバックモード

エージェントワークフロー

ドラフトエージェント

ドラフトエージェントは、ドキュメントを作成または改善します。

プロンプトの例:

Write a detailed report about smart waste segregation for a college campus.

内部フロー:

Dashboard
-> LangGraph Draft Agent
-> DPRMCPClient
-> MCP server
-> list_files
-> read_project_file if the file exists
-> create_workspace
-> create_file or edit_file
-> create_change

結果:

A new Change Request is created.
The file is not directly merged into main.

レビューアーエージェント

レビューアーエージェントは次をチェックします:

  • 明確性

  • 構造

  • 完全性

  • 技術的な有用性

  • 変更がユーザーの意図と一致するかどうか

内部フロー:

Reviewer Agent
-> DPRMCPClient
-> get_change
-> get_diff
-> get_file_patch
-> review_change

結果:

A review comment is added to the Change Request.

レビューアーエージェントは人間の承認に取って代わるものではありません。人間がマージするかどうかを決定する前にフィードバックを提供します。

コンプライアンスエージェント

コンプライアンスエージェントは、変更が安全で、ポリシーに適合しているかをチェックします。

チェック対象:

  • サポートされていないファイルタイプ

  • シークレットまたは資格情報

  • プレースホルダーテキスト

  • 捏造された証拠

  • 不適切な主張

  • レポート項目の欠落

内部フロー:

Compliance Agent
-> DPRMCPClient
-> get_change
-> get_diff
-> get_file_patch
-> review_change

結果:

The Change Request receives a compliance review.
If there is a blocking issue, the review requests changes.

競合解決エージェント

競合解決エージェントは、Gitが実際のマージ競合を検出したときに使用されます。

内部フロー:

Resolver Agent
-> DPRMCPClient
-> get_change
-> get_conflicts
-> create_workspace
-> read_project_file
-> read_change_file
-> edit_file
-> propose_conflict_resolution

結果:

A new resolution Change Request is created.
The human still reviews and merges the resolution.

解決エージェントはレビューを迂回しません。修正案を提案するだけです。

実際の競合が発生する仕組み

競合は、2つの変更が同じ古いベースから同じファイルの同じ部分を編集するときに発生します。

例:

main has report.md

次に:

Agent A creates CR-1 editing report.md
Agent B creates CR-2 editing the same paragraph in report.md
Human merges CR-1 first
Human tries to merge CR-2
Git detects that CR-2 was based on old main and touched the same lines
CR-2 becomes conflicted

次に:

Conflict Resolver Agent reads current main and incoming CR-2
Resolver writes a combined version in a new workspace
Resolver opens a resolution CR
Human reviews and merges the resolution CR

これは実際のGitの競合フローであり、架空のUI専用の競合ではありません。

ファイルが作成される場所

ダッシュボードはルートフォルダを要求します。

ルートが次のような場合:

C:\Users\janan\dpr-mcp\data

その場合、システムは次を使用します:

data\projects      -> canonical Git repositories
data\workspaces    -> isolated Git worktrees
data\dpr_mcp.db    -> SQLite metadata database

重要:

Documents are local files inside Git-backed project repositories.
Workspaces are temporary isolated edit areas.
SQLite stores metadata such as workspaces, changes, reviews, conflicts, and roles.

Gitを使用する理由

Gitは次の機能を処理します:

  • コミット

  • ブラッチ

  • ワークツリー

  • 差分

  • マージ可能性チェック

  • マージ競合

  • マージ履歴

  • フォワードコミットによるロールバック

このプロジェクトはバージョン管理を再実装するものではありません。Gitを真実の情報源として使用し、その前に共同編集ワークフローを追加します。

SQLiteを使用する理由

Gitはファイル履歴には優れていますが、次のような共同編集のメタデータを自然に保存することはできません:

  • 変更リクエストのステータス

  • レビューアのコメント

  • 承認

  • 競合解決記録

  • ワークスペースの所有権

  • ロールのバインド

  • イベントログ

これらのメタデータはSQLiteに保存されます。

人間のガバナンス

このシステムは意図的にヒューマンインザループとなっています。

エージェントは次のことを実行できます:

  • ドキュメントの作成

  • 変更のレビュー

  • コンプライアンスのチェック

  • 競合解決の提案

人間が制御すること:

  • 最終承認

  • マージ

  • ロールバック

  • プロジェクトへのアクセス/ルートフォルダの選択

これは重要です。このプロジェクトは、無制御の自律的な編集ではなく、安全なAI支援の担当を実現することを目的としているからです。

セキュリティモデル

ファイル操作は、設定されたリポジトリおよびワークスペースのルートに制限されます。

ファイルセキュリティ層は次を拒否します:

  • 絶対パス

  • パストラバーサル

  • シンボリックリンクによるエスケープ

  • NULLバイト

  • 制御文字

  • .env、秘密鍵、資格情報などの機密性の高いファイル名

関連ファイル:

src/dpr_mcp/files/security.py
src/dpr_mcp/files/service.py
tests/security/

セットアップ

WindowsのCMDから:

cd /d C:\Users\janan\dpr-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
cd frontend
npm install
cd ..

環境がすでに存在する場合:

cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate

環境変数

実際のLLMを使用する場合に、プロジェクトルートに.envファイルを作成します。

Groqの場合:

DPR_LLM_PROVIDER=groq
GROQ_API_KEY=your_key_here
DPR_LLM_MODEL=llama-3.3-70b-versatile

OpenAIの場合:

DPR_LLM_PROVIDER=openai
OPENAI_API_KEY=your_key_here
DPR_LLM_MODEL=gpt-5

キーが設定されていなくても、エージェントはフォールバックモードで実行されますが、内容は基本的なものになります。

ダッシュボードを実行する

バックエンド:

cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python -m dotenv run -- python -m dpr_mcp.dashboard --host 127.0.0.1 --port 8787 --root data

フロントエンド:

cd /d C:\Users\janan\dpr-mcp\frontend
npm run dev

ターミナルに表示されるViteのURLを開きます。通常は:

http://127.0.0.1:5173

ダッシュボードのバックエンドAPIは次の場所で実行されます:

http://127.0.0.1:8787

MCPサーバーを直接実行する

cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python -m dpr_mcp.server

このコマンドは、stdio上でMCPサーバーを起動します。

実際のMCPクライアントデモを実行する

cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python examples\real_mcp_client.py

これにより以下のことが実証されます:

Python client
-> MCP stdio server
-> MCP tools
-> project/workspace/file/change created

リポジトリマップ

src/dpr_mcp/server.py              MCP server entry point
src/dpr_mcp/dashboard.py           local dashboard HTTP API
src/dpr_mcp/mcp/tools.py           MCP tool definitions
src/dpr_mcp/mcp/client.py          real MCP stdio client
src/dpr_mcp/mcp/gateway.py         in-process MCP-shaped gateway
src/dpr_mcp/agents/workflows.py    LangGraph agent workflows
src/dpr_mcp/agents/llm.py          Groq/OpenAI/fallback generation
src/dpr_mcp/projects/              project repository management
src/dpr_mcp/workspace/             isolated worktree management
src/dpr_mcp/collaboration/         changes, reviews, approvals, conflicts
src/dpr_mcp/files/                 safe local file access
src/dpr_mcp/git/                   Git CLI wrapper
src/dpr_mcp/persistence/           SQLite models and repositories
src/dpr_mcp/provenance/            provenance reconstruction
frontend/                          React dashboard
examples/                          runnable MCP and conflict demos
tests/                             unit, integration, security, MCP tests
docs/                              architecture and technical docs

現在のステータス

次を実装済みです:

  • MCPサーバー

  • 実際のMCP stdioクライアント

  • Reactダッシュボード

  • LangGraphエージェント

  • LLM統合

  • ローカルGitプロジェクトリポジトリ

  • 分離されたワークスペース

  • 変更リクエスト

  • レビュー

  • コンプライアンスチェック

  • マージフロー

  • 競合検出

  • 競合解決の提案

  • ロールバック

  • 来歴

  • アーキテクチャ図

  • テスト

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Gives AI coding assistants persistent memory, safety controls, and project awareness by tracking coding sessions, protecting critical files from modifications, and managing approval workflows with automatic changelog generation.
    19
    13
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables multiple AI agents to collaborate on the same git repository by coordinating work via a shared claims branch, detecting file conflicts before they happen.
    9
    PolyForm Noncommercial 1.0.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables multiple AI coding agents to collaborate on the same Git repository without conflicts through isolated worktrees, file locking, automated test verification, and a serialized merge queue.
    7
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Git-backed platform for skills, tools, and context for AI agents

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Janani879/DPR-Git-Backed-MCP-Collaboration-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server