跳到正文
Hacker News· princejain756·· 6 天前AI 评分60

Ctxvitals:一条命令审计 AI 智能体栈的 token 开销与安全风险

Show HN: Ctxvitals – a vitals check for your AI agent stack (npx ctxvitals)

AI 导读

作者发布 Ctxvitals,用 npx ctxvitals 一条命令测量 MCP server、skill、command 和规则文件在智能体读取首条消息前消耗的 token。

正文 · AI 翻译

npm license

为你的 AI agent 技术栈点亮一座灯塔。 一条命令即可测量每个 MCP 服务器、技能、命令和规则文件实际消耗的 token 数——在你的 agent 读取任何一条消息之前。

npx ctxvitals

这要解决的问题

运行 15 个以上 MCP 服务器的人,仅工具 schema 每轮就可能烧掉 60,000+ tokens。在此之前,唯一的办法就是 grep JSONL 会话日志然后靠猜。ctxvitals 会自行启动每个 stdio MCP 服务器,读取真实的 tools/list 响应,并打印出实际账单:

CTX VITALS v0.1.0 · Princes-MacBook-Pro-2095 · 2026-10-12
══════════════════════════════════════════════════════════
GRADE: F (1/100)

CONTEXT BILL — tokens burned before the first message
   39,402 tok  skill descriptions ×901                static
   26,487 tok  MCP claude-code (20 tools)             probed
    6,597 tok  MCP chrome-devtools (30 tools)         probed
    4,480 tok  AGENTS.md (rule)                       static
    4,035 tok  MCP blender (9 tools)                  probed
    3,279 tok  MCP hostinger-vps (14 tools)           probed
    3,279 tok  MCP server-31-97-202 (14 tools)        probed
    3,279 tok  MCP local-filesystem (14 tools)        probed
    1,052 tok  MCP browsermcp (12 tools)              probed
      363 tok  MCP brave-search (2 tools)             probed
  ──────────────────────────────────────────────────
   92,413 tokens every turn

SECURITY
  HIGH    origin/SKILL.md        pipes remote content into a shell
  HIGH    composio-cli/SKILL.md  pipes remote content into a shell
  MEDIUM  mcp:claude-code        plaintext secret in config env (ANTHROPIC_API_KEY)
  MEDIUM  mcp:computer-use       command not found — stale config
  LOW     mcp:server-31-97-202   duplicate of mcp:hostinger-vps
  LOW     mcp:local-filesystem   duplicate of mcp:hostinger-vps

是的,这是来自真实机器的真实报告。同一个 MCP 服务器以三个名字安装。配置文件里有一个明文 API key。还没写第一条 prompt,92K tokens 就没了。

--html 标志会生成一份可分享的报告卡(demo.html):

ctxvitals report card

它检查什么

层面 方式
MCP token 成本 启动每个 stdio 服务器并读取真实的 tools/list schema——实际字节数,而非估算
技能 统计始终加载的 frontmatter token 数与触发时才加载的正文 token 数
规则文件 CLAUDE.md / AGENTS.md / GEMINI.md / .cursorrules / .mdc——始终在上下文中
安全 curl-pipe-sh、提示注入短语、硬编码密钥、数据外泄模式、未固定版本的包、MCP env 中的明文密钥、非 TLS 远程服务器
卫生状况 重复的服务器、指向已失效二进制的陈旧配置、挂起或崩溃的服务器
评级 一份可分享的 A–F 评分卡

它会扫描 ~/.claude、~/.cursor、~/.codeium/windsurf、~/.copilot、 ~/.config/devin、~/.agents、~/.codex、~/.gemini,以及当前目录下的项目级 .claude/.cursor/.devin/.agents 目录和 mcp.json 配置。零依赖,Node 18+。

用法

npx ctxvitals              # full audit: discovery + live MCP probing
npx ctxvitals --no-probe   # static only, no servers launched
npx ctxvitals --json       # machine-readable output
npx ctxvitals --html report.html   # shareable HTML report card
npx ctxvitals --badge      # README badge markdown with your grade

探测会从你自己的 MCP 配置中运行完全相同的 command+args——与你的 agent 客户端每次启动时所做的完全一致。不会执行其他任何东西。 --no-probe 可选择退出。

徽章

[![CTX Vitals: A](https://img.shields.io/badge/ctxvitals-A%2098%2F100-brightgreen)](https://github.com/princejain756/ctxvitals)

把它放进你的 MCP 服务器或技能包的 README 中,让用户在安装前就能看到你的工具要花多少成本。这才是重点。

也可作为技能安装

此仓库附带 skills/ctxvitals/SKILL.md,因此 Claude Code / Devin / 任何 兼容 SKILL.md 的 agent 都可以自行运行审计:

git clone https://github.com/princejain756/ctxvitals
cp -r ctxvitals/skills/ctxvitals ~/.claude/skills/
# then ask your agent: "audit my agent stack"

评分

A ≥ 90 · B ≥ 80 · C ≥ 70 · D ≥ 55 · F < 55

扣分来自实测数字,而非感觉:上下文账单大小、超过 10 个的服务器数量、按严重程度划分的安全标记、未固定版本的包、损坏的配置。 评分逻辑在 bin/ctxvitals.js 中——去读它、质疑它、给它提 PR。

路线图

  • 公开排行榜——热门 MCP 服务器和技能的实测 token 成本 + 标记
  • --watch 模式:当技术栈变更导致账单膨胀时发出警告
  • 带 --max-tokens / --min-grade 门禁的 CI 模式
  • 各客户端兼容性矩阵(哪里会出问题)

为什么是一个工具而不是又一份清单

Awesome 清单告诉你有什么。注册表告诉你发布了什么。 两者都不会告诉你它要花多少成本、是否安全,或者是否能在你的环境上运行。这就是缺失的生命体征层。

MIT © Prince Jain

来源:Hacker News · github.com