DPR MCP Server
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のエージェントアーキテクチャ:

高水準のフロー:
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.pystdio経由で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: 1Reactダッシュボード
ダッシュボードは人間向けの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-versatileOpenAIの場合:
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:8787MCPサーバーを直接実行する
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プロジェクトリポジトリ
分離されたワークスペース
変更リクエスト
レビュー
コンプライアンスチェック
マージフロー
競合検出
競合解決の提案
ロールバック
来歴
アーキテクチャ図
テスト
Maintenance
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
- AlicenseBqualityDmaintenanceGives 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.1913MIT
- AlicenseAqualityBmaintenanceEnables multiple AI agents to collaborate on the same git repository by coordinating work via a shared claims branch, detecting file conflicts before they happen.9PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read and write a local-first knowledge base of plain markdown files in git, with governance gates for safe, hash-anchored edits.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables 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.76MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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