
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 分