Ashlr Stack

io.github.ashlrai由 GitHub 帳號 ashlrai 發布v0.3.1更新於 Nov 1, 2026

Provision and connect third-party dev services (Supabase, Vercel, and more) from your coding agent.

概覽

AI 產生的概覽

本機 MCP 伺服器,讓編碼助理透過 Stack CLI 在專案中開通並檢查 Supabase、Vercel 等第三方開發服務。

可以做什麼
  • 初始化與開通服務:產生專案設定、掃描儲存庫辨識所用服務商、新增或移除服務、從 env 檔匯入變數
  • 檢查技術棧:列出已設定服務、檢視資源與驗證資訊、整體狀態、相依圖、服務商目錄與範本
  • 核對密鑰:顯示哪些宣告的密鑰名稱已存在於本機 Phantom 保管庫、哪些缺少
  • 規劃與執行:依查詢排序推薦服務商、儲存 Recipe 後套用,並回報密鑰名稱是否存在
  • 維護:列出本機登錄中的專案、執行健康檢查並可嘗試修復、轉送同步請求、檢查新版本
適用情境
適合在需要串接託管服務的專案中使用,讓助理不必離開對話就能新增、檢視或修復這些設定。最適合已在本機使用 Stack CLI 與 Phantom Secrets 的團隊。
執行需求
以本機 stdio 程序執行,可透過 npx 或全域 npm 安裝;需要 Node.js 20 或更新版本。必須已安裝或可解析 Stack CLI(STACK_BIN、@ashlr/stack 相依套件或 PATH 中的 stack),否則工具呼叫會失敗。服務商操作可能需另行設定 Phantom 與服務商憑證。需在專案目錄啟動伺服器或傳入絕對路徑 cwd。
安裝前請注意
工具會寫入 .stack.toml 等專案檔案、執行服務商設定,並可移除服務設定與 MCP 項目;上游資源會保留。Stack 不儲存密鑰值,但助理可見密鑰欄位名稱,操作經由 Phantom Secrets。無互動執行時可能把密鑰留在保管庫中,且名稱存在不代表憑證有效。README 的安裝一行指令會把遠端腳本直接交給 shell 執行。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ashlr Stack,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ashlr-stack-mcp

MCP server for Ashlr Stack. Exposes 19 tools and up to 3 resources for inspecting and configuring supported services from MCP clients.

What it does

stack is a CLI. ashlr-stack-mcp is the same capabilities as MCP tools so your coding agent can drive Stack directly. An agent can request stack_add for a supported provider; authentication, resource setup and configuration changes depend on the adapter and authorization. Inspect the result and any changes.

Install

One-liner. It installs stack, plus ashlr-stack-mcp when it installs from npm or from source; when it installs the prebuilt stack binary from GitHub Releases, it prints how to add the MCP server (npm i -g ashlr-stack-mcp, or npx -y ashlr-stack-mcp):

bash
# macOS / Linuxcurl -fsSL stack.ashlr.ai/install.sh | bash
# Windows (PowerShell)irm https://stack.ashlr.ai/install.ps1 | iex

Or manually from the registry:

bash
bun add -g ashlr-stack-mcp @ashlr/stack# ornpm i -g ashlr-stack-mcp @ashlr/stack

Every tool runs the stack CLI. The server resolves it in this order: the executable specified by STACK_BIN, the installed @ashlr/stack dependency's bin, then stack on PATH. If none is available, the server can still start and list tools, but calls fail with a CLI error. The npm CLI and MCP packages in this release declare Node.js >= 20 and use Node entrypoints. Check your installed package manifests; source development uses Bun.

Run from a local clone

Install Bun and Node.js 20 or later, then install the workspace dependencies and build the CLI from the repository root:

bash
bun install --frozen-lockfile(cd packages/cli && bun run build)

The source server runs with Bun; the CLI build provides the workspace dependency's dist/index.js. Start the server from the project you want it to inspect, replacing the paths with absolute paths on your machine:

bash
cd /absolute/path/to/my-projectbun run /absolute/path/to/ashlr-stack/packages/mcp/src/server.ts

The server speaks MCP over stdin and stdout, so connect it to an MCP client rather than expecting an interactive prompt. Keep stdout reserved for the protocol. Provider operations may need Phantom and provider credentials configured separately.

Wire it into your agent

Drop this into your project's .mcp.json (Claude Code, Cursor and Windsurf read this shape; Codex uses codex mcp add ashlr-stack -- ashlr-stack-mcp, which writes ~/.codex/config.toml):

json
{  "mcpServers": {    "ashlr-stack": {      "command": "ashlr-stack-mcp"    }  }}

For a local clone, after the installation and CLI build above, point the client at the source entry directly (with bun available on its PATH):

json
{  "mcpServers": {    "ashlr-stack": {      "command": "bun",      "args": ["run", "/absolute/path/to/ashlr-stack/packages/mcp/src/server.ts"]    }  }}

The client chooses the server's working directory; the absolute entry path does not set it. Configure the client to start the server in your project if supported, or pass cwd to project-scoped tool calls as described below.

Targeting a project (cwd)

Every tool runs stack in the server's working directory by default. When your client starts the server outside the project (Claude Desktop, a global Cursor or Windsurf config), pass the project's absolute path to a project-scoped tool:

json
{ "name": "stack_list", "arguments": { "json": true, "cwd": "/home/me/code/my-app" } }

cwd is accepted by the project-scoped tools, the ones that read or write .stack.toml or other project files: 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 and stack_apply. It must be an absolute path to an existing directory; it is resolved with realpath, and a relative path, a missing path or a file returns an isError result without running anything. It grants nothing beyond what the server's own working directory already does. The global tools (stack_providers, stack_projects_list, stack_templates_list, stack_upgrade) refuse cwd instead of ignoring it. There is no environment-variable default; start the server in the project or pass cwd.

Tools (19)

Provisioning: stack_init, stack_add, stack_remove, stack_import, stack_scan.

Inspection: stack_list, stack_info, stack_status, stack_providers, stack_templates_list, stack_deps, stack_doctor. stack_list, stack_providers, stack_deps, stack_templates_list and stack_projects_list take json: true to return the CLI's --json object instead of human text.

Env: stack_env_show, stack_env_diff, stack_sync.

stack_info and stack_env_show take json: true to return stack info --json (ashlr.stack.info/v1) and stack env show --json (ashlr.stack.env/v1) instead of human text.

Planning: stack_recommend, stack_apply.

Project registry: stack_projects_list (json: true returns stack projects list --json), stack_upgrade.

Every tool rejects an argument name its input schema does not declare, and lists the accepted ones, rather than running without it. A blank string (" ") counts as missing for a required argument and is rejected for an optional one.

Resources (up to 3)

Each is listed only when the file exists in the server's working directory (resources do not take cwd).

  • stack://current/.stack.toml
  • stack://current/.stack.local.toml
  • stack://current/.mcp.json

The agent can read these directly — no tool call needed — so it always knows the project state before acting.

Full tool + resource reference: stack.ashlr.ai/docs/mcp.

How secrets are handled

Stack never stores secret values. Every tool call routes through Phantom Secrets on your machine. The agent only sees slot names (like SUPABASE_URL, SUPABASE_ANON_KEY) — never the values.

Links

License

MIT. See LICENSE.

來源:packages/mcp/README.md,提交 b105bf3

工具

19

stack_init

Scaffold .stack.toml in the current directory; a selected template may also run provider setup.

輸入參數cwdforcetemplate

stack_import

Import nonempty new variables from an .env file into Phantom and record detected services; existing vault names are left unchanged. Returns ashlr.stack.import/v1 JSON naming what was stored, skipped and wired (names only, never values).

輸入參數cwdfromdryRun

stack_scan

Detect providers this repo uses by reading package.json / requirements.txt / config files.

輸入參數cwdpathconfidence

stack_add

Run provider-specific service setup or attach an existing resource, then record returned secret slots and optional MCP configuration. Credentials and client/provider acceptance must be checked separately.

輸入參數cwduseservice必填

stack_remove

Remove local service configuration and its MCP entry, and attempt Phantom secret cleanup. Returns JSON (ashlr.stack.remove/v1); `secrets_kept` lists names Phantom left stored, which headless runs always do, for the user to remove with `phantom remove` in a terminal. Upstream resources are kept.

輸入參數cwdservice必填keepRemote

stack_list

List services configured in this stack.

輸入參數cwdjson

stack_info

Inspect configured resource, auth kind, secret-name inventory and MCP metadata; attempt a healthcheck when the provider supports one.

輸入參數cwdjsonservice必填

stack_status

Show Phantom + services + config at a glance.

輸入參數cwdjson

stack_env_show

Show which declared secrets are present in the Phantom vault (masked).

輸入參數cwdjson

stack_env_diff

Report which declared secrets are missing from the Phantom vault.

輸入參數cwdjson

stack_doctor

Inspect the configured-service health report. --fix attempts supported remediation; stored vault names can cause repairs to be skipped, and name presence is not credential validity.

輸入參數allcwdfixjson

stack_sync

Forward a deployment-platform sync request to phantom sync; inspect the installed Phantom command support and result separately.

輸入參數cwdplatform必填

stack_providers

List the curated source provider catalog by category; inclusion does not attest complete provisioning or active credentials.

輸入參數jsoncategory

stack_projects_list

List projects recorded in the local Stack registry; this is not a filesystem-wide discovery scan.

輸入參數json

stack_deps

Show the service dependency graph for the current stack.

輸入參數cwdjson

stack_templates_list

List available starter stack templates and the services each one adds.

輸入參數json

stack_upgrade

Check npm for a newer @ashlr/stack release. Returns ashlr.stack.upgrade/v1 JSON (current, latest, status, install command); installs nothing.

無需輸入參數。

stack_recommend

Rank curated providers by query, returning JSON as text without LLM inference. save:true writes a Recipe for stack_apply.

輸入參數kcwdsavequery必填category

stack_apply

Apply a saved Recipe through provider setup, then report which declared secrets are in the Phantom vault and which are missing (names only; it never writes to the vault) and write webhook stubs. Inspect failures and skips. no_wire:true skips the vault check and stubs, not provider credential writes.

輸入參數cwdno_wirerecipe_id必填

版本歷史

1
  1. v0.3.1最新Nov 1, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分