mcpField
A
Ashlr Stack

Ashlr Stack

本地服务
stack.ashlr.ai云与基础设施2今天更新

关于 Ashlr Stack

Ashlr Stack 通过 Stack 命令行向编码 Agent 提供 MCP 工具,用于配置和检查受支持的开发服务。工具可读取和更新项目配置,密钥值不会显示给 Agent。

主要功能

  1. 01配置或移除受支持的服务
  2. 02扫描并检查项目配置
  3. 03比较并同步环境设置
  4. 04推荐并应用配置方案
  5. 05读取可用的项目资源

适用场景

  1. 01在项目中配置受支持的服务
  2. 02检查服务和环境状态
  3. 03应用前审查配置变更

MCP 相关

MCP 服务向 MCP 客户端提供 19 个 Stack 命令行工具和最多 3 项项目资源。项目级调用可用 `cwd` 指定目录;Agent 看不到密钥值。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ashlrai-ashlr-stack": {
"command": "npx",
"args": [
"-y",
"ashlr-stack-mcp"
]
}
}
}
启动命令npx -y ashlr-stack-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmashlr-stack-mcp0.3.1

工具

19

收录的工具列表 · 更新于 3 天前

参数类型必填说明
cwdstring否现有项目的绝对目录;默认为服务端 cwd。
forceboolean否覆盖现有的 .stack.toml。
templatestring否起始模板名称。

详细介绍

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.toml
  • stack://current/.stack.local.toml
  • stack://current/.mcp.json

Agent 可以直接读取这些文件,无需调用工具,因此在采取行动前始终了解项目状态。

工具与资源完整参考:stack.ashlr.ai/docs/mcp。

如何处理密钥

Stack 从不存储密钥值。每次工具调用都会通过你机器上的 Phantom Secrets 路由。Agent 只能看到槽位名称(例如 SUPABASE_URL、SUPABASE_ANON_KEY),绝不会看到其值。

链接

许可证

MIT。参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。