AI開発自動化日記 #1
Claudeとの会話・ディスカッションから直接タスク化!ForgejoへIssueを自動起票するMCP環境の構築(npx・Docker対応)
アイデアの整理からタスク起票までをClaudeとのやり取りだけで完結。安全なアクセス権限設計と、選べる2つのセットアップ手順を解説します。
1. はじめに:タスク起票の手間をゼロにする
弊社ではセルフホスティングのForgejoのIssueでタスク管理をしています。日々サービスの改善や新規機能の開発を進める中で、以下のような悩みを抱えたことはないでしょうか?
- アイデアや修正指示を開発タスク(Issue)に文章化して整理する時間が取れない
- Git(Forgejo / GitHub)の管理画面を開いてフォーマット通りに入力するのが手間
- AIとディスカッションして良い修正案が出たのに、結局手動でGitにコピペして起票している
この手動の手間をなくすため、今回は「Claudeと対話やブレストをするだけで、Forgejoに安全にIssue(タスク)が自動作成される環境」を構築しました。今回はその権限設計と、npx・Docker 双方を使った具体的な設定手順を解説します。
2. 今回構築するフローの全体像
今回の取り組みは、将来的な「完全自動開発パイプライン」の第1歩となる**Issue自動起票フェーズ**です。
│
▼ ★【今回構築】Claude MCPが会話文脈から要件定義してIssue化
【Forgejo】Issueが自動起票される
│
▼ (次回構築予定)AIエージェントがIssueを検知して自動でコード修正・テスト
【プレビュー環境】発行された確認用URLで画面動作をチェックして完了!
3. セキュリティ設計:事故を防ぐ「最小権限」の原則
メインアカウントの特権(管理者権限)トークンをAIに渡すのは非常に危険です。AIの誤動作やプロンプトインジェクションによって、「リポジトリ全体が削除される」「メインブランチが書き換わる」リスクがあるためです。
そこで、Forgejoの詳細権限(Fine-grained permissions)を活用し、Issue作成に必要な最小限の権限のみを与えます。
Issue起票用のトークンは admin を「No access」にし、repository も「Read」までに留めます。コード修正権限(Write)を持たせないことで、誤ってメインコードが破壊されるリスクを回避できます。
| 権限項目 | 設定値 | 設定する理由 |
|---|---|---|
| issue | Read and write | 会話内容から要件をまとめ、Issueを作成・編集するため |
| repository | Read | 構造やコードを参照するが、直接変更はさせない(書き換え不可) |
| user / organization | Read | API連携時のユーザー識別エラーを防ぐため |
| admin | No access | リポジトリ削除などの破壊的操作を物理的に遮断する |
4. 構築手順:選べる2つの実行パターン(npx / Docker)
Forgejo MCP サーバーを Claude Desktop で動かすには、軽量な npx 方式 と、コンテナで独立して動く Docker 方式 の2種類があります。お好みの環境に合わせて設定ファイルを記述してください。
ステップ 1:ForgejoでAPIトークンを発行
Forgejoの「設定」➔「アプリケーション」➔「アクセストークンの生成」から、上記の権限表通りに設定したトークンを発行します。
ステップ 2:Claude Desktopの設定ファイルを編集
Claude Desktopのメニュー「Settings…」➔「Developer」➔「Edit Config」を開き、claude_desktop_config.json に以下のいずれかのパターンを追加します。
Node.jsが入っていればDocker不要で軽快に動作します。
{
"mcpServers": {
"forgejo-issue": {
"command": "npx",
"args": [
"-y",
"@ric_/forgejo-mcp"
],
"env": {
"FORGEJO_URL": "https://your-forgejo-domain.com",
"FORGEJO_TOKEN": "発行したトークン"
}
}
}
}
Docker Desktopが起動している環境で実行します。GUIアプリからのパスエラーを防ぐため docker の絶対パスを指定します。
{
"mcpServers": {
"forgejo-issue": {
"command": "/usr/local/bin/docker",
"args": [
"run", "-i", "--rm",
"-e", "FORGEJO_URL=https://your-forgejo-domain.com",
"-e", "FORGEJO_TOKEN=発行したトークン",
"ghcr.io/raohwork/forgejo-mcp"
]
}
}
}
ステップ 3:Claude Desktopを完全再起動
設定ファイルを保存後、Claude Desktopを完全再起動(Command + Q)します。「Developer」設定画面で forgejo-issue : Running(青色マーク)が表示されれば完了です!
5. 動作確認:対話からのタスク起票テスト
設定完了後、Claudeに以下のように話しかけてみました。
タイトル: [UI改善] スマホ表示時のログインボタンサイズおよびタップ領域の拡大
要件: タップ領域を48px以上に拡大し、視認性・操作性を向上
URL: https://git.example.com/org/repo/issues/12」
ブラウザでForgejoを開くことなく、AIとディスカッションした文脈から適切なタイトル・要件がセットされたIssueが自動作成されました。

コメント