DPR MCP Server
DPR MCP AI Document Collaboration Platform
Este proyecto es una plataforma local de colaboración de documentos, respaldada por Git, en la que las personas y los agentes de IA pueden trabajar de forma segura en documentos compartidos.
Combina:
Servidor Model Context Protocol
Cliente MCP real sobre stdio
Panel de React
Agentes basados en LangGraph
Control de versiones respaldado por Git
Espacios de trabajo aislados
Solicitudes de cambio
Revisión y fusión humanas
Detección de conflictos
Propuestas de resolución de conflictos
Seguimiento de la procedencia
La idea principal:
AI agents can write and review documents, but they cannot silently overwrite main.
Every edit becomes a versioned, reviewable, traceable Change Request.Por qué existe este proyecto
La edición normal de documentos con IA es arriesgada porque un agente puede sobrescribir directamente un archivo, perder el historial, mezclar las ediciones de varios usuarios o hacer que no quede claro quién cambió qué y por qué.
Este proyecto soluciona esto colocando a los agentes de IA detrás de un protocolo de colaboración controlado:
Agent -> MCP Client -> MCP Server -> Controlled Tools -> Git + SQLiteEl agente no modifica directamente el repositorio canónico de documentos. Crea un espacio de trabajo aislado, edita archivos en él, abre una solicitud de cambio y espera a la revisión humana.
Related MCP server: agentsync
Arquitectura
Arquitectura completa del proyecto:

Arquitectura de agentes de la Fase 2:

Flujo de alto nivel:
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 MetadataComponentes principales
Servidor MCP
El servidor MCP es la interfaz de backend controlada. Expone herramientas seguras para la colaboración en documentos.
Punto de entrada:
src/dpr_mcp/server.pyHerramientas importantes:
create_projectcreate_workspaceread_project_fileread_change_filecreate_fileedit_filecreate_changereview_changeapprove_changemerge_changeget_diffget_file_patchget_conflictspropose_conflict_resolutionapply_conflict_resolutionrollback_changeget_provenance
Ejecución directa:
python -m dpr_mcp.serverEl servidor habla MCP a través de stdio. Normalmente, un cliente se comunica con él; no se escribe manualmente en el proceso.
Cliente MCP real
El cliente MCP reutilizable está aquí:
src/dpr_mcp/mcp/client.pyArranca o se conecta al servidor DPR MCP a través de stdio y llama a las herramientas por su nombre. Esta es la misma idea que usan los clientes MCP externos, como Claude Code.
Ejecuta la demo del cliente real:
python examples\real_mcp_client.pySalida esperada:
Connected to DPR MCP server. 35 tools available.
Project: client-demo
Workspace: ws-...
Change request: CR-...
Open changes: 1Panel de React
El panel es la interfaz orientada a los humanos.
Permite a un usuario:
elegir la carpeta raíz local de DPR
crear proyectos
ver documentos
ejecutar agentes
inspeccionar solicitudes de cambio
revisar diffs
fusionar cambios aprobados
inspeccionar conflictos
ver el historial y la procedencia
Backend:
src/dpr_mcp/dashboard.pyFrontend:
frontend/Agentes de LangGraph
La capa de flujo de trabajo de los agentes está aquí:
src/dpr_mcp/agents/workflows.pyLas acciones de los agentes del panel en vivo crean un DPRMCPClient real, se conectan al servidor MCP a través de stdio y llaman a las herramientas MCP. Así que la ruta del agente ahora es:
Dashboard -> LangGraph Agent -> DPRMCPClient -> MCP Server -> MCP ToolsAgentes actuales:
Agente de borrador
Agente de revisión
Agente de cumplimiento
Agente de resolución de conflictos
La integración con LLM está aquí:
src/dpr_mcp/agents/llm.pyModos compatibles:
Groq
OpenAI
Modo de respaldo si no hay ninguna clave configurada
Flujo de trabajo de los agentes
Agente de borrador
El agente de borrador crea o mejora un documento.
Ejemplo de prompt:
Write a detailed report about smart waste segregation for a college campus.Flujo interno:
Dashboard
-> LangGraph Draft Agent
-> DPRMCPClient
-> MCP server
-> list_files
-> read_project_file if the file exists
-> create_workspace
-> create_file or edit_file
-> create_changeResultado:
A new Change Request is created.
The file is not directly merged into main.Agente de revisión
El agente de revisión comprueba:
claridad
estructura
completitud
utilidad técnica
si el cambio coincide con la intención del usuario
Flujo interno:
Reviewer Agent
-> DPRMCPClient
-> get_change
-> get_diff
-> get_file_patch
-> review_changeResultado:
A review comment is added to the Change Request.El agente de revisión no sustituye la aprobación humana. Aporta comentarios antes de que una persona decida si fusiona el cambio.
Agente de cumplimiento
El agente de cumplimiento comprueba si un cambio es seguro y respeta las políticas.
Busca:
tipos de archivo no admitidos
secretos o credenciales
texto de relleno
evidencia inventada
afirmaciones inseguras
secciones de informe que faltan
Flujo interno:
Compliance Agent
-> DPRMCPClient
-> get_change
-> get_diff
-> get_file_patch
-> review_changeResultado:
The Change Request receives a compliance review.
If there is a blocking issue, the review requests changes.Agente de resolución de conflictos
El agente de resolución de conflictos se utiliza cuando Git detecta un conflicto de fusión real.
Flujo interno:
Resolver Agent
-> DPRMCPClient
-> get_change
-> get_conflicts
-> create_workspace
-> read_project_file
-> read_change_file
-> edit_file
-> propose_conflict_resolutionResultado:
A new resolution Change Request is created.
The human still reviews and merges the resolution.El agente de resolución no evita la revisión. Solo propone una corrección.
Cómo se produce un conflicto real
Un conflicto ocurre cuando dos cambios editan la misma parte del mismo archivo a partir de la misma base anterior.
Ejemplo:
main has report.mdDespués:
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 conflictedDespués:
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 CREste es un flujo real de conflicto de Git, no un conflicto falso que solo existe en la interfaz.
Dónde se crean los archivos
El panel solicita una carpeta raíz.
Si la raíz es:
C:\Users\janan\dpr-mcp\dataentonces el sistema usa:
data\projects -> canonical Git repositories
data\workspaces -> isolated Git worktrees
data\dpr_mcp.db -> SQLite metadata databaseImportante:
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.Por qué se usa Git
Git se encarga de:
commits
ramas
worktrees
diffs
comprobaciones de viabilidad de la fusión
conflictos de fusión
historial de fusiones
rollback mediante nuevos commits
Este proyecto no reinventa el control de versiones. Usa Git como fuente de verdad y añade el flujo de colaboración por encima.
Por qué se usa SQLite
Git es adecuado para el historial de archivos, pero no almacena de forma natural metadatos de colaboración como:
estado de la solicitud de cambio
comentarios del revisor
aprobaciones
registros de resolución de conflictos
propiedad del espacio de trabajo
asignación de roles
registro de eventos
Esos metadatos se almacenan en SQLite.
Gobernanza humana
El sistema está diseñado intencionadamente con un humano en el bucle.
Los agentes pueden:
redactar documentos
revisar cambios
comprobar el cumplimiento
proponer resoluciones de conflictos
Las personas controlan:
la aprobación final
la fusión
el rollback
el acceso al proyecto y la selección de la raíz
Esto es importante porque el proyecto se centra en una colaboración segura asistida por IA, no en una edición autónoma sin control.
Modelo de seguridad
Las operaciones de archivos están restringidas a la raíz del repositorio y al workspace configurados.
La capa de seguridad de archivos rechaza:
rutas absolutas
path traversal
symlink escapes
null bytes
caracteres de control
nombres de archivo sensibles, como
.env, claves privadas y credenciales
Archivos relevantes:
src/dpr_mcp/files/security.py
src/dpr_mcp/files/service.py
tests/security/Configuración
Desde CMD en Windows:
cd /d C:\Users\janan\dpr-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
cd frontend
npm install
cd ..Si el entorno ya existe:
cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activateVariables de entorno
Crea un archivo .env en la raíz del proyecto si vas a usar LLMs reales.
Para Groq:
DPR_LLM_PROVIDER=groq
GROQ_API_KEY=your_key_here
DPR_LLM_MODEL=llama-3.3-70b-versatilePara OpenAI:
DPR_LLM_PROVIDER=openai
OPENAI_API_KEY=your_key_here
DPR_LLM_MODEL=gpt-5Si no hay ninguna clave configurada, los agentes se ejecutan en modo de respaldo, pero el contenido será básico.
Ejecutar el panel
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 devAbre la URL de Vite que se muestra en la terminal, normalmente:
http://127.0.0.1:5173La API del backend del panel se ejecuta en:
http://127.0.0.1:8787Ejecutar el servidor MCP directamente
cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python -m dpr_mcp.serverEsto inicia el servidor MCP sobre stdio.
Ejecutar la demo del cliente MCP real
cd /d C:\Users\janan\dpr-mcp
.venv\Scripts\activate
python examples\real_mcp_client.pyEsto demuestra:
Python client
-> MCP stdio server
-> MCP tools
-> project/workspace/file/change createdMapa del repositorio
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 docsEstado actual
Se ha implementado:
servidor MCP
cliente MCP real sobre stdio
panel de React
agentes de LangGraph
integración con LLM
repositorios de proyectos Git locales
espacios de trabajo aislados
solicitudes de cambio
revisiones
comprobaciones de cumplimiento
flujo de fusión
detección de conflictos
propuestas de resolución de conflictos
rollback
procedencia
diagramas de arquitectura
pruebas
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