mcpField
S
Stakpak Agent CLI

Stakpak Agent CLI

ローカル
stakpak.dev開発ツール1.8k16 週間前に更新

Stakpak Agent CLI について

Stakpak Agent CLI は、マシン上で 24 時間稼働し、アプリケーションの維持を行い、人の判断が必要な場合のみ通知するオープンソースのDevOpsエージェントです。シークレット置換とネットワークレベルのガードレールにより、LLM が本番環境の認証情報に触れるリスクを抑えます。

主な機能

  1. 0124 時間稼働の自律ランタイム(Autopilot)
  2. 02シークレット置換による認証情報の非公開化
  3. 03Warden ガードレールによる破壊的操作の遮断
  4. 04DevOps Rulebooks の組み込みライブラリ
  5. 05非同期タスク管理と進捗のストリーミング
  6. 06Terraform や Kubernetes コードのローカルインデックス

活用シーン

  1. 01インフラコードの生成と CI/CD の設定
  2. 02Kubernetes ワークロードの問題調査
  3. 03進捗を追跡しながらのアプリケーションデプロイ自動化

MCP 対応

Stakpak は複数の上流 MCP サーバーを束ねる MCP プロキシとして動作するほか、組み込みツールを MCP サーバーとしてクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cli": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
起動コマンドdocker run -i --rm pull

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocipull

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

README の画像

コードを自動操縦でリリースしましょう。

お使いのマシン上で24時間365日稼働し、アプリを動かし続け、ユーザーの対応が必要なときだけ通知するオープンソースのエージェントです。PaaSの利点をすべて備え、ロックインはありません。


README の画像

README の画像 README の画像 README の画像 README の画像

README の画像

README の画像

:star: より多くの開発者に届け、Stakpak コミュニティを成長させるため、ご協力ください。このリポジトリにスターを付けてください!

til

今すぐ Stakpak を試す
curl -sSL https://stakpak.dev/install.sh | sh # install Stakpak
stakpak init # understand your apps and tech stack
stakpak autopilot up # start the autonomous agent, running 24/7 in the background

その他のインストール方法はこちら...

ほとんどの AI エージェントに DevOps を任せることはできません。たった1つのミスで、本番環境が台無しになる可能性があります。 Stakpak は、次の点で異なります。

  • シークレットの置換 - LLM は認証情報を見ることなく、それらを使って作業できます
  • Warden のガードレール - ネットワークレベルのポリシーにより、破壊的な操作が実行前にブロックされます
  • DevOps プレイブックを内蔵 - Stakpak Rulebooks に、厳選された DevOps ナレッジライブラリを収録しています

本番環境へのアクセス権を LLM に与えることなく、インフラストラクチャコードの生成、Kubernetes のデバッグ、CI/CD の設定、デプロイの自動化ができます。

🤖 オートパイロット(24時間365日の自律ランタイム)

新しいライフサイクルエイリアスを使って、1つのコマンドでセットアップ、起動、停止できます。

stakpak up        # alias for: stakpak autopilot up
stakpak down      # alias for: stakpak autopilot down

正式なサブコマンドも使用できます。

stakpak autopilot up
stakpak autopilot status
stakpak autopilot logs
stakpak autopilot down
stakpak autopilot doctor
オートパイロットの前提条件

リモート VM でオートパイロットを実行する前に、以下を確認してください。

  • Docker がインストールされ、現在のユーザーからアクセスできること
  • オートパイロットとサンドボックスを安定して実行するには、2GB 以上の RAM を推奨します
  • メモリの少ない Linux ホストでは、スワップの使用を強く推奨します
  • Linux のユーザーサービスをログアウト後も維持するには、linger の設定が必要な場合があります

stakpak up は起動前にプリフライトチェックを実行するようになりました。また、初回起動前のデプロイ準備状況の確認には、stakpak autopilot doctor を使用できます。

stakpak autopilot doctor
stakpak up

こちらもご覧ください:cli/README.md

統合設定(プロファイル+自動操縦の接続設定)
  • ~/.stakpak/config.toml:プロファイルの動作(model、allowed_tools、auto_approve、system_prompt、max_turns、プロバイダーの認証情報)
  • ~/.stakpak/autopilot.toml:実行時の接続設定(schedules、channels、通知ルート、サービス/サーバーの設定)

スケジュールやチャネルでは profile = "name" を指定し、動作設定はプロファイル定義にまとめます。プロファイルは、モデル、許可するツール、自動承認、システムプロンプト、最大ターン数、プロバイダーの認証情報など、エージェントの動作を制御します。通知ルートが制御するのはメッセージの配信先のみです。

スケジュールとチャネルのプロファイルは、意図的に分けられています。

  • スケジュールの --profile monitoring:そのスケジュールで開始する実行の動作
  • チャネルの --profile ops:受信した Slack/Telegram/Discord のメッセージから開始するセッションの動作
  • 通知の --target "#ops":スケジュール通知の送信先。モデルやツールは選択しません

通知ルーティングでは、どこでも次の2つの用語を使用します。

  • channel:slack、telegram、discord などの転送手段
  • target:その転送手段内の宛先。Slack の #ops や C1234567890 など

autopilot channel add ... --target は、デフォルトの通知ルートを設定します。--notify-target または --notify-channel を追加しない限り、スケジュールはこの設定を引き継ぎます。

# default notification route: slack:#ops
stakpak autopilot channel add slack --bot-token "$SLACK_BOT_TOKEN" --app-token "$SLACK_APP_TOKEN" --profile ops --target "#ops"

# schedule runs with the monitoring profile and inherits the default route
stakpak autopilot schedule add health --cron '*/5 * * * *' --prompt 'Check health' --profile monitoring

# schedule still runs with monitoring, but notifies a different Slack target
stakpak autopilot schedule add deploy-watch --cron '*/15 * * * *' --prompt 'Watch deploys' --profile monitoring --notify-target "#deploys"

~/.stakpak/autopilot.toml では、同じ設定を次のように表します。

[notifications]
channel = "slack"
target = "#ops"

[[schedules]]
name = "health"
cron = "*/5 * * * *"
prompt = "Check health"
profile = "monitoring"

[[schedules]]
name = "deploy-watch"
cron = "*/15 * * * *"
prompt = "Watch deploys"
profile = "monitoring"
notify_target = "#deploys"

Slack が対応している場合は、#ops などのパブリックチャネル名を使用できます。プライベートチャネル、DM、スクリプトでは、チャネル ID が最も確実です。

セットアップガイド全文:cli/README.md

🔒 セキュリティ強化

  • 相互 TLS(mTLS) - エンドツーエンドで暗号化された MCP
  • 動的なシークレットの置換 - AI は実際の値を見ずに、シークレットの読み取り/書き込み/比較が可能です
  • 安全なパスワード生成 - 複雑さを設定して、暗号学的に安全なパスワードを生成します
  • プライバシーモード - IP アドレスや AWS アカウント ID などの機密データを秘匿します

🛠️ DevOps 作業向けに構築

  • 非同期タスク管理 - ポートフォワーディングやサーバーなどのバックグラウンドコマンドを、適切に追跡し、キャンセルしながら実行します
  • リアルタイムの進捗ストリーミング - 長時間実行されるプロセス(Docker ビルド、デプロイなど)の進捗状況をリアルタイムでストリーミングします
  • インフラストラクチャコードのインデックス作成 - Terraform、Kubernetes、Dockerfile、GitHub Actions を自動でローカルにインデックス化し、セマンティック検索します
  • ドキュメント調査エージェント - 技術ドキュメント、クラウドプロバイダー、開発フレームワークを対象とするウェブ検索機能を内蔵しています
  • サブエージェント - コードの調査や、異なるツールアクセスレベルでのサンドボックス分析に特化した調査エージェント(--enable-subagents フラグで有効化)
  • 一括メッセージ承認 - 複数のツール呼び出しを一度に承認し、効率的にワークフローを実行できます
  • 元に戻せるファイル操作 - すべてのファイル変更は自動的にバックアップされ、復元できます

🧠 適応型インテリジェンス

  • ルールブック - 社内の標準業務手順、プレイブック、組織のポリシーを使って、エージェントの動作をカスタマイズできます
  • 永続的なナレッジ - エージェントはやり取りから学習し、インシデント、リソース、環境の詳細を記憶して、ワークフローに適応します

インストール

すべてのインストール方法(Linux、MacOs、Windows)

ドキュメントを確認

Homebrew(Linux および MacOS)
brew tap stakpak/stakpak
brew install stakpak

更新するには、次のコマンドを使用します。

brew update
brew upgrade stakpak
バイナリリリース

お使いのプラットフォーム向けの最新バイナリを、GitHub Releases からダウンロードしてください。

Docker

このイメージには、docker、kubectl、aws cli、gcloud、azure cli など、エージェントが日常的な DevOps タスクで必要とする人気の CLI ツールが含まれています。

docker pull ghcr.io/stakpak/agent:latest

使用方法

Anthropic または OpenAI の独自の API キー、OpenAI 互換のカスタムエンドポイント、または Stakpak API キーを使用できます。

オプション A:Stakpak API キーを使用して実行する(クレジットカード不要)

stakpak を実行し、指示に従うと、新しい API キーが作成されます。

stakpak

Brave を使用している場合、API キーの作成中に localhost ポートへの自動リダイレクトで問題が発生することがあります。その場合は、次の手順を実行してください。

ブラウザーから新しいキーをコピーし、ターミナルに貼り付けます。

非対話型のセットアップ(CI/スクリプト)
stakpak auth login --api-key $STAKPAK_API_KEY
または環境変数を設定する
export STAKPAK_API_KEY=<mykey>
現在のアカウントを表示する(任意)
stakpak account
オプション B:Stakpak API キーを使用せずに実行する
非対話型のセットアップ(CI/スクリプト)
# Anthropic
stakpak auth login --provider anthropic --api-key $ANTHROPIC_API_KEY

# OpenAI
stakpak auth login --provider openai --api-key $OPENAI_API_KEY

# Gemini
stakpak auth login --provider gemini --api-key $GEMINI_API_KEY
手動設定

次のいずれかの設定を使用して、~/.stakpak/config.toml を作成します。

オプション 1:独自のキーを使用(BYOK) - Anthropic/OpenAI の API キーを使用します。

[profiles.byok]
provider = "local"

# Unified model preference field
model = "anthropic/claude-sonnet-4-5"

# Built-in providers - credentials can also be set via environment variables
# (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY)
[profiles.byok.providers.anthropic]
type = "anthropic"
api_key = "sk-ant-..."

[profiles.byok.providers.openai]
type = "openai"
api_key = "sk-..."

[profiles.byok.providers.gemini]
type = "gemini"
api_key = "..."

[settings]

オプション 2:独自の LLM を使用 - ローカルの OpenAI 互換エンドポイントを使用します(例:Ollama、LM Studio)。

[profiles.offline]
provider = "local"

# Custom provider models use the format: provider_key/model_name
model = "offline/qwen/qwen3-coder-30b"

# The provider key "offline" becomes the model prefix
[profiles.offline.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"
# api_key is optional for local providers

[settings]

オプション 3:組み込みプロバイダーとカスタムプロバイダーを組み合わせる:

[profiles.hybrid]
provider = "local"

# Unified model field (provider-prefixed)
model = "anthropic/claude-sonnet-4-5"

[profiles.hybrid.providers.anthropic]
type = "anthropic"
# Uses ANTHROPIC_API_KEY env var

[profiles.hybrid.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"

[settings]

Stakpak は、対話型の起動中に利用可能な更新をバックグラウンドで適用します。更新が適用されたら、新しいバイナリを使用するために、長時間実行中の Stakpak プロセスを再起動してください。

次に、プロファイルを指定して実行します。

stakpak --profile byok
# or
stakpak --profile offline
# or
stakpak --profile hybrid
Stakpak エージェント TUI を起動する
# Open the TUI
stakpak
# Resume execution from a checkpoint
stakpak -c <checkpoint-id>
Docker で Stakpak エージェント TUI を起動する
docker run -it --entrypoint stakpak ghcr.io/stakpak/agent:latest
# for containerization tasks (you need to mount the Docker socket)
docker run -it \
   -v "/var/run/docker.sock":"/var/run/docker.sock" \
   -v "{your app path}":"/agent/" \
   --entrypoint stakpak ghcr.io/stakpak/agent:latest
MCP モード

Stakpak は、安全な MCP プロキシとして使用することも、MCP サーバーを通じてセキュリティを強化したツールを公開することもできます。

MCT サーバーのツール
  • ローカルモード(--tool-mode local) - ファイル操作とコマンド実行のみ(API キーは不要)
  • リモートモード(--tool-mode remote) - AI を活用したコード生成および検索ツール(API キーが必要)
  • 統合モード(--tool-mode combined) - ローカルとリモートの両方のツール(デフォルト、API キーが必要)
MCP サーバーを起動する
# Local tools only (no API key required, mTLS enabled by default)
stakpak mcp start --tool-mode local

# Remote tools only (AI tools optimized for DevOps)
stakpak mcp start --tool-mode remote

# Combined mode (default - all tools with full security)
stakpak mcp start

# Disable mTLS (NOT recommended for production)
stakpak mcp start --disable-mcp-mtls

MCP サーバー用の追加フラグ:

  • --disable-secret-redaction – 推奨しません。コンソールにシークレットを平文で出力します
  • --privacy-mode – IP アドレスや AWS アカウント ID など、追加の個人情報をマスキングします
  • --enable-slack-tools – 実験的な Slack ツールを有効にします
MCP プロキシサーバー

Stakpak には、設定ファイルを使用して複数の上流 MCP サーバーへの接続を多重化できる MCP プロキシサーバーも含まれています。

# Start MCP proxy with automatic config discovery
stakpak mcp proxy

# Start MCP proxy with explicit config file
stakpak mcp proxy --config-file ~/.stakpak/mcp.toml

# Disable secret redaction (NOT recommended – secrets will be printed in logs)
stakpak mcp proxy --disable-secret-redaction

# Enable privacy mode to redact IPs, account IDs, etc.
stakpak mcp proxy --privacy-mode
外部 MCP サーバーを設定する

外部 MCP サーバーは mcp.toml(または mcp.json)で設定し、stakpak mcp proxy によって読み込まれます。

設定ファイルの検索順序:

  1. ~/.stakpak/mcp.toml または ~/.stakpak/mcp.json
  2. .stakpak/mcp.toml または .stakpak/mcp.json(現在のディレクトリから)
  3. ./mcp.toml または ./mcp.json

CLI でサーバーを追加します:

# Add a stdio MCP server
stakpak mcp add context7 --command npx --args "-y,@upstash/context7-mcp"

# Add a stdio MCP server with environment variables (repeat --env)
stakpak mcp add internal-tools --command npx --args "-y,@acme/internal-mcp" --env "MCP_API_KEY=<token>" --env "MCP_REGION=us-east-1"

# Add an HTTP MCP server
stakpak mcp add github --url https://api.githubcopilot.com/mcp --headers "Authorization=Bearer <token>"

# Inspect and manage servers
stakpak mcp list
stakpak mcp get github
stakpak mcp disable github
stakpak mcp enable github

# Start the proxy with configured external MCPs
stakpak mcp proxy

または、~/.stakpak/mcp.toml でサーバーを直接定義します:

[mcpServers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env = { MCP_API_KEY = "<token>", MCP_REGION = "us-east-1" }

[mcpServers.github]
url = "https://api.githubcopilot.com/mcp"
headers = { Authorization = "Bearer <token>" }

[mcpServers.optional]
command = "npx"
args = ["-y", "some-mcp-server"]
disabled = true

disabled = true を設定すると、サーバーを設定したまま読み込まないようにできます。

エージェントクライアントプロトコル(ACP)

ACP は、AI エージェントが Zed などのコードエディターと直接連携できるようにする標準化されたプロトコルであり、AI を活用したシームレスな開発支援を提供します。

Stakpak の ACP が提供する機能
  • リアルタイム AI チャット - コンテキストを認識した AI アシスタンスとの自然言語による会話
  • ライブコード分析 - AI がリアルタイムでコードベースを読み取り、理解し、変更できます
  • ツールの実行 - AI がコマンドを実行し、ファイルを編集し、コードを検索して、開発タスクを実行できます
  • セッションの永続化 - エディターのセッションをまたいで会話のコンテキストを維持します
  • ストリーミング応答 - 進捗状況をリアルタイムで更新しながら AI が応答します
  • エージェントの計画 - タスクの内訳を視覚的に表示し、進捗状況を追跡します
インストールとセットアップ
  1. Stakpak をインストール (まだインストールされていない場合)
  2. Zed エディタを設定 - ~/.config/zed/settings.json に追加:
{
  "agent_servers": {
    "Stakpak": {
      "command": "stakpak",
      "args": ["acp"],
      "env": {}
    }
  }
}
  1. ACP エージェントを起動:
stakpak acp
  1. Zed で使用 - Assistant (✨) をクリック → + → New stakpak thread
ルールブック管理

Stakpak ルールブックで標準作業手順 (SOP)、プレイブック、ランブックを管理できます。ルールブックはエージェントの動作をカスタマイズし、コンテキストに応じたガイダンスを提供します。

# List all rulebooks
stakpak rulebooks get
# or use the short alias
stakpak rb get

# Get a specific rulebook
stakpak rb get stakpak://my-org/deployment-guide.md

# Create or update a rulebook from a markdown file
stakpak rb apply my-rulebook.md

# Delete a rulebook
stakpak rb delete stakpak://my-org/old-guide.md
ルールブックのフォーマット

ルールブックは YAML フロントマター付きの Markdown ファイルです:

---
uri: stakpak://my-org/deployment-guide.md
description: Standard deployment procedures for production
tags:
  - deployment
  - production
  - sop
---

# Deployment Guide

Your deployment procedures and guidelines here...
シェル補完

すべての stakpak サブコマンド、フラグ、引数に対してタブ補完を有効にします。

# Bash
echo 'source <(stakpak completion bash)' >> ~/.bashrc

# Elvish
echo 'eval (stakpak completion elvish | slurp)' >> ~/.elvish/rc.elv

# Fish
echo 'stakpak completion fish | source' > ~/.config/fish/completions/stakpak.fish

# Zsh
echo 'source <(stakpak completion zsh)' >> ~/.zshrc

# PowerShell
Add-Content -Path $PROFILE -Value 'stakpak completion powershell | Out-String | Invoke-Expression'

対応シェル: bash、elvish、fish、powershell、zsh。

シェルモード

入力バーからシステムコマンドを明示的に実行します。

バックグラウンド実行とフォアグラウンド実行の詳細については、シェルモードのドキュメントを確認してください。

プラットフォームテスト

Windows

Windows CLI 機能の包括的なテストレポート。インストール、設定、WSL2 および Docker との統合を含みます。

Windows テストレポートを見る


⭐ 私たちが作っているものを気に入っていただけましたか?

私たちのエージェントがあなたの時間を節約したり、DevOps の仕事を楽にしてくれるなら、
GitHub でスターを付けることを検討してください — それが本当に励みになります!

Star on GitHub

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。