关于 Ashlr Stack
Ashlr Stack 通过 Stack 命令行向编码 Agent 提供 MCP 工具,用于配置和检查受支持的开发服务。工具可读取和更新项目配置,密钥值不会显示给 Agent。
主要功能
- 01配置或移除受支持的服务
- 02扫描并检查项目配置
- 03比较并同步环境设置
- 04推荐并应用配置方案
- 05读取可用的项目资源
适用场景
- 01在项目中配置受支持的服务
- 02检查服务和环境状态
- 03应用前审查配置变更
MCP 相关
MCP 服务向 MCP 客户端提供 19 个 Stack 命令行工具和最多 3 项项目资源。项目级调用可用 `cwd` 指定目录;Agent 看不到密钥值。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
19收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwd | string | 否 | 现有项目的绝对目录;默认为服务端 cwd。 |
| force | boolean | 否 | 覆盖现有的 .stack.toml。 |
| template | string | 否 | 起始模板名称。 |
详细介绍
ashlr-stack-mcp
面向 Ashlr Stack 的 MCP 服务。提供 19 个工具和最多 3 个资源,供 MCP 客户端检查和配置受支持的服务。
功能
stack 是一个命令行工具。ashlr-stack-mcp 将相同的功能作为 MCP 工具提供,让你的编码 Agent 可以直接操作 Stack。Agent 可以针对受支持的提供商调用 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 和提供商凭据。
接入你的 Agent
将以下内容放入项目的 .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。它必须是指向现有目录的绝对路径;该路径会通过 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
Agent 可以直接读取这些文件,无需调用工具,因此在采取行动前始终了解项目状态。
工具与资源完整参考:stack.ashlr.ai/docs/mcp。
如何处理密钥
Stack 从不存储密钥值。每次工具调用都会通过你机器上的 Phantom Secrets 路由。Agent 只能看到槽位名称(例如 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。