Skip to main content
Glama
DHCross

Cross Repo Ops MCP

by DHCross

Cross Repo Ops MCP

Нейтральный к репозиторию уровень возможностей MCP (Model Context Protocol) для контролируемых операций с локальными репозиториями.

Что он делает

Cross Repo Ops MCP предоставляет защищённый stdio JSON-RPC сервер, который обеспечивает ограниченные, контролируемые политикой операции с локальными git-репозиториями:

  • Чтение: список дерева, поиск ripgrep, ограниченное чтение файлов, git status/diff

  • Запись: патчи с проверкой контекста с поддержкой создания/изменения (только для writable-репозиториев)

  • Задачи: выполнение одобренных именованных задач (только по списку разрешений, без произвольного shell)

  • Git: список/создание/переключение веток, коммит (только явно указанные файлы), push (только origin, только для pushable-репозиториев)

Related MCP server: void-bridge

Архитектура

Cross Repo Ops MCP — это нейтральный к репозиторию уровень возможностей для контролируемых операций с локальными репозиториями. Он спроектирован для размещения рядом с проектом XcodeIDEapp, заимствуя идеи из паттернов каркаса IDE-дашбордов, но остаётся универсальным и не зависит от какой-либо конкретной IDE или структуры проекта.

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

Сервер управляется политикой: репозитории, возможности, исключённые пути и одобренные задачи объявляются в JSON-конфиге. В ядре не зашита никакая специфичная для проекта логика.

Модули

Модуль

Ответственность

policy.py

Централизованная политика возможностей репозитория (список разрешений, флаги writable/pushable, исключённые пути, список разрешённых задач, лимиты, таймауты)

guard.py

Единая авторитетная граница проверки путей (проверки обхода, симлинков, абсолютных путей, containment)

repo.py

Список дерева, поиск ripgrep, ограниченное чтение файлов, git status/diff

patch.py

Применение патчей с проверкой контекста с поддержкой создания/изменения

git.py

Операции с ветками, коммитами и push с защитными механизмами

tasks.py

Разрешение и выполнение именованных задач из списка разрешений

server.py

stdio JSON-RPC MCP сервер

errors.py

Типы ошибок

Модель безопасности

  • Список разрешений репозиториев: Доступны только те репозитории, которые явно перечислены в политике.

  • Флаги возможностей: writable и pushable задаются для каждого репозитория, по умолчанию false.

  • Ограничение путей: Все пути разрешаются и проверяются относительно корня репозитория. Обход (..), абсолютные пути и симлинки отклоняются.

  • Исключение чувствительных файлов: .env, *.pem, API-ключи, токены, учётные данные и бинарные файлы блокируются для чтения и записи.

  • Безопасность патчей: old_text должен совпадать точно; при нескольких совпадениях требуется context для устранения неоднозначности. create=true отказывается перезаписывать существующие файлы.

  • Список разрешений задач: Задачи разрешаются по имени из серверного списка разрешений, а не из пользовательского ввода. Никаких произвольных shell-команд.

  • Безопасность Git: Массовое добавление в индекс (git add -A) отклоняется. Коммиты ограничены явно перечисленными файлами. Чувствительные файлы не могут быть закоммичены. Имена веток проверяются на инъекции. Push ограничен origin и только для pushable-репозиториев.

  • Лимиты вывода: Все операции имеют настраиваемые ограничения вывода (символы при чтении, результаты поиска, записи дерева, символы diff, вывод задач).

Установка

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

Использование

Запуск MCP-сервера

python3 -m cross_repo_ops

Сервер принимает сообщения JSON-RPC 2.0 через stdin/stdout.

Пользовательская политика

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

Формат файла политики

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

Инструмент

Описание

repo_tree

Список файлов/каталогов с исключениями безопасности

repo_search

Поиск ripgrep с ограниченным выводом

repo_read

Чтение ограниченного фрагмента нечувствительного текстового файла

git_status

Просмотр статуса git

git_diff

Просмотр неиндексированных/индексированных/коммит-диффов

apply_patch

Применение патча с проверкой контекста (только writable-репозитории)

run_task

Запуск одобренной именованной задачи (только по списку разрешений)

git_branch

Список/создание/переключение веток (writable-репозитории для создания/переключения)

git_commit

Добавление в индекс и коммит явных файлов (только writable-репозитории)

git_push

Push в origin (только pushable-репозитории)

Тестирование

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

32 теста, покрывающие:

  • Разрешённые и заблокированные чтения

  • Отклонение обхода путей, абсолютных путей и побега через симлинки

  • Блокировка чтения/записи/коммита чувствительных файлов

  • Принудительное соблюдение writable и read-only репозиториев

  • Патч с корректным/устаревшим контекстом

  • Патч, нацеленный на исключённые файлы

  • Список разрешений именованных задач (успех, неизвестное имя, попытка shell-инъекции)

  • Таймаут задачи и усечение вывода

  • Git status/diff

  • Защита от инъекций в именах веток

  • Защита коммитов (пустое сообщение, чувствительные файлы, массовое добавление в индекс, предварительно проиндексированные файлы)

  • Отклонение push для non-pushable репозиториев

  • Обработка отсутствующих аргументов сервером

Лицензия

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