Cross Repo Ops MCP
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-конфиге. В ядре не зашита никакая специфичная для проекта логика.
Модули
Модуль | Ответственность |
| Централизованная политика возможностей репозитория (список разрешений, флаги writable/pushable, исключённые пути, список разрешённых задач, лимиты, таймауты) |
| Единая авторитетная граница проверки путей (проверки обхода, симлинков, абсолютных путей, containment) |
| Список дерева, поиск ripgrep, ограниченное чтение файлов, git status/diff |
| Применение патчей с проверкой контекста с поддержкой создания/изменения |
| Операции с ветками, коммитами и push с защитными механизмами |
| Разрешение и выполнение именованных задач из списка разрешений |
| stdio JSON-RPC MCP сервер |
| Типы ошибок |
Модель безопасности
Список разрешений репозиториев: Доступны только те репозитории, которые явно перечислены в политике.
Флаги возможностей:
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
Инструмент | Описание |
| Список файлов/каталогов с исключениями безопасности |
| Поиск ripgrep с ограниченным выводом |
| Чтение ограниченного фрагмента нечувствительного текстового файла |
| Просмотр статуса git |
| Просмотр неиндексированных/индексированных/коммит-диффов |
| Применение патча с проверкой контекста (только writable-репозитории) |
| Запуск одобренной именованной задачи (только по списку разрешений) |
| Список/создание/переключение веток (writable-репозитории для создания/переключения) |
| Добавление в индекс и коммит явных файлов (только writable-репозитории) |
| Push в origin (только pushable-репозитории) |
Тестирование
python3 -m unittest tests.test_security tests.test_adversarial -v32 теста, покрывающие:
Разрешённые и заблокированные чтения
Отклонение обхода путей, абсолютных путей и побега через симлинки
Блокировка чтения/записи/коммита чувствительных файлов
Принудительное соблюдение writable и read-only репозиториев
Патч с корректным/устаревшим контекстом
Патч, нацеленный на исключённые файлы
Список разрешений именованных задач (успех, неизвестное имя, попытка shell-инъекции)
Таймаут задачи и усечение вывода
Git status/diff
Защита от инъекций в именах веток
Защита коммитов (пустое сообщение, чувствительные файлы, массовое добавление в индекс, предварительно проиндексированные файлы)
Отклонение push для non-pushable репозиториев
Обработка отсутствующих аргументов сервером
Лицензия
MIT
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
- AlicenseNot gradedqualityCmaintenanceEnables 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
- FlicenseNot gradedqualityCmaintenanceExposes 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.
- AlicenseAqualityCmaintenanceEnables policy-first defensive security operations for MCP, providing repository and web-security analysis with controlled authorization, scoped execution, and auditability.9MIT
- AlicenseAqualityBmaintenanceEnables 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.17MIT
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.
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/DHCross/cross-repo-ops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server