Skip to main content
Glama
DHCross

Cross Repo Ops MCP

by DHCross

Cross Repo Ops MCP

Una capa de capacidades MCP (Model Context Protocol) independiente del repositorio para operaciones controladas en repositorios locales.

Qué hace

Cross Repo Ops MCP proporciona un servidor stdio JSON-RPC reforzado en seguridad que expone operaciones acotadas y controladas por políticas en repositorios git locales:

  • Lectura: listado de árbol, búsqueda con ripgrep, lecturas de archivos acotadas, git status/diff

  • Escritura: parches verificados por contexto con soporte de creación/modificación (solo repositorios con permiso de escritura)

  • Tareas: ejecución de tareas nombradas aprobadas (solo allowlist, sin shell arbitrario)

  • Git: listar/crear/cambiar ramas, commit (solo archivos explícitos), push (solo origin, solo repositorios con permiso de push)

Related MCP server: void-bridge

Arquitectura

Cross Repo Ops MCP es una capa de capacidades independiente del repositorio para operaciones controladas en repositorios locales. Está diseñado para ubicarse junto a un proyecto XcodeIDEapp, tomando ideas de patrones de andamiaje de paneles de IDE, pero sigue siendo genérico y no depende de ningún IDE o estructura de proyecto específica.

Cross Repo Ops MCP = controlled local repository actions (read, patch, git, tasks)

El servidor se basa en políticas: los repositorios, las capacidades, las rutas excluidas y las tareas aprobadas se declaran en una configuración JSON. No hay lógica específica del proyecto codificada en el núcleo.

Módulos

Módulo

Responsabilidad

policy.py

Política centralizada de capacidades del repositorio (allowlist, flags writable/pushable, rutas excluidas, allowlist de tareas, límites, timeouts)

guard.py

Única frontera autoritativa de validación de rutas (comprobaciones de traversal, symlink, ruta absoluta y contención)

repo.py

Listado de árbol, búsqueda con ripgrep, lectura de archivos acotada, git status/diff

patch.py

Aplicación de parches verificados por contexto con soporte de creación/modificación

git.py

Operaciones de rama, commit y push con salvaguardas de seguridad

tasks.py

Resolución y ejecución de la allowlist de tareas nombradas

server.py

Servidor MCP stdio JSON-RPC

errors.py

Tipos de error

Modelo de seguridad

  • Allowlist de repositorios: Solo los repositorios explícitamente listados en la política son accesibles.

  • Flags de capacidad: writable y pushable son por repositorio, con valor predeterminado false.

  • Contención de rutas: Todas las rutas se resuelven y verifican contra la raíz del repositorio. Se rechazan traversal (..), rutas absolutas y symlinks.

  • Exclusión de archivos sensibles: .env, *.pem, claves de API, tokens, credenciales y archivos binarios están bloqueados para lectura y escritura.

  • Seguridad de parches: old_text debe coincidir exactamente; las coincidencias múltiples requieren context para desambiguar. create=true se niega a sobrescribir archivos existentes.

  • Allowlist de tareas: Las tareas se resuelven por nombre desde una allowlist del lado del servidor, no desde la entrada del usuario. No hay comandos de shell arbitrarios.

  • Seguridad de Git: Se rechaza el staging masivo (git add -A). Los commits se limitan a archivos explícitamente listados. Los archivos sensibles no se pueden incluir en commits. Los nombres de rama se validan contra inyección. El push se limita a origin solo para repositorios con permiso de push.

  • Límites de salida: Todas las operaciones tienen topes de salida configurables (caracteres de lectura, resultados de búsqueda, entradas de árbol, caracteres de diff, salida de tareas).

Instalación

# No external dependencies required — Python 3.10+ standard library only.
cd cross-repo-ops
pip install -e .  # optional, for package install

Uso

Ejecutar el servidor MCP

python3 -m cross_repo_ops

El servidor escucha en stdin/stdout mensajes JSON-RPC 2.0.

Política personalizada

CROSS_REPO_OPS_CONFIG=/path/to/policy.json python3 -m cross_repo_ops

Formato del archivo de política

{
  "repos": {
    "myrepo": {
      "root": "/path/to/repo",
      "writable": true,
      "pushable": false
    }
  },
  "tasks": {
    "myrepo": {
      "build": {
        "command": ["xcodebuild", "-scheme", "MyApp", "build"],
        "cwd": "{root}",
        "timeout": 180
      },
      "test": {
        "command": ["xcodebuild", "test", "-scheme", "MyApp"],
        "cwd": "{root}",
        "timeout": 300
      }
    }
  }
}

Herramientas MCP

Herramienta

Descripción

repo_tree

Lista archivos/directorios con exclusiones de seguridad

repo_search

Búsqueda con ripgrep y salida acotada

repo_read

Lee un fragmento acotado de un archivo de texto no sensible

git_status

Inspecciona el estado de git

git_diff

Ver diffs sin stagear, stageados y de commits

apply_patch

Aplica un parche verificado por contexto (solo repositorios con permiso de escritura)

run_task

Ejecuta una tarea nombrada aprobada (solo allowlist)

git_branch

Listar/crear/cambiar ramas (repositorios con permiso de escritura para crear/cambiar)

git_commit

Hace stage y commit de archivos explícitos (solo repositorios con permiso de escritura)

git_push

Push a origin (solo repositorios con permiso de push)

Pruebas

python3 -m unittest tests.test_security tests.test_adversarial -v

32 pruebas que cubren:

  • Lecturas permitidas y bloqueadas

  • Rechazo de traversal de rutas, rutas absolutas y escapes por symlink

  • Bloqueo de lectura/escritura/commit de archivos sensibles

  • Aplicación de repositorios con permiso de escritura frente a solo lectura

  • Parche con contexto correcto o desactualizado

  • Parche dirigido a archivos excluidos

  • Allowlist de tareas nombradas (éxito, nombre desconocido, intento de inyección de shell)

  • Timeout de tarea y truncamiento de salida

  • Git status/diff

  • Salvaguardas contra inyección en nombres de rama

  • Salvaguardas de commit (mensaje vacío, archivos sensibles, staging masivo, archivos pre-stageados)

  • Rechazo de push para repositorios sin permiso de push

  • Manejo de argumentos faltantes en el servidor

Licencia

MIT

F
license - not found
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
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to safely interact with local code repositories through MCP tools for search, context building, and workspace management, while keeping all operations local and human-controlled for patch approval.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes a secure, path-confined bridge to a local workspace and git remotes, enabling MCP clients to search, read, write, reset files, and perform git operations.
  • A
    license
    A
    quality
    B
    maintenance
    Enables ChatGPT and Codex to safely work with explicitly authorized local project folders through MCP, providing constrained file reading, searching, patch editing, Git inspection, and whitelisted tasks without exposing arbitrary shell, deletion, or deployment capabilities.
    17
    MIT

View all related MCP servers

Related MCP Connectors

  • Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi

  • A MCP server built for developers enabling Git based project management with project and personal…

  • Git-native policy layer for AI agents: check_action verdicts against rules approved via PR.

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/DHCross/cross-repo-ops'

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