Skip to main content
Glama
DHCross

Cross Repo Ops MCP

by DHCross

Cross Repo Ops MCP

Eine repository-neutrale MCP-Fähigkeitsebene (Model Context Protocol) für kontrollierte lokale Repository-Operationen.

Was es tut

Cross Repo Ops MCP bietet einen sicherheitsgehärteten stdio-JSON-RPC-Server, der begrenzte, richtliniengesteuerte Operationen auf lokalen Git-Repositories bereitstellt:

  • Lesen: Baumauflistung, ripgrep-Suche, begrenzte Dateilesevorgänge, git status/diff

  • Schreiben: kontextgeprüfte Patches mit create/modify-Unterstützung (nur writable Repositories)

  • Aufgaben: Ausführung genehmigter benannter Aufgaben (nur Zulassungsliste, keine beliebigen Shell-Befehle)

  • Git: Branches auflisten/erstellen/wechseln, Commit (nur explizit angegebene Dateien), Push (nur origin, nur pushable Repositories)

Related MCP server: void-bridge

Architektur

Cross Repo Ops MCP ist eine repository-neutrale Fähigkeitsebene für kontrollierte lokale Repository-Operationen. Es ist dafür konzipiert, neben einem XcodeIDEapp-Projekt zu liegen, und übernimmt Ideen aus IDE-Dashboard-Scaffolding-Mustern, bleibt jedoch generisch und hängt von keiner spezifischen IDE oder Projektstruktur ab.

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

Der Server ist richtliniengetrieben: Repositories, Fähigkeiten, ausgeschlossene Pfade und genehmigte Aufgaben werden alle in einer JSON-Konfiguration deklariert. Im Kern ist keine projektspezifische Logik fest verdrahtet.

Module

Module

Verantwortung

policy.py

Zentrale Repository-Fähigkeitsrichtlinie (Zulassungsliste, writable/pushable-Flags, ausgeschlossene Pfade, Aufgaben-Zulassungsliste, Grenzen, Timeouts)

guard.py

Einzige maßgebliche Pfadvalidierungsgrenze (Traversal-, Symlink-, Absolutpfad- und Containment-Prüfungen)

repo.py

Baumauflistung, ripgrep-Suche, begrenztes Dateilesen, git status/diff

patch.py

Kontextgeprüfte Patch-Anwendung mit create/modify-Unterstützung

git.py

Branch-, Commit- und Push-Operationen mit Sicherheitsvorkehrungen

tasks.py

Auflösung und Ausführung benannter Aufgaben über die Zulassungsliste

server.py

stdio-JSON-RPC-MCP-Server

errors.py

Fehlertypen

Sicherheitsmodell

  • Repository-Zulassungsliste: Nur Repositories, die explizit in der Richtlinie aufgeführt sind, sind zugänglich.

  • Fähigkeits-Flags: writable und pushable gelten pro Repository und sind standardmäßig false.

  • Pfad-Containment: Alle Pfade werden aufgelöst und gegen die Repository-Wurzel geprüft. Traversal (..), absolute Pfade und Symlinks werden abgelehnt.

  • Ausschluss sensibler Dateien: .env, *.pem, API-Schlüssel, Tokens, Anmeldedaten und Binärdateien sind vom Lesen und Schreiben ausgeschlossen.

  • Patch-Sicherheit: old_text muss exakt übereinstimmen; bei mehreren Übereinstimmungen ist context erforderlich, um eindeutig zu unterscheiden. create=true verweigert das Überschreiben vorhandener Dateien.

  • Aufgaben-Zulassungsliste: Aufgaben werden anhand des Namens aus einer serverseitigen Zulassungsliste aufgelöst, nicht aus Benutzereingaben. Keine beliebigen Shell-Befehle.

  • Git-Sicherheit: Bulk-Staging (git add -A) wird abgelehnt. Commits sind auf explizit aufgeführte Dateien beschränkt. Sensible Dateien können nicht committet werden. Branchnamen werden gegen Injektion validiert. Push ist auf origin beschränkt, nur für pushable Repositories.

  • Ausgabelimits: Alle Operationen haben konfigurierbare Ausgabegrenzen (gelesene Zeichen, Suchergebnisse, Baum-Einträge, Diff-Zeichen, Aufgabenausgabe).

Installation

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

Verwendung

MCP-Server ausführen

python3 -m cross_repo_ops

Der Server lauscht über stdin/stdout auf JSON-RPC-2.0-Nachrichten.

Benutzerdefinierte Richtlinie

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

Format der Richtliniendatei

{
  "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
      }
    }
  }
}

MCP-Tools

Tool

Beschreibung

repo_tree

Dateien/Verzeichnisse mit Sicherheitsausschlüssen auflisten

repo_search

ripgrep-Suche mit begrenzter Ausgabe

repo_read

Einen begrenzten Ausschnitt einer nicht sensiblen Textdatei lesen

git_status

git status anzeigen

git_diff

Unstaged-/Staged-/Commit-Diffs anzeigen

apply_patch

Einen kontextgeprüften Patch anwenden (nur writable Repositories)

run_task

Eine genehmigte benannte Aufgabe ausführen (nur Zulassungsliste)

git_branch

Branches auflisten/erstellen/wechseln (writable Repositories für create/switch)

git_commit

Explizite Dateien stagen und committen (nur writable Repositories)

git_push

Push zu origin (nur pushable Repositories)

Tests

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

32 Tests, die Folgendes abdecken:

  • Erlaubte und blockierte Lesevorgänge

  • Ablehnung von Pfad-Traversal, absoluten Pfaden und Symlink-Escapes

  • Blockierung des Lesens/Schreibens/Committens sensibler Dateien

  • Durchsetzung von writable gegenüber read-only Repositories

  • Patch mit korrektem/veraltetem Kontext

  • Patch, der auf ausgeschlossene Dateien abzielt

  • Zulassungsliste für benannte Aufgaben (Erfolg, unbekannter Name, Shell-Injektionsversuch)

  • Task-Timeout und Ausgabekürzung

  • git status/diff

  • Schutzmaßnahmen gegen Branchnamen-Injektion

  • Commit-Schutzmaßnahmen (leere Nachricht, sensible Dateien, Bulk-Staging, bereits gestagte Dateien)

  • Push-Ablehnung für nicht pushable Repositories

  • Behandlung fehlender Argumente durch den Server

Lizenz

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