{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:58:19.090Z","url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor","markdownUrl":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor.md","server":{"slug":"cloudcorprecords-sitedoctor","name":"io.github.CloudCorpRecords/sitedoctor","registryName":"io.github.CloudCorpRecords/sitedoctor","description":"SEO site audits, issue search, Google visibility checks and improvement plans for your sites.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ghcr-io-cloudcorprecords-sitedoctor","type":"oci","identifier":"ghcr.io/cloudcorprecords/sitedoctor","withdrawn":false,"url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor","version":"0.1.0","transport":"stdio","scoredAt":"2026-11-05T03:01:26.807Z"},"score":{"total":42,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":42},{"date":"2026-11-04","total":41}]},"categories":[{"name":"Supply Chain Security","score":0,"verdict":"unverified","reasons":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.inconclusive","args":{"reason":"no_sbom_attached"}},{"code":"installscript.inconclusive","args":{"reason":"no_install_concept"}},{"code":"dephealth.inconclusive","args":{"reason":"no_sbom_attached"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":79,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Tool/resource definitions use about 895 tokens (~89/item across 10 items; 10 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_lean","args":{"avg":"89","items":"10","tools":"10","tokens":"895","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":3,"verdict":"partial","reasons":["Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"1"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"malware":[],"components":[{"slug":"reneturcios-sitedoctor","type":"npm","identifier":"@reneturcios/sitedoctor","withdrawn":false,"score":71,"current":false,"url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/reneturcios-sitedoctor","markdownUrl":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/reneturcios-sitedoctor.md"},{"slug":"ghcr-io-cloudcorprecords-sitedoctor","type":"oci","identifier":"ghcr.io/cloudcorprecords/sitedoctor","withdrawn":false,"score":42,"current":true,"url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor","markdownUrl":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor.md"}],"facts":[{"label":"Registry","value":"oci"},{"label":"Package","value":"ghcr.io/cloudcorprecords/sitedoctor"},{"label":"Version","value":"0.1.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_tester_offers","title":null,"description":"Browse the catalogue of tests a real person will run on a real device: mobile UX on a handset, end-to-end checkout, a screen-reader pass by somebody who uses one daily, native-speaker translation review, and more. These cover what reading a page cannot answer — how something feels on a handset, what a screen reader announces, whether a checkout completes on a real phone: what an automated audit cannot measure. Returns each offer with its price in credits, turnaround, and exactly what gets delivered. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"list_sites","title":null,"description":"List every site in the user's organization with its latest completed audit: SEO score, grade, issues found, pages crawled, when it was last scanned, and whether a scan is running right now. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":71},{"name":"get_site_report","title":null,"description":"Deep-dive one site: latest audit score, issue counts by severity, the most frequent issue types with counts, and social-network presence. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"domain","type":"string","required":true,"description":"The site's domain, e.g. example.com"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"find_issues","title":null,"description":"Search open issues across all sites (or one site). Returns issue groups: site, issue type, severity, how many pages are affected, and an example page. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"domain","type":"string","required":false,"description":"Restrict to one site (optional)"},{"name":"severity","type":"string","required":false,"description":"Restrict to one severity (optional)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"check_google_visibility","title":null,"description":"Check Google indexability for all sites (or one): noindex tags, robots blocks, sitemap errors, canonical problems, redirect chains and broken internal links found in the last crawl. Explains per site whether anything blocks indexing. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"domain","type":"string","required":false,"description":"Restrict to one site (optional)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"get_improvement_plan","title":null,"description":"The highest-impact actions to improve quality right now, ranked by severity and how many pages each fix touches, with concrete how-to-fix guidance. Cost: 2 credits per call, charged only if the call succeeds. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"domain","type":"string","required":false,"description":"Restrict to one site (optional)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":80},{"name":"start_scan","title":null,"description":"Launch a fresh audit of a website. Creates the site in the org if it doesn't exist yet. Enforces the user's plan quota — if the quota is used up it explains that instead of scanning. Cost: 1 credit per call, charged only if the call succeeds. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"url","type":"string","required":true,"description":"The website URL or domain to audit"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"get_scan_status","title":null,"description":"What is running right now and what finished recently: every in-flight scan plus the last 10 completed/failed ones with scores and errors. Cost: free — reads data your organisation already produced. Rate limit: 100 requests/minute per API key.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":60},{"name":"generate_report","title":null,"description":"Compile a full SEO report — for one site (score, issues by severity, top issue types, Google visibility, social presence, ranked fix plan) or the whole organization (per-site scores, visibility verdicts, top cross-site actions). Cost: 2 credits per call, charged only if the call succeeds. Rate limit: 100 requests/minute per API key.","inputs":[{"name":"domain","type":"string","required":false,"description":"One site's domain; omit for the whole-organization report"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"free_page_check","title":null,"description":"Free single-page SEO/health audit of any public URL — no API key, no account. Returns the same score, grade, categories and issues as the product's free check, plus an `upgrade` field describing what the authenticated tools add. Rate limited per caller (3/day). Whole-site crawls, history and tasks need a DrUrls account.","inputs":[{"name":"url","type":"string","required":true,"description":"The page to audit, e.g. https://example.com"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T03:01:26.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-04","recent":[{"id":"chg_01a1a9a7-76ad-72ac-944d-d9d54b981557","kind":"score.total_changed","summary":"Trust score (41 → 42)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor#chg-chg_01a1a9a7-76ad-72ac-944d-d9d54b981557"},{"id":"chg_01a1a5f6-33cd-70f4-bf3f-35685bb1ffce","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor#chg-chg_01a1a5f6-33cd-70f4-bf3f-35685bb1ffce"},{"id":"chg_01a1a5cc-61ec-7184-b264-8c2f55586bf4","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor#chg-chg_01a1a5cc-61ec-7184-b264-8c2f55586bf4"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor","markdown":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor.md","changelogJson":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor/changelog.json","changelogRss":"https://verifymcp.io/servers/cloudcorprecords-sitedoctor/ghcr-io-cloudcorprecords-sitedoctor.xml","external":[{"label":"GitHub Container Registry","href":"https://ghcr.io/cloudcorprecords/sitedoctor"},{"label":"Repository","href":"https://github.com/CloudCorpRecords/sitedoctor"}]}}