mcpField
A
Action1 RMM (unofficial)

Action1 RMM (unofficial)

本地服务
github.com云与基础设施02 天前更新

关于 Action1 RMM (unofficial)

这是一款非官方 MCP 服务,可将 Claude 等 MCP 主机连接到 Action1 RMM REST API。它整合设备群查询、审计和脚本及更新工作流,并通过防护机制控制状态变更。

主要功能

  1. 01查询终端、组、漏洞和软件
  2. 02运行 PowerShell 与 Bash 脚本
  3. 03搜索审计日志并规划 CVE 修复
  4. 04提供生成工具和精选工作流工具
  5. 05通过预览和明确确认保护变更
  6. 06支持 stdio 和 Streamable HTTP

适用场景

  1. 01检查终端状态和缺失更新
  2. 02在 Windows 或 macOS 终端运行脚本
  3. 03规划漏洞修复并检查审计记录
  4. 04通过试运行预览安排设备群变更

MCP 相关

将 Action1 REST API 操作作为 MCP 工具和资源提供,并包含多步骤任务提示词。支持 stdio 和无状态 Streamable HTTP 传输。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbaction1-mcp-0.6.2.mcpb0.6.2
npmaction1-mcp-server0.6.2

工具

167

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

参数类型必填说明
adminboolean否如果为 true,则仅限 API 密钥具有管理员权限的组织。
limitinteger否要返回的最大项目数。
response_formatenum否输出格式。默认值为 markdown。markdown | json

详细介绍

action1-mcp-server

License: MIT Node

一个非官方的 Model Context Protocol (MCP) 服务,用于访问 Action1 RMM REST API。它允许 Claude(或任何其他 MCP 宿主)查询你的 Action1 设备群,在 Windows 上运行 PowerShell、 在 macOS 上运行 Bash、部署更新、重启端点、搜索审计记录并制定 CVE 修复计划;默认情况下会阻止状态变更,除非你主动启用。

非官方项目。 本服务与 Action1 Corporation 无关,也未获其认可、 赞助或支持。“Action1” 是 Action1 Corporation 的 商标。请参阅 NOTICE。

状态

固定版本的 Action1 OpenAPI 规范快照中的每项操作都可通过工具访问 (参见覆盖范围)。本服务支持 stdio 和 Streamable HTTP,并提供 MCPB 捆绑包,可用于 Claude Desktop;同时也作为 npm 包 action1-mcp-server 发布。版本及其变更记录:CHANGELOG.md。

验证状态

在允许 Agent 更改设备群中的任何内容之前,请先阅读本节。

  • 自动化测试(npm test)使用模拟的 Action1 响应运行: 单元测试、通过 SDK 客户端进行的 MCP 协议往返测试、 破坏性操作防护真值表、脱敏和大小限制。每个会更改状态的 生成工具都会通过 MCP 执行,以验证其受到防护。这些测试在 CI 中使用 Node 22、24 和 26 运行。
  • 对真实 Action1 租户进行的在线运行记录在 TESTING.md 中。这些测试是在开发 0.1 到 0.3 版本期间进行的, 未注明日期。测试覆盖了读取工具(组织、 端点、分页、模板、缺失的更新)、在 Windows 和 macOS 上以只读方式执行脚本(action1_execute_and_wait、 action1_run_script)以及防护机制的拒绝路径。
  • **只读在线结构检查(2026-10-26)**针对 0.6.0:对真实租户发出 GET 请求, 并将返回的记录结构与随附的规范进行比较。端点、漏洞、已安装软件、 自动化实例和计划、缺失的更新、端点组以及两种列表封装均符合规范;审计事件仍未 验证(该密钥缺少 view_audit 权限)。详情请参阅 TESTING.md。除这项 检查外,0.6.0 中的变更仅通过自动化测试验证;0.6.0 工具的在线冒烟测试仍待进行。
  • 切勿在真实租户上运行: action1_reboot_endpoint、 action1_deploy_update、action1_deploy_package、 action1_uninstall_program、action1_run_data_collection、将端点从组中移除、 target_type: "EndpointGroup" 的 action1_run_script、所有会更改状态的生成工具, 以及所有账户操作(用户、角色、组织、企业)。 这些操作的请求正文遵循 Action1 OpenAPI 规范,并经过测试检查,但尚无人确认 Action1 会接受这些请求。请先在 测试端点上尝试,并在执行前查看试运行预览。
维护状态
  • 由一位维护者(@mguttmann)利用业余时间 尽力维护。作者在生产环境中使用本项目。本项目没有支持合同,也不保证响应时间。
  • 安全修复优先于功能开发。请私下报告漏洞 (参见安全)。
  • 依赖更新由 Dependabot 提供;当运行时 依赖存在已知的高危或严重安全公告时,CI 会失败。每周任务会报告 Action1 提供的 API 规范是否与固定快照不同。
  • 仅为最新的次版本提供修复。
  • 欢迎提交问题和拉取请求;请参阅 docs/CONTRIBUTING.md 和 行为准则。

为什么要做这个项目

Action1 提供了简洁的 REST API,但有一些细节容易让 LLM 在直接调用时悄悄产生错误结果:

  • macOS Bash 操作需要包含 10 个字段的 run_script 载荷;缺少任何字段时,API 都会返回 not applicable to Mac platform。
  • Windows PowerShell 操作需要非空的 success_exit_codes。
  • last_seen 的格式为 YYYY-MM-DD_HH-MM-SS(UTC),而非 ISO-8601,因此 Date.parse 会返回 NaN。服务端会解析并将其转换为易读格式。
  • 列表项的 self URL 中包含 /general 片段,但它并非真实的 REST 资源。
  • 脚本输出中穿插着 Starting / Waiting / Completed 生命周期标记,需要将它们过滤掉。
  • OS 为大写,platform 为小写,二者都可能包含平台字符串;其中一个检测器会对其进行标准化。

这些精心设计的工具涵盖了上述情况。服务端尚未覆盖的内容列于 docs/api-coverage-gaps.md。

安装

Claude Desktop:MCPB 程序包(推荐)
  1. 从项目的 GitHub Releases 下载 action1-mcp-<version>.mcpb。发布工作流会将其附加到每个版本标签。
  2. 双击该文件(或将其拖到 Claude Desktop 上,或使用“Settings > Extensions > Install from file”)。
  3. 按照向导填写:所在区域的 API 基础 URL、组织 ID、客户端 ID 和客户端密钥,以及是否允许破坏性操作(建议一开始保持关闭)。

Claude Desktop 使用内置的 Node.js 运行此程序包。详情和故障排除请参阅 docs/INSTALLATION.md。

MCP Registry

发布工作流会将每个稳定版本列入官方 MCP Registry,名称为 io.github.mguttmann/action1-mcp:其中包含程序包(发布资源的下载 URL 和 SHA-256),以及从 0.6.2 起提供的 npm 程序包 action1-mcp-server,二者使用相同的环境变量。可读取该 Registry 的 MCP 宿主和目录可以从中安装。只有该名称对应本项目;其他命名空间下的 Action1 服务使用的是不同代码。

glama.json 中列出了 Glama 条目的维护者。

从源代码安装(适用于任何 MCP 宿主)

需要 Node.js 22.12 或更高版本(见 package.json 中的 engines);CI 会测试 Node 22、24 和 26。

git clone https://github.com/mguttmann/action1-mcp.git
cd action1-mcp
npm ci
cp .env.example .env             # fill in your Action1 credentials
npm run build                    # compiles to dist/ (tsc only)

将其添加到 Claude Code:

claude mcp add action1 -- node --env-file=$(pwd)/.env $(pwd)/dist/index.js

npm run inspector 会使用构建好的服务打开 MCP Inspector(需要 Node 22.19 或更高版本)。其他宿主(使用 JSON 配置的 Claude Desktop、Claude.ai、Cursor、Continue.dev、Cody)请参阅 docs/INSTALLATION.md。

npm(npx,适用于任何 stdio MCP 宿主)

该服务以 action1-mcp-server 的名称发布在 npm 上(命令为 action1-mcp)。只有这个确切名称对应本项目。npx 会获取并运行它,因此无需克隆或构建;必须安装 Node.js 22.12 或更高版本。

将其添加到 Claude Code(这些值会写入 Claude Code 自身的配置;请在 shell 中输入,切勿输入聊天窗口):

claude mcp add action1 \
  -e ACTION1_BASE_URL=https://app.eu.action1.com/api/3.0 \
  -e ACTION1_ORG_ID=<your-org-uuid> \
  -e ACTION1_CLIENT_ID=<client-id> \
  -e ACTION1_CLIENT_SECRET=<client-secret> \
  -- npx -y action1-mcp-server

其他任何 stdio 宿主都可以在其 JSON 配置中使用相同的命令:

{
  "mcpServers": {
    "action1": {
      "command": "npx",
      "args": ["-y", "action1-mcp-server"],
      "env": {
        "ACTION1_BASE_URL": "https://app.eu.action1.com/api/3.0",
        "ACTION1_ORG_ID": "<your-org-uuid>",
        "ACTION1_CLIENT_ID": "<client-id>",
        "ACTION1_CLIENT_SECRET": "<client-secret>"
      }
    }
  }
}

包含这些值的配置文件会保存凭据:请确保只有你的用户可以读取该文件,并将其排除在版本控制之外。action1-mcp-server@<version> 用于固定版本。对于 Claude Desktop,仍推荐使用 MCPB 程序包:其向导会将客户端 ID 和密钥保存在 Claude Desktop 的安全存储中。更多宿主和选项请参阅 docs/INSTALLATION.md。

涵盖范围

  • 生成的工具: 固定版本的 Action1 OpenAPI 快照中的每个操作(日期见 src/codegen/spec/SOURCE.md)都会生成一个动词开头的工具,例如 action1_list_endpoint_groups,除非已有精选工具覆盖该操作。例外:POST /oauth2/token 供内部使用,不会公开;两个软件包上传操作会返回说明性错误,因为它们需要二进制请求体。完整映射会生成到 docs/_coverage_table.md;docs/api-coverage.md 对此作了解释。
  • 精选工具,用于常见工作流,包括高级封装工具(CVE 修复计划、审计日志搜索、软件清单、定期计划、报告导出、组解析器)。
  • 资源(action1://me、action1://orgs、action1://templates、action1://reports、action1://endpoints/{orgId}、action1://groups/{orgId}、action1://vulnerabilities/{orgId}),供预先获取上下文的宿主使用。
  • 斜杠提示词,用于多步骤任务(/patch-windows-fleet、/audit-vulnerabilities、/triage-offline-endpoints、/run-script-fleetwide、/software-inventory-sweep、/check-my-permissions)。

tests/unit/specSha.test.ts 会将生成的工具与固定快照关联起来。它无法检测 Action1 端的变更;npm run spec:check 和每周运行的 CI 任务会将该快照与 Action1 提供的规范进行比较。

亮点

  • 有防护的状态更改。 更改状态的工具需要设置 ACTION1_ALLOW_DESTRUCTIVE=true,默认显示试运行预览,并且需要 confirm: "YES" 才会执行。账户操作还需要启用另一个开关。参见破坏性操作防护。
  • 作用范围。 ACTION1_ALLOWED_ORG_IDS 用于限制工具可操作的组织;ACTION1_TOOLSETS=read 只会注册只读工具。
  • 面向 Agent 的输出。 每个只读工具都接受 response_format(默认为 markdown,也可为 json);每个工具都会设置全部四个 MCP 注解并声明 outputSchema。分页结果会在最后一页包含 count、has_more、next_cursor 和 total。结果大小保持在宿主的 1 MB 限制以内,并显示截断说明。
  • 严格的输入校验。 未知或拼写错误的参数会被拒绝并返回校验错误,而不会被忽略。
  • 身份验证。 使用 OAuth2 客户端凭据,支持主动刷新、并发令牌请求去重以及刷新令牌回退。
  • 传输安全。 读取请求(GET/HEAD)在发生网络错误、HTTP 5xx 和 429 时会重试(遵循 Retry-After)。变更请求只发送一次;只有在收到 429 或连接在请求发送前失败时才会重试,因此重试绝不会重复执行操作。每次 Action1 调用都受 ACTION1_REQUEST_TIMEOUT_MS 限制。
  • 两种传输方式。 stdio(默认)和无状态 Streamable HTTP,二者均支持 MCP 2026-07-28 以及 2025 年的修订版本(ADR 0001)。HTTP 需要 bearer 令牌,会检查 Host 和 Origin 以防 DNS 重绑定,将请求体限制为 1 MB,并按客户端 IP 限流。
  • 日志。 在 stderr 上输出结构化 JSON 行,并对凭据进行脱敏;每次调用输出一条 tool_call 日志,受防护的操作则会输出审计日志。Stdout 专用于 MCP。

架构

+----------------------------------------------------------------------+
| Curated tools and workflow wrappers                                  |
|  - script execution (Windows, macOS, OS-aware routing)               |
|  - execute_and_wait (start + poll + filtered output)                 |
|  - get_endpoint (canonical path + list fallback)                     |
|  - CVE remediation plan, audit log search, software inventory, ...   |
+----------------------------------------------------------------------+
| Generated tools                                                      |
|  - one tool per remaining spec operation, verb-first snake_case      |
|  - shared runtime: pagination, destructive guard, error mapping      |
|  - Action1 OpenAPI 3.1 snapshot, SHA-pinned (spec/openapi.sha256)    |
+----------------------------------------------------------------------+
| Shared infrastructure                                                |
|  - Action1Client (auth, retry, timeouts, path safety, error mapping) |
|  - TokenProvider (refresh_token fallback, proactive refresh)         |
|  - destructive guard, org allowlist, toolset filter                  |
|  - structured stderr logger with redaction                           |
|  - Markdown table renderer, response size budgets                    |
+----------------------------------------------------------------------+

如果生成的工具与精选工具同名,代码生成器(src/codegen/generate.ts)会舍弃生成的工具;SKIP_OPERATION_IDS(src/codegen/curated-overrides.ts)中列出的操作也会跳过。设计决策记录在 docs/adr/ 中。

配置

所有配置均通过环境变量完成。将 .env.example 复制为 .env 并填写;空值表示“使用默认值”。node dist/index.js --help 会列出相同的变量。

变量默认值说明
ACTION1_BASE_URL必填所在区域的 API 基础 URL,见下文。
ACTION1_CLIENT_ID必填Action1 > Settings > API Credentials 中的 OAuth2 客户端 ID。
ACTION1_CLIENT_SECRET必填OAuth2 客户端密钥,在创建凭据时仅显示一次。
ACTION1_ORG_ID未设置默认组织 UUID;工具可通过 org_id 覆盖。建议设置。
ACTION1_ALLOWED_ORG_IDS任意以逗号分隔的组织 UUID,工具可操作这些组织;其他组织将被拒绝。HTTP 和共享配置中建议设置。
ACTION1_ALLOW_ENTERPRISE_OPSfalse设置了 ACTION1_ALLOWED_ORG_IDS 时,也允许不绑定到某个允许组织的变更操作(企业设置、脚本库、角色、用户、企业级范围)。
ACTION1_ALLOW_DESTRUCTIVEfalse设置为 true / 1 / yes 时,允许执行会更改状态的工具。
ACTION1_ALLOW_ACCOUNT_OPSfalse还允许账户操作:对用户、角色、/me、企业账户、组织和订阅的更改,以及所有非 GET 的 action1_raw_request。
ACTION1_DESTRUCTIVE_AUTO_CONFIRMfalse仅适用于隔离的单操作员配置:省略每次调用中的 confirm: "YES"。dry_run 仍默认为 true。
ACTION1_TOOLSETSallall、read(只读工具)或 curated(不含生成的工具);多个逗号分隔的值取交集。
ACTION1_REDACT_PIIfalse在工具输出(包括 User Name 等报告列和 CSV 导出列)、资源读取结果及上游错误正文中,隐藏用户名、IP 和 MAC 地址、其他地址、序列号、电子邮件地址、Active Directory 字段和个人姓名。规则与限制见:SECURITY.md。
ACTION1_DEFAULT_TIMEOUT_MINUTES10默认脚本超时时间,范围为 0 到 10080。
ACTION1_DEFAULT_RETRY_MINUTES1440Action1 针对离线端点重试操作的时长,范围为 0 到 10080。
ACTION1_LAST_SEEN_STALE_MINUTES10端点的 last_seen 超过多少分钟后视为离线,范围为 1 到 1440:操作前的离线检查、action1_get_endpoint 的 connectivity.online,以及 action1_endpoints_summary 的新鲜 / 过期计数。
ACTION1_REQUEST_TIMEOUT_MS60000单次 Action1 API 调用(包括重试)的时间预算,范围为 1000 到 600000。
ACTION1_TOKEN_TIMEOUT_MS15000单次 OAuth 令牌尝试的超时时间,范围为 1000 到 600000。
ACTION1_LOG_LEVELinfodebug、info、notice、warn、error、critical、alert 或 emergency(不区分大小写)。
PORT3000HTTP 模式:监听端口。
HOST127.0.0.1HTTP 模式:绑定地址。
MCP_HTTP_TOKEN--http 模式下必填客户端必须发送的 Bearer 令牌,至少 16 个字符(openssl rand -hex 32)。
MCP_HTTP_ALLOW_NO_AUTHfalseHTTP 模式下不使用令牌;仅绑定 loopback 地址,用于本地开发。
MCP_HTTP_ALLOWED_HOSTSloopback 和绑定地址要接受的额外 Host 名称,例如反向代理后的公网名称。绑定到 0.0.0.0 / :: 时必填。
MCP_HTTP_ALLOWED_ORIGINSloopback origins要接受的浏览器 Origin 值。
TRUST_PROXYfalseExpress trust proxy:false、true、loopback、跳数或 CIDR 列表。在本地反向代理后方应设置为 loopback,使速率限制能够识别真实客户端 IP。

Action1 区域(ACTION1_BASE_URL):

区域基础 URL
欧洲https://app.eu.action1.com/api/3.0
北美https://app.action1.com/api/3.0
北美 2https://app.na-2.action1.com/api/3.0
英国https://app.uk.action1.com/api/3.0
澳大利亚https://app.au.action1.com/api/3.0

连接到 MCP 主机

主机传输方式文档
Claude Code (CLI)stdio安装:Claude Code
Claude Desktop (macOS / Windows)MCPB bundle 或 stdio安装:Claude Desktop
Claude.ai (web)Streamable HTTP安装:Claude.ai
Cursorstdio安装:Cursor
Continue.dev / Codystdio安装:通用

工具

docs/USAGE.md 是工具参考文档, docs/EXAMPLES.md 提供端到端示例。精心整理的工具层 简述如下:

发现(只读)

action1_list_organizations、action1_list_endpoints、 action1_endpoints_summary(服务端计数器,无论设备群规模大小,输出都很精简)、 action1_get_endpoint(规范路径,列表查询作为后备, 另附派生的 platform 和 connectivity.online)、 action1_search_endpoints(按主机名、用户、操作系统、 状态进行子串筛选)、action1_list_action_templates、action1_get_action_template、 action1_list_missing_updates、action1_list_vulnerabilities、 action1_list_recent_automations、action1_automations_summary。

执行(有破坏性,受保护)

action1_run_powershell(Windows;填充 success_exit_codes)、 action1_run_bash_macos(macOS;填充 run_script 的十个字段)、 action1_run_script(按操作系统路由)、action1_reboot_endpoint、 action1_deploy_update、action1_deploy_package、 action1_uninstall_program、action1_run_data_collection。它们都接受 target_type: "Endpoint"(默认值)或 "EndpointGroup"; 此时 action1_run_script 还需要 os("windows" 或 "macos"), 因为无法检测群组的单一操作系统。

轮询和结果(只读)

action1_get_automation_status、action1_get_automation_results、 action1_get_automation_output(筛除生命周期标记)、 action1_wait_for_automation。

工作流(有破坏性,受保护)

action1_execute_and_wait:启动操作、轮询直至结束,并返回筛选后的输出。 在 mode: "script" 下按操作系统路由,或在 mode: "template" 下运行指定 模板。

高级封装

action1_endpoint_groups_resolve(将模糊的群组名称解析为 UUID)、 action1_software_inventory_for_endpoint、action1_recurring_schedules、 action1_audit_log_search、action1_report_export、 action1_cve_remediation_plan。

自动生成

其余所有 Action1 API 操作均生成为动词优先的 snake_case 工具; 输入参数名称会规范化为 snake_case。参见 docs/api-coverage.md。

破坏性操作防护

标记为 destructiveHint: true 的工具只有在满足以下所有条件时才会执行:

ACTION1_ALLOW_DESTRUCTIVE=true    server env, restart required
ACTION1_ALLOW_ACCOUNT_OPS=true    server env, only for account operations
confirm: "YES"                    per call, exact (waived by auto-confirm)
dry_run: false                    per call, the default is true (preview)
// Preview only (default)
{ "tool": "action1_run_powershell",
  "arguments": { "endpoint_id": "<uuid>", "script_text": "Get-Date" } }
// -> { "dry_run": true, "would_send": { method, path, body } }

// Execute (server env: ACTION1_ALLOW_DESTRUCTIVE=true)
{ "tool": "action1_run_powershell",
  "arguments": { "endpoint_id": "<uuid>", "script_text": "Get-Date",
                 "dry_run": false, "confirm": "YES" } }

confirm 和 dry_run 是由模型自行设置的参数。它们可以防止意外操作, 但无法防范模型遵循隐藏在 Action1 数据中的指令(主机名、脚本输出、 审计文本)。真正能抵御这类风险的控制措施,是模型无法更改的部分:环境开关、 ACTION1_ALLOWED_ORG_IDS、ACTION1_TOOLSETS=read、API 凭据的角色, 以及 MCP 主机针对每个工具的审批设置。请勿在主机中对有破坏性的工具选择“始终允许”。 有关威胁模型,请参阅 docs/SECURITY.md。

示例

更多内容见 docs/EXAMPLES.md:

# 1. Fleet health check
> "How many endpoints are online and how many need a reboot?"
  agent -> action1_endpoints_summary

# 2. Read-only PowerShell on one Windows host
> "What's the OS build of <hostname>? Run Get-ComputerInfo OsBuildNumber."
  agent -> action1_search_endpoints { query: "<hostname>", fields: ["hostname"] }
  agent -> action1_run_powershell { endpoint_id: <uuid>,
             script_text: "Get-ComputerInfo OsBuildNumber",
             dry_run: false, confirm: "YES" }
  agent -> action1_wait_for_automation { instance_id: <id>, endpoint_id: <uuid> }

# 3. CVE remediation plan
> "What's needed to remediate CVE-2024-XXXX?"
  agent -> action1_cve_remediation_plan { cve_id: "CVE-2024-XXXX" }
  agent -> action1_deploy_update { ... }   (after operator confirmation)

速率限制

Action1 未公布速率限制。在开发期间,EU 实例每秒约 10 个请求未触发 HTTP 429;这只是观察结果,并非保证。如果 Action1 返回 429:

  • 对于读取和修改操作,客户端都会遵循 Retry-After(上限为 60 s),因为 429 表示请求未被处理。
  • 对于批量操作,优先使用 target_type: "EndpointGroup",而不是对每个端点分别调用;Action1 会在服务器端分发操作。

服务端没有出站限流,也不会缓存列表响应。 重试策略位于 src/client/action1Client.ts。

Action1 所需权限

工具只能执行 API 凭据对应角色所允许的操作。 docs/permissions.md 列出了每项操作所需的权限,这些权限根据固定版本规范中的权限标签生成。仅授予所用工具所需的权限。在 Agent 尝试执行破坏性操作之前,读取 action1://me 或运行 /check-my-permissions 提示词,查看配置的凭据可以执行哪些操作。

文档

文件内容
docs/INSTALLATION.md所有受支持 MCP 主机的分步设置指南。
docs/USAGE.md精选层和包装层的工具参考、资源、提示词、输出格式、取消和日志记录。
docs/EXAMPLES.md端到端操作指南(修补、分诊、CVE 修复)。
docs/DEPLOYMENT.mdstdio、反向代理后的 HTTP、systemd、MCPB 和生产环境检查清单。
docs/SECURITY.md威胁模型、破坏性操作防护、流向大模型的数据以及漏洞报告方式。
docs/permissions.md每项操作和工具所需的 Action1 权限(自动生成)。
docs/TROUBLESHOOTING.md常见故障及解决方法。
docs/FAQ.md涵盖各类主题的问题。
docs/CONTRIBUTING.md开发环境设置、代码生成工作流、测试和拉取请求。
docs/api-coverage.md规范中的操作如何映射到工具;完整表格见 docs/_coverage_table.md。
docs/api-coverage-gaps.md服务未覆盖或仅在附带限制条件的情况下覆盖的内容。
docs/GOTCHAS.mdAction1 API 的特殊行为,以及精选工具使用的未公开端点。
docs/adr/架构决策记录。
docs/403-investigation.md为什么 /general 并非真实路径。
evals/面向 LLM 驱动的测试框架的评估问题。
TESTING.md测试层级和实时运行记录。
CHANGELOG.md发行说明。

开发

npm run dev               # tsx watch (stdio)
npm run typecheck         # source
npm run typecheck:tests   # tests (tsconfig.test.json)
npm run lint
npm test                  # all test categories
npm run test:unit
npm run test:integration  # MCP protocol round trips
npm run test:security     # destructive-guard truth table, redaction
npm run test:performance  # size limits and rendering at scale
npm run test:coverage     # tests with the coverage thresholds from vitest.config.ts
npm run test:e2e          # builds the MCPB bundle, starts the built servers over stdio
npm run check             # lint, both typechecks, format check, tests (what CI gates on)
npm run codegen           # regenerate src/tools/generated/index.ts from the spec
npm run spec:check        # compare the pinned spec with the one Action1 serves
npm run inspector         # MCP Inspector against the built stdio server

macOS 载荷构建器测试采用了严格的规则:它们用于保护逆向工程得到的字段集合。如果更改载荷,请同步更新测试。

路线图

待考虑的候选事项(另见 docs/api-coverage-gaps.md):

  • 通过发行工作流发布带来源证明的 npm 版本(已配置可信发布者;首次工作流发布尚待完成)。
  • 在测试端点上,对验证状态下列出的破坏性工具进行实时验证。
  • 使用 Cloudflare Workers 部署 HTTP 传输层。

安全

请参阅 docs/SECURITY.md。请通过 https://github.com/mguttmann/action1-mcp/security/advisories/new 私下报告漏洞,不要在公开议题中披露。

许可证

MIT © 2026 mguttmann,但有一项例外:src/codegen/spec/openapi.json 中随附的 Action1 API 规范归 Action1 Corporation 所有,不受 MIT 许可证涵盖。请参阅 NOTICE。

致谢

评论

支持 Markdown

第一次接触 MCP?

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

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