
Ci Sentinel
io.github.Baneado98由 GitHub 账号 Baneado98 发布v0.1.0更新于 Oct 24, 2026
Multi-CI security scanner with a live threat-intel feed of compromised CI components
概览
一个托管式 CI 安全扫描器,让助手审查 GitHub Actions、GitLab CI 等七种流水线配置中的注入与供应链缺陷。
- 可以做什么
- 审计 CI 流水线配置文件:传入工作流文件名到 YAML 的映射,或单个工作流源码,免费层返回 CRITICAL/VULNERABLE/RISKY/HARDENED 结论及各类问题数量。文件会自动分派给 GitHub Actions、GitLab CI/CD、Jenkins、CircleCI、Azure Pipelines、Bitbucket Pipelines 和 Travis CI 的分析器。付费深度审计返回每条发现的文件与行号、完整注入污点路径、传递性 action 供应链图、含修正片段与统一 diff 的具体修复、A–F 合规评分卡以及 SARIF 报告。检查项包括表达式与变量注入、pwn request 检出、令牌权限、未固定版本的 action/orb/pipe、OIDC 云信任配置、制品与缓存投毒,以及对照实时威胁情报源识别已知被入侵组件和标签重写。
- 适用场景
- 适合在审查或加固 CI/CD 流水线定义时使用,让助手发现普通 YAML 检查工具看不到的注入、密钥泄露和供应链风险,包括已知被入侵的 action 与标签重写。
- 运行要求
- 远程 MCP 端点,未声明身份验证。README 另提供用 npx 启动的 npm 客户端,它是瘦客户端,会把分析发送到托管服务器。付费深度审计需要 CI_SENTINEL_KEY 环境变量中的预付密钥,或按次 USDC 支付。
安装
在 SourceWeft 中
- 打开 控制台中的 Ci Sentinel,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.Baneado98%2Fci-sentinel/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"ci-sentinel": {
"type": "http",
"url": "https://ci-sentinel.vercel.app/mcp"
}
}
}README
ci-sentinel 🛡️
Security auditor for SEVEN CI ecosystems — GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, Azure Pipelines, Bitbucket Pipelines and Travis CI — finds the supply-chain and injection flaws a YAML linter can't see, before an attacker's pull/merge request runs code with your repository secrets.
Available as an MCP server (for Claude / Cursor / any agent) and a pay-per-call HTTP API (x402 USDC or a prepaid card key).
Give it your .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile,
.circleci/config.yml, azure-pipelines.yml, bitbucket-pipelines.yml and/or
.travis.yml (each file is auto-routed to the right analyzer) and get a
CRITICAL / VULNERABLE / RISKY / HARDENED verdict with the exact flaws.
What it catches that a linter can't
…and the same depth for GitLab CI/CD (.gitlab-ci.yml)
…and five more CI systems, same taint model
…plus two deep cross-domain detectors a one-shot agent can't replicate
Each analyzer knows the SAFE variables (SHAs, numeric ids, trusted slugs —
BITBUCKET_COMMIT, TRAVIS_PULL_REQUEST, pipeline.git.revision, …) and the
SAFE OIDC trusts (sub pinned to repo:org/repo:ref:refs/heads/main /
:environment:prod with aud set) so it doesn't flag every $VAR or every
trust. Zero false positives on hardened configs.
It is a real static analyzer: a line-aware workflow YAML parser → a model of
triggers/jobs/steps/permissions/actions/outputs/needs → an inter-step/inter-job
taint resolver + permission + supply-chain detectors → a scored verdict with
per-finding file:line, the full taint path, concrete remediation, and a
SARIF 2.1.0 report (with codeFlows) you can upload to GitHub code scanning.
…and it doesn't just flag — it FIXES, and it GRADES
MCP server (free)
Tool: audit_ci_security. Pass files (a map of workflow filename → YAML) or
source (one workflow). The free tier returns the verdict and how many issues
of each kind were found.
Deep audit (deep: true) — two ways to pay
The deep audit returns every finding with file:line, the full inter-step/
inter-job injection taint path, the transitive action supply-chain graph, a
concrete fix (corrected snippet + unified diff) per finding, an A–F compliance
scorecard with a per-control breakdown, and a SARIF 2.1.0 document with inline
fixes (uploadable to GitHub code scanning via github/codeql-action/upload-sarif).
- 💳 Card (Stripe) — buy a prepaid key at
https://ci-sentinel.vercel.app/pro/checkout, then set"env": { "CI_SENTINEL_KEY": "<key>" }in your MCP config. - 🪙 x402 (USDC) — AI agents pay per call automatically (USDC on Base), no signup.
HTTP API
Why hosted? (the moat)
The npm package is a thin client: it runs no analysis locally. The parser,
taint engine, action-graph resolver and detector knowledge base run server-side
only, behind the paywall — so the premium material (findings, evidence, taint
paths, remediation) never lands on the caller's machine. A npm pack ships only
dist/mcp.js, dist/mcpServer.js and dist/types.js; the engine is never in the
tarball (verified automatically by npm run test:moat).
How the live feed stays live (the update pipeline)
The threat-intelligence feed is ingested, not hard-coded. A periodic job runs server-side:
- Fetch advisories from two public sources (no paid keys):
- GitHub Security Advisory DB —
GET /advisories?ecosystem=actions(public;GITHUB_TOKENonly raises the rate limit, it is not required). - OSV.dev — the
GitHub Actionsecosystem, queried for the components we already track plus everything GHSA just surfaced (so OSV enriches them).
- GitHub Security Advisory DB —
- Normalize each advisory into a
ThreatRecord— owner/name split, incident class inferred from the advisory text (tag-rewrite / maintainer-compromise / malicious / CVE…), severity bucketed, the affected version range parsed into a selector, the fixed version captured (so an upgraded pin does not fire). - Merge the rows onto the curated seed (
ingestFeed: union refs, keep the worst severity, widen the affected range, de-dup by identity). - Store the snapshot in Cloudflare KV. Every
/pro/auditreads it back viakvFeedProvider, falling back to the compiled seed if KV is cold — so the detector is never blocked and never worse than the static baseline.
Schedule it with Vercel Cron ({ "path": "/internal/refresh-feed", "schedule": "0 */6 * * *" }, guarded by FEED_REFRESH_TOKEN) or a scheduled
GitHub Action that runs node scripts/refreshFeed.mjs. GET /feed/status reports
the live snapshot's version, generatedAt and record count — the public freshness
proof. None of this ships in the npm client.
Development
Heuristic static analysis of the workflow YAML you provide — it cannot see repo-level default token permissions, branch protections or org policy, and does not execute the pipeline. Treat findings as leads to verify.
Source & docs: https://github.com/Baneado98/ci-sentinel · MIT
来源:README.md,提交 0e3f188
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具必需15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分