Ashlr Stack について
Ashlr Stackは、Stackコマンドラインを通じてコーディングエージェントにMCPツールを提供し、対応する開発サービスの設定と確認を行います。ツールはプロジェクト設定を読み書きでき、シークレットの値はエージェントに表示されません。
主な機能
- 01対応サービスの追加と削除
- 02プロジェクト設定のスキャンと確認
- 03環境設定の比較と同期
- 04設定プランの提案と適用
- 05利用可能なプロジェクトリソースの読み取り
活用シーン
- 01プロジェクトで対応サービスを設定
- 02サービスと環境の状態を確認
- 03適用前に設定変更を確認
MCP 対応
MCP サーバーはStackコマンドラインの19個のツールと最大3つのプロジェクトリソースをMCPクライアントに公開します。プロジェクト単位の呼び出しでは `cwd` で対象ディレクトリを指定でき、シークレットの値はエージェントに表示されません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
19掲載時のツール一覧 · 3 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cwd | string | いいえ | 既存プロジェクトの絶対ディレクトリ。デフォルトはサーバーの cwd です。 |
| force | boolean | いいえ | 既存の .stack.toml を上書きします。 |
| template | string | いいえ | スターターテンプレート名。 |
詳細
ashlr-stack-mcp
Ashlr Stack 用の MCP サーバーです。MCP クライアントから、対応サービスの確認と設定を行うための 19 個のツールと最大 3 個のリソースを公開します。
概要
stack は CLI です。ashlr-stack-mcp は、コーディングエージェントが Stack を直接操作できるように、同じ機能を MCP ツールとして提供します。エージェントは、対応プロバイダーに対して stack_add をリクエストできます。認証、リソースのセットアップ、設定の変更は、アダプターと認可の状況によって異なります。結果と変更内容を確認してください。
インストール
ワンライナーです。stack をインストールし、npm またはソースからインストールする場合は ashlr-stack-mcp もインストールします。GitHub Releases からビルド済みの stack バイナリをインストールする場合は、MCP サーバーの追加方法(npm i -g ashlr-stack-mcp または npx -y ashlr-stack-mcp)が表示されます。
# macOS / Linux
curl -fsSL stack.ashlr.ai/install.sh | bash
# Windows (PowerShell)
irm https://stack.ashlr.ai/install.ps1 | iex
または、レジストリから手動でインストールします。
bun add -g ashlr-stack-mcp @ashlr/stack
# or
npm i -g ashlr-stack-mcp @ashlr/stack
すべてのツールは stack CLI を実行します。サーバーは次の順序で解決します。STACK_BIN で指定された実行ファイル、インストール済みの @ashlr/stack 依存関係の bin、それから PATH 上の stack です。いずれも見つからない場合でも、サーバーは起動してツールの一覧を表示できますが、呼び出しは CLI エラーで失敗します。このリリースの npm CLI パッケージと MCP パッケージでは Node.js >= 20 が指定され、Node のエントリーポイントが使用されます。インストール済みパッケージのマニフェストを確認してください。ソース開発では Bun を使用します。
ローカルクローンから実行する
Bun と Node.js 20 以降をインストールし、リポジトリのルートからワークスペースの依存関係をインストールして CLI をビルドします。
bun install --frozen-lockfile
(cd packages/cli && bun run build)
ソースサーバーは Bun で実行されます。CLI のビルドによって、ワークスペース依存関係の dist/index.js が提供されます。サーバーに確認させたいプロジェクトからサーバーを起動し、パスをお使いのマシン上の絶対パスに置き換えてください。
cd /absolute/path/to/my-project
bun run /absolute/path/to/ashlr-stack/packages/mcp/src/server.ts
サーバーは stdin と stdout 経由で MCP を通信するため、対話型プロンプトを想定せず、MCP クライアントに接続してください。stdout はプロトコル専用にしてください。プロバイダーの操作には、Phantom とプロバイダーの認証情報を別途設定する必要がある場合があります。
エージェントに接続する
プロジェクトの .mcp.json に次の内容を追加してください(Claude Code、Cursor、Windsurf はこの形式を読み取ります。Codex の場合は codex mcp add ashlr-stack -- ashlr-stack-mcp を実行すると、~/.codex/config.toml に書き込まれます)。
{
"mcpServers": {
"ashlr-stack": {
"command": "ashlr-stack-mcp"
}
}
}
ローカルクローンの場合は、上記のインストールと CLI のビルド後、(PATH から bun を利用できる状態で)クライアントがソースのエントリーポイントを直接参照するようにします。
{
"mcpServers": {
"ashlr-stack": {
"command": "bun",
"args": ["run", "/absolute/path/to/ashlr-stack/packages/mcp/src/server.ts"]
}
}
}
サーバーの作業ディレクトリはクライアントが選択します。エントリーポイントの絶対パスでは設定されません。対応している場合は、クライアントがプロジェクト内でサーバーを起動するように設定するか、以下の説明に従ってプロジェクトスコープのツール呼び出しに cwd を渡してください。
プロジェクトの指定(cwd)
各ツールは、デフォルトでサーバーの作業ディレクトリ内で stack を実行します。クライアントがプロジェクト外でサーバーを起動する場合(Claude Desktop、グローバルな Cursor または Windsurf の設定)は、プロジェクトスコープのツールにプロジェクトの絶対パスを渡してください。
{ "name": "stack_list", "arguments": { "json": true, "cwd": "/home/me/code/my-app" } }
cwd は、.stack.toml やその他のプロジェクトファイルを読み書きするプロジェクトスコープのツールで受け付けられます。対象は stack_init、stack_import、stack_scan、stack_add、stack_remove、stack_list、stack_info、stack_status、stack_env_show、stack_env_diff、stack_doctor、stack_sync、stack_deps、stack_recommend、stack_apply です。cwd には既存のディレクトリの絶対パスを指定する必要があります。realpath で解決され、相対パス、存在しないパス、またはファイルを指定すると、何も実行されずに isError の結果が返されます。サーバー自体の作業ディレクトリですでにできることを超える権限が付与されるわけではありません。グローバルツール(stack_providers、stack_projects_list、stack_templates_list、stack_upgrade)は cwd を無視せず、受け付けません。環境変数によるデフォルト値はありません。プロジェクト内でサーバーを起動するか、cwd を渡してください。
ツール(19)
プロビジョニング:stack_init、stack_add、stack_remove、stack_import、stack_scan。
インスペクション:stack_list、stack_info、stack_status、stack_providers、stack_templates_list、stack_deps、stack_doctor。stack_list、stack_providers、stack_deps、stack_templates_list、stack_projects_list は、json: true を指定すると、読みやすいテキストの代わりに CLI の --json オブジェクトを返します。
環境変数:stack_env_show、stack_env_diff、stack_sync。
stack_info と stack_env_show は、json: true を指定すると、読みやすいテキストの代わりにそれぞれ stack info --json(ashlr.stack.info/v1)と stack env show --json(ashlr.stack.env/v1)を返します。
プランニング:stack_recommend、stack_apply。
プロジェクトレジストリ:stack_projects_list(json: true を指定すると stack projects list --json を返します)、stack_upgrade。
各ツールは、入力スキーマで宣言されていない引数名を受け取ると、引数なしで実行するのではなく、受け付ける引数を一覧表示して拒否します。空白のみの文字列(" ")は、必須引数では未指定として扱われて拒否され、任意の引数では拒否されます。
リソース(最大3件)
各リソースは、サーバーの作業ディレクトリにファイルが存在する場合にのみ一覧表示されます(リソースに cwd は指定できません)。
stack://current/.stack.tomlstack://current/.stack.local.tomlstack://current/.mcp.json
エージェントはこれらを直接読み取れるため、ツール呼び出しは不要です。そのため、操作を開始する前に常にプロジェクトの状態を把握できます。
ツールとリソースの詳細なリファレンス:stack.ashlr.ai/docs/mcp。
シークレットの取り扱い
Stack はシークレットの値を保存しません。すべてのツール呼び出しは、お使いのマシン上の Phantom Secrets を経由します。エージェントに見えるのはスロットの名前(SUPABASE_URL、SUPABASE_ANON_KEY など)だけで、値は見えません。
リンク
- ドキュメント — stack.ashlr.ai/docs
- MCP リファレンス — stack.ashlr.ai/docs/mcp
- リポジトリ — github.com/ashlrai/ashlr-stack
- イシュー — github.com/ashlrai/ashlr-stack/issues
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。