mcpField
C
Cynical Sally

Cynical Sally

本地服务
github.com/w1ckedxt开发工具10117 周前更新

关于 Cynical Sally

Cynical Sally 是一个代码审查 MCP 服务与命令行工具,以资深工程师的视角给出 0 到 10 分的评分、带证据的问题列表和可用的修复建议。面向在 Claude Code、Cursor 或 Windsurf 中工作的开发者。提交前可用 --dry-run 查看将发送的内容。

主要功能

  1. 010 到 10 分代码评分
  2. 02带证据的问题列表与修复建议
  3. 03--dry-run 预览发送内容并生成 SHA-256 凭证
  4. 04自动跳过 .env、密钥和证书等敏感文件
  5. 05CI 中通过 --fail-under 设置评分阈值
  6. 06提供 8 个 MCP 工具

适用场景

  1. 01在 Claude Code 或 Cursor 中让 Agent 调用代码审查
  2. 02在 CI 流水线中按评分阈值拦截低质量代码
  3. 03审查 PR 差异或暂存的变更
  4. 04在 README 中添加由评分生成的徽章

MCP 相关

Cynical Sally 以 MCP 服务的形式运行,向 MCP 客户端暴露 sally_roast、sally_review_pr、sally_refactor 等 8 个工具。Agent 可以按路径调用 sally_roast,由服务在本地读取文件。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cynical-sally": {
"command": "npx",
"args": [
"-y",
"@cynicalsally/cli"
]
}
}
}
启动命令npx -y @cynicalsally/cli

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

安装包
npm@cynicalsally/cli0.7.0

工具

8

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

参数类型必填说明
langstring否Sally 回复所用的 ISO 639-1 语言代码(例如 'en'、'nl')。默认为英语。
modeenum否quick = 快速吐槽;full_truth = 深入分析,按优先级排列问题并提供可执行的修复方案(每月免费 1 次,之后需使用 Full Suite)quick | full_truth
toneenum否Sally 的表达风格:cynical(默认,讽刺拉满)、neutral 或 professional——发现的问题相同,只是措辞不同。cynical | neutral | professional
filesarray否包含内联内容的代码文件(`paths` 的替代方式)
pathsarray否要审查的文件或目录路径。Sally 会在本地读取(跳过二进制文件、超大文件和常见机密文件)。优先使用此参数而非 `files`,这样你无需自行读取并传递内容。
shareboolean否发布公开分享卡片并附上链接——卡片仅显示评分和 Sally 的一句话点评,绝不显示代码。仅在用户明确要求分享吐槽结果时使用。
previewboolean否试运行:准确返回将要发送的内容(文件列表、字节大小、token 估算值、SHA-256 哈希,以及跳过的文件及原因),且不向后端发送任何内容。用户想在代码点评前确认哪些内容会离开其设备时使用。

详细介绍

愤世嫉俗的 Sally

愤世嫉俗的 Sally

毫不留情的代码审查。在终端和 AI 编辑器中使用。
因为“你说得完全正确”很可能完全错了。
npm i -g @cynicalsally/cli · 适用于 Claude Code、Cursor 和 Windsurf 的 MCP 服务

Cynical Sally 评审结果 Sally 评分 npm 版本 npm 下载量 MCP 注册表 Cursor 目录 Glama 评分 许可证

将 Cynical Sally 添加到 Cursor


你的 AI 编程搭档在骗你。Sally 不会。

Sally 犀利点评——在终端中进行的真实审查

她是你的代码最不想遇到的资深工程师。评分范围为 0 到 10,指出有证据支持的真实问题,并提供切实可用的修复方案。

可作为 CLI 工具使用,也可作为 MCP 服务在 Claude Code、Cursor 和 Windsurf 中使用。

Sally 的代码审查评分和问题 Sally 提供的可执行修复方案和评审结果

安装

npm install -g @cynicalsally/cli

或直接运行,无需安装:

npx @cynicalsally/cli roast ./src/

要求: Node.js 18+

准确查看哪些内容会离开你的设备

把代码发送到你无法控制的服务,需要的不只是“相信我”。因此,Sally 让你可以自行验证:

sally roast --dry-run ./src/

--dry-run 会收集所有内容,就像即将开始犀利点评一样——但不会发送任何内容。它会打印出确切的载荷:每个文件的路径、字节大小和令牌估算;哪些文件被拦下,以及原因(.env、密钥、证书、二进制文件、匹配 .gitignore 的文件、大小限制);并在 .sally/ 中写入本地 SHA-256 回执,以便你逐字节验证原本会上传的内容。

WOULD SEND 3 files · 91 B · ~24 tokens (est.)
  src/app.ts        36 B   ~9 tok   68a3be428746…

HELD BACK 2 items — kept on your machine
  ✖ secret (2) — looks like a secret — never leaves your machine
      .env
      server.key

机密文件(.env、SSH 密钥、证书、凭据文件)会在发送任何内容之前,先在你的设备上跳过——你可以用 --dry-run 自行验证。只审查你获准上传的代码。本地报告会保存在 .sally/ 中——请将其添加到 .gitignore:

.sally/

完整的数据流说明请参阅下文的隐私与安全。

快速开始

# Sally auto-detects what to review
sally roast
# → staged changes? reviews those
# → unstaged changes? reviews those
# → recent commit? reviews that
# → nothing? scans the directory

# Roast a file or directory
sally roast src/utils/auth.ts
sally roast ./src/

# Roast staged changes before you commit
sally roast --staged

# Compare your branch against main
sally roast --diff main

# Deep analysis with issues + actionable fixes
sally roast ./src/ -m full_truth

# Run deep analysis in the background (OS notification when done)
sally roast ./src/ -m full_truth --bg

# See exactly what would be sent — and send nothing
sally roast --dry-run ./src/

# Get a shareable roast card (saved to .sally/)
sally roast ./src/ --card

# Publish a share link — only the score + sneer go public, never your code
sally roast ./src/ --share

犀利点评选项

sally roast [paths...] [options]

  --staged              Review only staged git changes
  --diff <branch>       Compare against another branch (e.g., main)
  -m, --mode <mode>     "quick" (default) or "full_truth" (deep dive)
  --tone <tone>         "cynical" (default), "neutral", or "professional"
  --lang <lang>         Response language code (default: "en")
  --json                Output raw JSON (for piping or scripting)
  --fail-under <score>  Exit code 1 if quality score is below threshold
  --ci                  CI mode: compact output, exit codes
  --bg                  Run Full Truth in background, get OS notification when done
  --dry-run             Print the exact payload (files, sizes, tokens, SHA-256) and send NOTHING
  --card                Print + save a shareable roast card after the review
  --share               Create a public share link (cynicalsally.com/card/…) — score + sneer only, never code

获取仓库评分,并用徽章证明

让 Sally 评判整个仓库,并为你生成一个带有评分的 README 徽章:

sally verdict

她会为仓库打分,然后输出可直接粘贴的徽章 Markdown:

[![Cynical Sally Verdict](https://cynicalsally.com/api/v1/badge/repo/you/repo)](https://cynicalsally.com)

评分达到 8 分或以上,徽章就值得骄傲地戴上。评分较低的话,嗯—— 这只是诚实地表明你无论如何都会发布。无论结果如何,徽章都会链接回来, 所以每个展示它的 README 都会替你炫耀。

懒得复制粘贴?Sally 会帮你挂上去:

sally badge --add   # inserts the badge into README.md, right under the title
sally badge         # just prints the markdown (and your current score)

每次运行新的 sally verdict,徽章图片都会自动更新——添加一次, 永久接受评判。


Sally 全套工具

六款工具,三种用途。你合作过的最诚实的代码审查员——既能在终端中使用,也能在 AI 编辑器中使用。

Sally 全套工具

更快发布 — review-pr + refactor · 少些难堪 — explain + brainstorm · 打磨得更适合人类 — frontend + marketing


解释
sally explain

Sally 会读懂代码库里别人留下的意大利面式代码,并把它翻译成通俗易懂的语言。只讲它实际做什么,冷静、清晰,绝不粉饰。

sally explain src/utils/auth.ts

# Pipe code directly
cat legacy-module.js | sally explain

# Explain the current directory
sally explain


重构
sally refactor

并排展示前后对比。Sally 会解释为什么其中一个会让你在凌晨 3 点值班时挥之不去。

sally refactor src/components/Dashboard.tsx

# Refactor current directory
sally refactor


PR 审查
sally review-pr

Sally 会像一位有时间、有主见、完全没必要客气的资深工程师那样审查你的 PR。

# Review PR #42 (requires GitHub CLI)
sally review-pr 42

# Review current branch vs main
sally review-pr

# Pipe a diff
git diff main | sally review-pr


头脑风暴
sally brainstorm

说说你的架构构想,Sally 会告诉你它在规模扩大时会在哪三方面崩溃。比事后复盘便宜。

sally brainstorm "Microservices for a 2-person team?"

# Brainstorm about the current project
sally brainstorm


前端审查
sally frontend

Sally 会告诉你为什么组件每输入一个字符就重新渲染,以及为什么你的 z-index 牵一发而动全身。

sally frontend src/components/Header.tsx

# Review all frontend code in a directory
sally frontend ./src/


营销审查
sally marketing

先让 Sally 审阅你的文案,再交给客户。他们可不会像她这么有建设性。

sally marketing "Ship faster with AI-powered code reviews"

# Review your README and landing page copy
sally marketing README.md


每款工具都接受 文件路径、原始文本或管道传入的 stdin。每款工具都包含 1 次免费试用,无需账号。

CI/CD 集成

根据代码质量为流水线设置门槛:

# GitHub Actions
- name: Sally Code Review
  run: npx @cynicalsally/cli roast ./src/ --fail-under=5 --ci

--ci 会提供精简输出和退出码。--fail-under 会在分数低于阈值时使构建失败。添加 --json 可获取机器可读的输出。

MCP 服务

Sally 可作为 MCP 服务在 Claude Code、Cursor 和 Windsurf 中运行。

Glama 上的 Cynical Sally MCP 服务

Claude Code
claude mcp add cynical-sally -- npx @cynicalsally/cli mcp
Cursor

一键安装:

将 Cynical Sally 添加到 Cursor

或者添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(每个项目单独配置):

{
  "mcpServers": {
    "cynical-sally": {
      "command": "npx",
      "args": ["@cynicalsally/cli", "mcp"]
    }
  }
}
Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "cynical-sally": {
      "command": "npx",
      "args": ["@cynicalsally/cli", "mcp"]
    }
  }
}
可用工具
MCP 工具功能
sally_roast代码审查,提供评分、问题和修复建议
sally_explain以 Sally 的个性风格解释代码
sally_review_pr审查 PR 差异
sally_refactor提供重构建议,并展示前后对比
sally_brainstorm对想法和方案提供反馈
sally_frontend前端/UI 代码审查
sally_marketing营销文案审查
sally_usage查看配额和账户状态

按路径审查——Agent 只需向 sally_roast 传入 paths(文件或目录);Sally 会在本地读取这些内容并跳过二进制文件和机密文件,因此 Agent 无需自行读取并传入内容。

提示词——在支持展示 MCP 提示词的客户端中,Sally 还提供现成的斜杠命令意图(roast、review-pr、explain)。

在终端中运行 sally mcp,查看设置说明。

所有命令

命令描述
sally roast [paths...]审查文件、目录或 git 变更
sally verdict为代码仓库评分,并获取 README 徽章
sally badge [--add]输出徽章 Markdown,或将其添加到 README.md
sally explain [file]解释代码的实际作用
sally refactor [file]提供重构建议,并展示前后代码
sally review-pr [pr]审查 PR 差异
sally brainstorm "idea"对想法和方案提供反馈
sally frontend [file]前端/UI 代码审查
sally marketing "copy"营销文案审查
sally login <email>通过魔法链接登录
sally logout清除已存储的会话
sally usage查看配额和账户状态
sally upgrade升级到 Sally 的 Full Suite
sally results查看后台审查结果
sally mcpMCP 服务设置说明

免费使用

每月可免费进行 90 次代码审查,无需账户。每款高级工具均包含免费试用。

sally usage     # Check your quota
sally upgrade   # Unlock the Full Suite

隐私与安全

你的代码属于你。别只听我们说——运行 sally roast --dry-run,在发送任何内容之前查看确切的载荷。以下是载荷的处理方式:

  • 发送前先验证。 --dry-run 会打印每个文件、文件大小、令牌估算值,以及一份精确显示将要上传内容的 SHA-256 回执,并且不会发送任何内容。MCP sally_roast 工具也有相同的 preview 模式。
  • 仅为审核而发送。 你选择的文件会通过 HTTPS 传输,并实时处理以生成审核结果——这就是它们离开你设备的唯一原因。
  • 绝不写入磁盘、日志或分析系统。 你的源代码会在内存中处理,并在分析后丢弃。它绝不会存入数据库、写入应用日志或错误追踪,也绝不会发送给任何第三方 APM 或分析服务。我们会保留审核结果(评分、问题),而不是你的源代码。
  • 绝不用于训练、出售或共享。 分析通过 Anthropic 的 API 运行,该 API 不会使用提交的内容进行训练。
  • 只处理你指定的内容。 Sally 不会浏览你的代码库、读取你未提供的文件,也不会扫描你的项目或计划。秘密文件(.env、密钥、证书、凭据文件)会在你的设备上、任何内容发送之前跳过,--dry-run 会准确显示哪些文件被跳过。
  • 共享需主动选择,且绝不包含代码。 除非你传入 --share,否则不会发布任何内容;即使传入该参数,公开卡片也只包含评分和 Sally 的一句话点评。
  • 默认匿名。 审核结果关联的是随机设备 ID,而不是你的身份,除非你为 Full Suite 关联电子邮件。配置存储在本地的 ~/.sally/config.json 中。
  • 发布版本已签名。 npm 软件包发布时附带 provenance——一种公开的加密证明,将每个发布版本与生成它的确切源代码提交和 CI 构建关联起来。

完整的工程细节——数据流图、保留的数据、子处理商和日志策略——请参阅 docs/PRIVACY.md。面向用户的摘要:cynicalsally.com/privacy。

参与贡献

发现了 Bug 或有功能创意?提交 issue。Sally 保证只会稍微吐槽一下你的 issue 标题。

许可证

MIT


cynicalsally.com · npm · issues

评论

支持 Markdown

第一次接触 MCP?

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

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