DPR MCP Server
DPR MCP AI Document Collaboration Platform
Это локальная платформа для совместной работы с документами на базе Git, где люди и AI-агенты могут безопасно работать над общими документами.
Проект объединяет:
сервер 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-сервер — это управляемый backend-интерфейс. Он предоставляет безопасные инструменты для совместной работы с документами.
Точка входа:
src/dpr_mcp/server.pyВажные инструменты:
create_projectcreate_workspaceread_project_fileread_change_filecreate_fileedit_filecreate_changereview_changeapprove_changemerge_changeget_diffget_file_patchget_conflictspropose_conflict_resolutionapply_conflict_resolutionrollback_changeget_provenance
Запуск напрямую:
python -m dpr_mcp.serverСервер общается по MCP через stdio. Обычно с ним взаимодействует клиент; вам не нужно вручную вводить команды в этот процесс.
Настоящий MCP-клиент
Переиспользуемый MCP-клиент находится здесь:
src/dpr_mcp/mcp/client.pyОн запускается/подключается к MCP-серверу DPR через stdio и вызывает инструменты по именам. Это та же идея, которую используют внешние MCP-клиенты, такие как Claude Code.
Запустите демо реального клиента:
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-панель
Панель — это интерфейс для пользователя.
Она позволяет:
выбирать локальный корневой каталог DPR
создавать проекты
просматеривать документы
запускать агентов
проверять запросы на изменение
просматривать разницы (diffы)
объединить однорённые изменения
просматривать конфликты
смотреть историю and происхождение
Backend:
src/dpr_mcp/dashboard.pyFrontend:
frontend/LangGraph-агенты
Уровень агентских процесс-бот находится здесь:
src/dpr_mcp/agents/workflows.pyЖивые действия панели агентов создают настоящий DPRMCPClient, подключаются к MCP-серверу через stdio и вызывают 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.Агент-ревьюер не заменяет проверку человека. Он даёт обратную связь перед тем, как человек решает, принять ли изменения.
Агент-конплаенса
Агент-конплаенса проверяет, является ли изменение безопасным и соответствует ли политике.
Он ищет:
несоответствующие типы файлов
секреты и учётные данные
заполнителicons или плейсхолдеры
выдуманные доказательства
небезопасные утверждения
отсутствующие разделы отчёта
Внутренний процесс:
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.Разрешитель не заменяет ревью. Он только предлагает исправление.
Как возникает реальный конфликт
Конфликт возникает, когда два изменения редактируют одну и ту же часть одного и того же файла, отталкиваясь от одного и того же старого базового состояния.
Пример:
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 обрабатывает:
коммиты
веткбылки
worktrees
дiffы
проверки на возможность слияния
конфликты слияния
историю слияния
откаты через строительные коммиты
Проект не изобретает заново систему контроля версий. Он использует Git как источник истины и добавляет поверх него процесс совместной работы.
Почему используется SQLite
Git хорошо подходит для истории файлов, но не хранит естественно метаданные совместной работы, такие как:
статус запроса на изменение
комментарии рвьюэров
одобрение
записи о разрешении конфликтов
владение рабочим пространством
привязку ролей
журналы событий
Все эти метаданные хранятся в SQLite.
Человеческое управление
Система намеренно построена по принципу human-in-the-loop (человек в цикле).
Агенты могут:
создавать черновики документов
проверлять изменения
проверять соответствие
предлагать разрешения конфликтов
Люди контролируют:
окончальное одобрение
слияние
откат
доступ к проекту / выбор корневого каталога
Это важно, потому что проект является о безопасной совместной работе с AI, а не о бесконтрольном автономном редактировании.
Модель безопасности
Файловые операции ограничены наштроенным корневым репозиторием и корневным рабочим каталогом.
Слой безопасности фаилов отклоняет:
абсолтные пути
обход путей (path traversal)
выходы через символические ссылки (symlink escapes)
нулевые байты
управляющие символы
чувствительные имена файлов, такие как
.env, private keys и credentials.
Соответствующие файлы:
src/dpr_mcp/files/security.py
src/dpr_mcp/files/service.py
tests/security/Устанока и настройка
Из командной строки (CMD) в Windows:
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Переменные окружения
Создать файл .env в корне проке, если вы используете настоящую LLM.
Для Groop:
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Если ключ не настроен, агенты работают в запасном режиме, но результате будет базовым.
Запуск панели
Backend:
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 dataFrontend:
cd /d C:\Users\janan\dpr-mcp\frontend
npm run devОткройте URL, показанный втерминей Vite, обычно:
http://127.0.0.1:5173API бэкенда панели доступно по адресу:
http://127.0.0.1:8787Запуск MCP-сервера напрямую
cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python -m dpr_mcp.serverЭто запускает MCP-сервер через stdio.Ov ничего.
Запуск демо реального 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-репозитории проектов
изолированные рабочие пространства
запросы изменения
рецензии
проверки соответствия
процесс слияния
обнаружение конфликтов
применЕНИЕ конфликтов
откат
происхождение (provenance)
архитектурные диаграммы
тесты
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