small-app-dev-mcp
small-app-dev-mcp
小規模・個人開発のiOSアプリ向けに、Git / GitHub / GitHub Actions / リリース運用を 安全かつ簡単に扱うための MCP サーバー。
このMCPは「Git操作を増やすためのMCP」ではなく、「小規模アプリを安全にリリースするためのMCP」である。
Gitコマンドをそのまま公開するラッパーではなく、prepare_release や start_hotfix のように
意味のある操作単位だけを Tool として公開する。develop branch・複数release branch・必須Review・
CODEOWNERSといった大規模チーム向けGit Flowは対象外。1人〜数人で1本のアプリを継続的に
アップデートするプロジェクト専用。
構成
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プロジェクト自動検出)
を切り出しており、将来 team-app-dev-mcp のような大規模チーム向けMCPからも再利用できる。
ブランチモデル
main 常にリリース可能な正式版。直接pushしない。
release 次回リリース用の変更を蓄積する常設ブランチ。通常開発はここで行う。
hotfix/* 公開中バージョンの重大バグを緊急修正するときだけ、mainから作成する。Installation
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 環境変数でそのパスを指定して起動する前提。1つのMCPサーバープロセスは
1つのアプリリポジトリだけを扱う。
export APP_DEV_PROJECT_DIR=/path/to/your/ios-appGitHub Token
export GITHUB_TOKEN=ghp_xxx # repo スコープが必要GITHUB_TOKEN(または GH_TOKEN)が未設定でもMCPサーバー自体は起動する。get_app_status /
prepare_release / start_hotfix / sync_release などローカルGit操作だけで完結するToolは
そのまま使え、CI状態確認・PR作成・branch protectionなどGitHub APIが必要な処理だけ
GITHUB_TOKEN not set を返す。
MCP設定例
Claude Code など stdio 対応のMCPクライアントから、以下のように登録する。
{
"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選択があいまいな場合でも上書きできる。
v0.1 MVP Tools
Tool | 概要 |
| プロジェクト情報・ブランチ・working tree・CI・Release PR・Hotfix状態をまとめて確認する |
|
|
| 指定バージョンがリリース可能な状態かをチェックリストで確認する |
|
|
|
|
| Hotfixの状態を確認し、 |
| Hotfix後などに |
setup_repository / create_release_pr / start_hotfix / finish_hotfix / sync_release は
dry_run: true で「何をするか」のプレビューのみ表示できる。
setup_repository が設定する main の branch protection:
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 workflowHotfixフロー
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 は、Hotfixがmainへmergeされた後に release へ未同期の
場合、常に警告を出す(sync_release の実行を促す)。
意図的にやらないこと
mainへの直接push・force push・branch削除(Tool内部でも一切使用しない)App Store / Google Play への自動submit・自動公開(GitHub側の準備が整うところまでで停止する)
App Store Description・Screenshots・Privacy・IAP・Review submissionの管理(
appstore-connect-mcp側の責務)develop branch、複数release branch、必須Review、CODEOWNERSなど大規模チーム向け運用
Android / Flutter / React Native対応、AI Release Notes、UI Dashboard、multi-user・organization管理
これらは仕様書のスコープ外であり、必要になれば別の team-app-dev-mcp として実装する。
GitHub Actions の動作
CI (
ci.yml):mainへのPR、およびreleaseへのpushで発火。Checkout → Build のみ(v0.1では テスト実行は行わない)。目的は壊れたコードがmainへ入るのを防ぐこと。Release (
release.yml):mainへのPRがmergeされ、かつマージされたブランチがreleaseまたはhotfix/*の場合のみ発火(feature/*・chore/*・docs/*などの通常マージは 対象外)。Checkout → Build → Archive可能状態の確認 → Release preparation summary の出力で停止する。 実際の審査提出・公開は行わない。
setup_repository が生成する ci.yml / release.yml は、検出できたXcodeプロジェクト/schemeを
埋め込んだ状態で生成される。プロジェクト/schemeを自動検出できない場合はプレースホルダー入りの
workflowを書かず、生成をスキップして .appdev.yml への手動指定を促す。
既知の制約 (v0.1)
iOS + GitHub のみを想定
CI workflow はビルドのみ(テストターゲットの自動検出・実行は行わない)
run_preflight/check_ci/generate_release_notesなどはv0.2以降App Store Connect 側の操作(Version作成・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