CertScore.ai

ai.certscore由 certscore.ai 發布官方發布者v0.2.32更新於 Nov 7, 2026

MCP server for CertScore.ai public website risk-signal workflows.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取安全與監控

概覽

CertScore.ai 的託管 MCP 服務(mcp.certscore.ai),由 certscore.ai 發布;需要 OAuth 登入;Streamable HTTP;14 個工具。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

發布者
certscore.ai
端點
mcp.certscore.ai
最近檢查

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CertScore.ai,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.certscore%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "certscore-ai": {
      "type": "http",
      "url": "https://mcp.certscore.ai/mcp"
    }
  }
}

README

CertScore

CertScore (certscore.ai) is a production-minded MVP for scanning public websites for potential accessibility, privacy, cookie, policy, and disclosure risk signals. It is a risk signal and monitoring product, not a legal certification platform.

Monorepo structure

text
website-signal-risk-scanner/├─ apps/│  ├─ web/│  └─ validation-worker/├─ packages/│  ├─ shared/│  ├─ web-bot-auth/│  ├─ db/│  └─ ui/├─ docs/├─ .env.example├─ turbo.json├─ package.json└─ pnpm-workspace.yaml

Workspace packages

  • apps/web: product-facing web app and control-plane workflows
  • apps/validation-worker: active validation runtime owned by WC01
  • packages/shared: shared constants, types, validators, scoring config, and scheduling helpers
  • packages/web-bot-auth: server-only Web Bot Auth signing and key-directory helpers
  • packages/db: PostgreSQL query helpers, migrations, seed SQL, and env helpers
  • packages/ui: reusable UI primitives

Repo boundary

WC01 is now the product/control-plane repo.

  • product web flows, scan creation, reporting, and validation stay here
  • the standalone scanner runtime now lives in WS01
  • scanner operational changes, crawler identity work, and scanner deploy flow should originate in WS01

What the MVP includes

  • public homepage with preview scan funnel
  • Better Auth with Google OAuth and email/password login flows
  • organization bootstrap and protected workspace routes
  • domain management, plan limits, and client grouping
  • DB-backed scan creation with scanner-service claiming
  • crawl/discovery, accessibility, privacy, and legal heuristics
  • deterministic scoring, canonical report payloads, and authenticated report UI
  • scanner-generated PDF generation and upload
  • regression summaries and scheduled rescans
  • lightweight branding for reports and PDFs

MCP Light

CertScore.ai MCP Light is the free, no-auth, hosted three-tool integration for public website privacy scans. It detects evidence-backed privacy, cookie, tracker, consent, policy, regulatory-review, HTTPS/TLS, and eligible Reject Path post-refusal signals. Results include a CertScore score and supporting evidence for human and agentic review; they are not legal advice, certification, or a compliance determination.

Add CertScore to Cursor · MCP Light landing page · Cursor Directory listing · Agent installation guide · Full installation reference · MCP package guide

Try it with: Use CertScore.ai to review [PUBLIC URL] before launch. Report the CertScore score, evidence-backed findings, Reject Path observations when available, coverage limitations, and the report URL.

Environment variables

This monorepo should use apps/web/.env.local as the single local development runtime env:

Use .env.example only as a reference template for shared keys. Do not rely on a root .env.local for app runtime configuration.

Recommended environment split inside WC01:

  • local web + local validation runtime: dedicated dev PostgreSQL database plus S3-compatible storage
  • production web + production validation runtime: dedicated production PostgreSQL database plus S3-compatible storage

Do not point localhost at the production database or production auth credentials unless you are intentionally testing production behavior.

Required for the web app:

  • NEXT_PUBLIC_APP_URL
  • DATABASE_URL
  • BETTER_AUTH_SECRET
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • S3_BUCKET
  • S3_REGION
  • S3_ACCESS_KEY_ID
  • S3_SECRET_ACCESS_KEY

Required for the validation runtime in WC01:

  • DATABASE_URL
  • OPENAI_API_KEY

Optional but recommended:

  • WORKER_CONCURRENCY
  • PLAYWRIGHT_BROWSERS_PATH
  • VALIDATION_OPENAI_MODEL
  • VALIDATION_NANO_MODEL
  • WEB_BOT_AUTH_ENABLED
  • WEB_BOT_AUTH_PRIVATE_KEY_PEM
  • WEB_BOT_AUTH_SIGNATURE_AGENT_URL

Local development setup

Use Node 22, 23, or 24 for local development. Node 20 is below the workspace engine floor, and Node 25 is not supported because it can fail DNS resolution for app routes and external service calls on localhost.

  1. Install dependencies:
    • pnpm install
  2. Copy the environment template:
    • cp apps/web/.env.example apps/web/.env.local
  3. Start a dedicated PostgreSQL instance for local development.
  4. Apply the SQL migrations from packages/db/migrations.
  5. Seed local development data when needed with packages/db/seed/0001_dev_seed.sql.
  6. Configure Better Auth provider settings:
    • Google OAuth if enabled
    • email/password and verification settings as needed
  7. Configure auth redirect URLs:
    • Google OAuth must allow Better Auth's provider callback route:
    • http://localhost:3000/api/auth/callback/google
    • http://127.0.0.1:3000/api/auth/callback/google
    • https://certscore.ai/api/auth/callback/google
    • /auth/callback is only an app alias route; it is not the redirect URI Better Auth initiates with Google
  8. Keep local and production auth isolated:
    • local NEXT_PUBLIC_APP_URL should be http://localhost:3000
    • local database and auth secrets should come from the dev environment
    • production secrets should exist only in the active AWS/web or worker deployment settings
  9. Create the S3-compatible bucket referenced by S3_BUCKET.
  10. Install Playwright Chromium for the validation runtime:
  • pnpm --filter @website-signal-risk-scanner/validation-worker exec playwright install chromium
  1. Start validation local development with a watched validation worker:
  • pnpm dev:validation
  1. Start the main local app by itself when needed:
  • pnpm --filter @website-signal-risk-scanner/web dev
  1. Use WS01 when you need the standalone scanner locally.
  2. Start the standalone scanner locally against the same dev database and storage env as localhost:3000:
  • pnpm dev:scanner:local
  1. Use the combined local runner only when you want web + validation together in WC01:
  • pnpm dev:all
  1. Run a validation scheduler sweep manually when needed:
  • pnpm dev:validation:scheduler

Development verification

Use these commands before shipping changes:

  • pnpm turbo run typecheck
  • pnpm turbo run build

Validation-specific checks:

  • pnpm --filter @website-signal-risk-scanner/validation-worker typecheck
  • pnpm test:scan-pipeline

The scan pipeline test is deterministic and runs locally from apps/validation-worker/src/validation/pipeline.test.ts.

The normalized concern lifecycle in WC01 is documented in docs/normalized-concern-pipeline.md.

CI validation

GitHub Actions workflow: .github/workflows/accessibility-validation.yml

  • worker-scan-pipeline-tests runs on pushes to main, pull requests, and manual dispatch. It installs Chromium, typechecks validation-worker, and runs pnpm test:scan-pipeline.
  • live-validation-smoke runs after the deterministic job and executes pnpm --filter @website-signal-risk-scanner/validation-worker smoke:validation only when the runtime secrets are configured.
  • If those secrets are missing, the live smoke job is skipped and only the deterministic scan pipeline job runs.

Runtime validation tooling

Use these lightweight checks before first deployment validation:

  • pnpm dev:storage:local
  • pnpm --filter @website-signal-risk-scanner/web check-env
  • pnpm check-env:validation
  • pnpm --filter @website-signal-risk-scanner/validation-worker check-env
  • pnpm --filter @website-signal-risk-scanner/validation-worker check-runtime

For local validation runs, pnpm dev:storage:local starts MinIO against the apps/web/.env.local S3 settings and creates the configured bucket when needed. Run it alongside pnpm dev:scanner:local and pnpm dev:validation:worker.

Use this runtime smoke helper:

  • pnpm --filter @website-signal-risk-scanner/validation-worker scheduler

The full runtime QA sequence is documented in docs/runtime-validation.md. The validation pipeline design and deployment shape are documented in docs/validation-pipeline-plan.md. The validation crawler deployment and VM runbook is documented in docs/validation-ops-runbook.md. Cloudflare Verified Bot setup is documented in docs/cloudflare-web-bot-auth.md.

Web Bot Auth

ConsentCheck can expose a signed HTTP Message Signatures key directory and sign outbound HTTP crawler requests for Cloudflare Verified Bot workflows.

Required configuration:

  • WEB_BOT_AUTH_ENABLED
  • WEB_BOT_AUTH_PRIVATE_KEY_PEM
  • WEB_BOT_AUTH_SIGNATURE_AGENT_URL
  • WEB_BOT_AUTH_EXPIRES_SECONDS
  • WEB_BOT_AUTH_INCLUDE_NONCE

Common commands:

  • pnpm web-bot-auth:generate
  • pnpm web-bot-auth:print
  • pnpm web-bot-auth:test-request
  • pnpm test:web-bot-auth

Production deployment

Web runtime

  • the live public web deployment target is the AWS ECS/Fargate path for certscore.ai
  • consentcheck.site is owned outside WC01 and must not be deployed by this repo
  • main deploys through .github/workflows/web-aws-ecs-deploy.yml
  • run pnpm ops:check:deploy before or after topology changes to catch stale local assumptions
  • run pnpm ops:check:live against the public hosts to verify runtime target and revision alignment after deploy
  • treat docs/aws-web-ecs-cutover-plan.md as the active web deployment runbook
  • treat docs/deploy-amplify.md as future-state reference material only

Validation And Scanner Runtime

  • do not use WC01 for the primary scanner deploy path
  • use WS01 for scanner runtime deployment
  • keep WC01 deployment guidance scoped to web and validation only
  • keep web production, validation worker, and scanner runtime as three distinct deployment paths
  • use the AWS validation deployment lane for WC01 validation runtime changes

Database, Auth, and Storage

  • create production PostgreSQL, Better Auth, and S3-compatible storage resources separate from local development
  • apply all migrations in order
  • configure the production site URL and production redirect URLs only
  • create the report storage bucket referenced by S3_BUCKET

Scheduler

Recommended production trigger:

  • run the validation scheduler sweep every hour if the validation runtime is enabled

Command:

  • pnpm dev:validation:scheduler

The primary scanner scheduler now lives in WS01.

Deployment readiness checklist

  • Environment variables configured
  • PostgreSQL database created
  • database migrations applied
  • Better Auth providers configured
  • S3-compatible storage bucket created
  • Playwright browsers installed
  • Worker process running
  • Scheduler cron configured
  • First domain scanned successfully
  • Report generated successfully
  • PDF export generated successfully

First production validation

After deployment, validate in this order:

  1. run the env and runtime checks above
  2. verify login and organization bootstrap
  3. verify preview scan flow
  4. verify full scan completion
  5. verify findings, scores, and report persistence
  6. verify PDF export
  7. verify regression on a second scan
  8. verify the hourly scheduler sweep path

Operational notes

  • The standalone scanner in WS01 owns crawl, auditing, scoring, reporting, PDF generation, and scheduled sweep logic.
  • PDF generation failures do not invalidate the scan or web report.
  • Regression calculation failures do not invalidate the scan or report.
  • The app validates critical env vars at runtime and now fails fast with clearer messages when required configuration is missing.

References

來源:README.md,提交 0bed26a

工具

14

certscore_get_connection_status

Check CertScore connection

Read current authenticated connection mode, granted scopes, workspace access, rolling scan quota and recovery action. No scan ID is needed and no scan is created. Use this to diagnose read-only access or quota limits; reconnect only for expired, revoked or expanded access.

無需輸入參數。

certscore_scan_site

Scan site

Use for a user-requested website launch review, vendor assessment, cookie/tracker inventory, consent/GPC investigation or privacy-policy review. A public URL or domain is enough. Creates a privacy scan or reuses an eligible recent completed scan; default freshness=latest saves new-scan quota. Use refresh only for an explicitly requested fresh scan or post-fix recheck. Retain scanId, poll certscore_get_scan_status only while active at retryAfterSeconds, then read certscore_get_scan_bundle. A preliminary preConsentPreview is not final findings or totals. Coverage includes pre-consent storage, trackers, consent and CMP signals, privacy-policy disclosures, transport security and GDPR/ePrivacy or CCPA/CPRA review signals. Results are automated observations, not legal advice, certification, or a compliance determination. https://certscore.ai/developers/mcp.

輸入參數url必填scanFromfreshnesstaskContextmaxWaitSecondswaitForCompletion

certscore_get_scan

Get CertScore scan

Retrieve the API v2 public-safe scan resource, including completed-limited no-go disposition, reason-specific guidance, and timing when available.

輸入參數scanId必填

certscore_get_scan_status

Get scan status

Returns lifecycle status for a stable CertScore scanId. Active responses include phase, heartbeat, estimated progress, retryAfterSeconds, and sometimes a bounded preliminary preConsentPreview. Terminal responses include completion status, CertScore score and risk metadata when available, coverage, persisted execution region and timestamps, report URL, and a next-action field. Preliminary observations are distinct from completed findings.

輸入參數scanId必填

certscore_get_report

Get CertScore Pulse report

Focused follow-up: retrieve a bounded Pulse report with high-signal TextContent and typed structuredContent, including customer-safe no-go messaging. For broad privacy questions, use certscore_get_scan_bundle first because it combines canonical findings, limitations, and pre-consent rows without redundant calls.

輸入參數detailformatscanId必填

certscore_get_evidence

Get CertScore Pulse evidence

Focused follow-up: retrieve a bounded public-safe evidence packet with a concise TextContent digest and typed structuredContent. For broad privacy questions, use certscore_get_scan_bundle first. Excludes raw cookie values, raw bodies, sensitive payloads, full DOM, and unredacted query values.

輸入參數scanId必填

certscore_get_report_evidence_page

Get report evidence page

For a focused question, use section=cmp, cms, consent, gpc, policy, tracking, transport, forms or accessibility. This returns selected retained report sections plus shared scan, score, findings and coverage context. CMP includes all 13 criteria with their assessment results and retained comparisons; CMS includes platform/version evidence and existing advisories. Policy also includes retained privacy-choice controls, unverified link candidates and notice passages; California-focused reports include their shared privacy section. detailedEvidence carries shared display wording, counts and cross-links; these audit rows are not additional findings. Use reviewFocus=gdpr_eprivacy or ccpa_cpra to match the corresponding web/PDF/Word view; omit it to retain the scan default. Preserve reviewFocus and section on cursor continuation; unselected or not-returned fields are not evidence of absence. Use workpaper=tracking separately for the starting-page tracking inventory, privacy choices/notices and GPC evidence, with JSON and CSV downloads. Never combine section and workpaper. The workpaper selector also applies to every continuation request. Otherwise retrieve scan report display content as paginated JSON, without internal diagnostic JSON downloads. The response also offers a single-file full JSON download; private JSON download links expire after five minutes and need no OAuth header; use pagination if your host blocks file downloads. Repeated display records use reportContentRef JSON Pointers. Includes evidence tables, full-site page and resource inventories, all retained additional-page form fields, form snapshot download references, and retained limitations. Snapshot images are downloaded separately from the returned URLs, with OAuth bearer authentication for workspace scans. Available on OAuth and Light. Start with scanId; follow pagination.nextCursor until complete. Pages share a snapshot; restart if it changes. Each entry has a JSON Pointer path and value; oversized stri

輸入參數cursorscanId必填sectionworkpaperreviewFocus

certscore_get_scan_bundle

Get scan bundle

Main answer for a completed or completed-limited scan: canonical findings, next steps, supporting evidence, score, date/region, coverage and report URL. An existing scanId is enough; no new scan is created. The evidence index describes response delivery, never evidence absence. Optional next actions lead to deeper report tables, tracking workpapers and JSON/CSV exports. Use detail=evidence for request examples and policy candidates, including scans with no findings; detail=full adds bounded retained context. Preserve returned/total counts and omission metadata. Accept/Reject execution succeeded means a completed click and bounded observation; succeeded_with_confirmation additionally verifies the consent decision. Retained after-click facts remain distinct from registered decisions. Absent or failed capture remains explicitly limited. Use canonical findings for scoring effects. A later missing finding does not prove a fix. Results are automated public-web observations, not legal advice, certification, or a compliance determination.

輸入參數detailscanId必填maxBytesmaxFindingsmaxPreConsentRows

certscore_export_findings

Export CertScore findings

Return structured findings plus completed-limited no-go disposition and guidance for downstream review or ticketing workflows.

輸入參數scanId必填

certscore_list_findings

List CertScore findings

Focused follow-up: list bounded API v2 public-safe findings already projected by the canonical pipeline, with matching high-signal TextContent and typed structuredContent. For broad privacy questions, use certscore_get_scan_bundle first.

輸入參數limitoffsetscanId必填

certscore_explain_finding

Explain CertScore finding

Explain one projected finding with public evidence, caveats, reviewer next steps, and reason-specific no-go context when applicable.

輸入參數scanId必填findingId必填

certscore_get_latest_domain_scan

Get latest domain scan

Retrieve the latest eligible API v2 public-safe scan for a domain.

輸入參數domain必填scanFrom

版本歷史

2
  1. v0.2.32最新Nov 3, 2026
  2. v0.2.4Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Certscore 整合