small-app-dev-mcp
small-app-dev-mcp
Для iOS-приложений небольших команд и индивидуальной разработки — MCP-сервер для безопасного и простого управления Git / GitHub / GitHub Actions / процессом релизов.
Этот MCP — не «MCP для добавления Git-операций», а «MCP для безопасного релиза небольших приложений».
Это не обёртка, открывающая Git-команды как есть: в качестве Tool публикуются только осмысленные единицы операций, такие как prepare_release и start_hotfix. Git Flow для крупных команд — develop branch, несколько release branch, обязательное ревью, CODEOWNERS — не поддерживается. Предназначено для проектов, в которых один или несколько человек постоянно обновляют одно приложение.
Структура
packages/
├── git-core/ # Git / GitHub / PR / Actions / project-detection / validation の共通ライブラリ
└── small-app-dev-mcp/ # MCPサーバー本体(v0.1 MVP)git-core выделяет низкоуровневую реализацию (Git-операции, клиент GitHub API, получение PR/Actions, автоматическое обнаружение iOS-проектов) и может быть переиспользована в будущем из MCP для крупных команд, например team-app-dev-mcp.
Модель ветвления
main 常にリリース可能な正式版。直接pushしない。
release 次回リリース用の変更を蓄積する常設ブランチ。通常開発はここで行う。
hotfix/* 公開中バージョンの重大バグを緊急修正するときだけ、mainから作成する。Установка
Версии Node / pnpm зафиксированы через mise (.mise.toml).
mise install # .mise.toml が指定する node / pnpm を導入
pnpm install # pnpm-workspace.yaml 経由でworkspace一括install
pnpm run build # 各パッケージをビルド (pnpm -r --if-present run build)Целевой репозиторий
MCP-сервер запускается с репозиторием целевого приложения в качестве рабочей директории (working directory) или с указанием этого пути через переменную окружения APP_DEV_PROJECT_DIR. Один процесс MCP-сервера работает только с одним репозиторием приложения.
export APP_DEV_PROJECT_DIR=/path/to/your/ios-appТокен GitHub
export GITHUB_TOKEN=ghp_xxx # repo スコープが必要MCP-сервер запускается даже без установленного GITHUB_TOKEN (или GH_TOKEN). Tools, которые выполняются только локальными Git-операциями, — get_app_status / prepare_release / start_hotfix / sync_release и т.п. — работают как обычно; только операции, требующие GitHub API, такие как проверка статуса CI, создание PR, branch protection, возвращают GITHUB_TOKEN not set.
Пример настройки MCP
Из MCP-клиента, поддерживающего stdio, например Claude Code, регистрация выполняется следующим образом.
{
"mcpServers": {
"small-app-dev": {
"command": "node",
"args": ["/path/to/small-app-dev-mcp/packages/small-app-dev-mcp/dist/index.js"],
"env": {
"APP_DEV_PROJECT_DIR": "/path/to/your/ios-app",
"GITHUB_TOKEN": "ghp_xxx"
}
}
}
}Если в корне целевого проекта нет .appdev.yml, setup_repository создаст его (пункты, которые могут быть определены автоматически, можно опустить).
.appdev.yml
version: 1
project:
type: ios
# 自動検出できる場合は省略可能
# path: Yohaku.xcodeproj / Yohaku.xcworkspace
# scheme: Yohaku
workflow:
production_branch: main
development_branch: release
hotfix_prefix: hotfix/
branches:
direct_commit:
main: false
release: true
release:
merge_strategy: squash
require:
clean_worktree: true
ci: true
auto_submit_review: false
auto_publish: false
hotfix:
base_branch: main
sync_back_to_release: true
github:
require_pull_request_to_main: true
block_force_push_main: trueПриоритет настроек: явное указание в .appdev.yml > автоматическое обнаружение > default. Указав project.path / project.scheme, можно переопределить выбор при неоднозначности xcworkspace/xcodeproj или scheme.
Инструменты MVP v0.1
Tool | Описание |
| Проверяет сводно информацию о проекте, ветках, working tree, CI, Release PR и состоянии Hotfix. |
| Создаёт |
| Проверяет по чек-листу, готова ли указанная версия к релизу. |
| Создаёт PR |
| Создаёт ветку |
| Проверяет состояние Hotfix и создаёт PR |
| После Hotfix и т.п. сливает изменения |
setup_repository / create_release_pr / start_hotfix / finish_hotfix / sync_release при dry_run: true могут показать только предварительный просмотр того, что будет сделано.
Branch protection для main, устанавливаемая setup_repository:
Require pull request before merging:
trueRequired approving reviews:
0(PR обязателен, но обязательное ревью другими людьми не требуется — в небольших/личных проектах часто нет ревьюеров. «Обязательность PR» и «обязательность ревью» — разные настройки)Require status checks:
trueAllow force pushes:
falseAllow deletions:
false
Основной рабочий процесс
setup_repository
↓
main / release 運用をセットアップ
↓
普段は release で開発
↓
get_app_status
↓
prepare_release
↓
create_release_pr
↓
release → main を merge
↓
GitHub Actions Release workflowПроцесс Hotfix
main
↓
start_hotfix(name: "startup crash") → hotfix/startup-crash
↓
修正をcommit
↓
finish_hotfix(name: "startup crash") → hotfix/startup-crash → main のPR
↓
merge → Release workflow発火
↓
sync_release → main の変更を release へ同期get_app_status и prepare_release всегда выводят предупреждение, если после merge Hotfix в main изменения не синхронизированы с release (побуждая выполнить sync_release).
Намеренно не делается
Прямой push в
main, force push, удаление веток (не используются даже внутри Tools)Автоматическая отправка и публикация в App Store / Google Play (остановка на этапе готовности со стороны GitHub)
Управление описанием App Store, скриншотами, политикой конфиденциальности, IAP и отправкой на ревью (это обязанность
appstore-connect-mcp)Операции для крупных команд: develop branch, несколько release branch, обязательное ревью, CODEOWNERS и т.п.
Поддержка Android / Flutter / React Native, AI Release Notes, UI Dashboard, multi-user и управление organization.
Это вне рамок спецификации; при необходимости будет реализовано как отдельный team-app-dev-mcp.
Работа GitHub Actions
CI (
ci.yml): запускается при PR вmainи при push вrelease. Только Checkout → Build (в v0.1 тесты не выполняются). Цель — предотвратить попадание сломанного кода в main.Release (
release.yml): запускается только когда PR вmainсмёржен, и смёрженная ветка —releaseилиhotfix/*(обычные merge изfeature/*,chore/*,docs/*и т.п. не учитываются). Выполняются Checkout → Build → проверка возможности архивации → вывод Release preparation summary, после чего процесс останавливается. Фактическая отправка на ревью и публикация не выполняется.
ci.yml / release.yml, генерируемые setup_repository, создаются с уже встроенными обнаруженными Xcode-проектом/scheme. Если проект/scheme не удаётся обнаружить автоматически, workflow с плейсхолдерами не создаётся — генерация пропускается и предлагается указать их вручную в .appdev.yml.
Известные ограничения (v0.1)
Предполагается только iOS + GitHub
CI workflow — только сборка (автоматическое обнаружение и запуск тестовых таргетов не выполняется)
run_preflight/check_ci/generate_release_notesи т.п. — начиная с v0.2Операции на стороне App Store Connect (создание версии, Submit и т.п.) вне рамок. Предполагается использование в сочетании с отдельным MCP (
appstore-connect-mcp).
This server cannot be installed
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 Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Appcircle mobile CI/CD platform.
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
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/tomoki013/small-app-dev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server