{"$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:52:50.492Z","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens","markdownUrl":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens.md","server":{"slug":"com-bastionhelix-agent-lens","name":"Bastion Helix Agent Lens","registryName":"com.bastionhelix/agent-lens","description":"Web pages for AI agents: may-I-use checks, prompt-injection flags, Markdown, JSON, screenshots","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"lens","type":"remote","identifier":"https://lens.bastionhelix.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T08:04:59.708Z"},"score":{"total":66,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":66},{"date":"2026-11-04","total":66},{"date":"2026-11-03","total":65},{"date":"2026-11-02","total":65},{"date":"2026-11-01","total":64},{"date":"2026-10-31","total":64},{"date":"2026-10-30","total":63},{"date":"2026-10-29","total":63}]},"categories":[{"name":"Endpoint Security","score":63,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.inconclusive","args":{"reason":"plaintext_status","status":"405"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":66,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 989 tokens (~123/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"123","items":"8","tools":"8","tokens":"989","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"name":"Tool Coverage","score":74,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","23% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"23"}}]},{"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 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 9 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":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"9","judged":"9"}}]},{"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":["HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement."],"malware":[],"components":[{"slug":"lens","type":"remote","identifier":"https://lens.bastionhelix.com/mcp","withdrawn":false,"score":66,"current":true,"url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens","markdownUrl":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens.md"}],"facts":[{"label":"Endpoint","value":"https://lens.bastionhelix.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"preflight","title":"Check a page before using it","description":"Free. Before an agent spends money or time on a URL: is it allowed (robots.txt for this service and, if you pass user_agent, for your own bot; Content Signals such as ai-input and ai-train; meta robots), does a bot check or sign-in stand in the way, and which engine each task needs — plain fetch, Kitesurf (Cloudflare's lightweight agent browser) or Chromium. Rate-limited per IP.","inputs":[{"name":"url","type":"string","required":true,"description":"The page (http or https)"},{"name":"user_agent","type":"string","required":false,"description":"Your own bot's robots.txt name (e.g. \"MyAgentBot\") to check its rules too"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":141},{"name":"read","title":"Read a page as clean Markdown","description":"Returns the main content of a web page as clean Markdown with absolute links. Tries the cheapest way that works: plain fetch, then Kitesurf, then Chromium, and reports which one worked. Refuses (and charges nothing) when the site's robots.txt or Content Signals say no, or when a bot check answers instead of the page. Charged only on success. Price: US$0.004 per successful call (API key credits or x402).","inputs":[{"name":"engine","type":"string","required":false,"description":null},{"name":"max_chars","type":"integer","required":false,"description":null},{"name":"url","type":"string","required":true,"description":null},{"name":"user_agent","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":130},{"name":"actions","title":"List what can be clicked or filled","description":"Returns the forms (with every field, its label and whether it is required), buttons and links on a page, each with a CSS selector an automation tool can use. Uses the rendered page when the HTML alone has none. Charged only on success. Price: US$0.004 per successful call (API key credits or x402).","inputs":[{"name":"engine","type":"string","required":false,"description":null},{"name":"url","type":"string","required":true,"description":null},{"name":"user_agent","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"extract","title":"Get the facts a page publishes, as JSON","description":"No AI model involved: returns the structured data the page already publishes — JSON-LD / schema.org objects (products, articles, events, organisations, breadcrumbs), prices and offers, meta and Open Graph tags, canonical URL, language versions, licence, RSS/Atom/JSON feeds, and HTML data tables as columns + rows. Exact values instead of guesses from text. Charged only on success. Price: US$0.002 per successful call (API key credits or x402).","inputs":[{"name":"engine","type":"string","required":false,"description":null},{"name":"url","type":"string","required":true,"description":null},{"name":"user_agent","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":127},{"name":"delta","title":"What changed since last time","description":"For pages an agent checks again and again. The first call returns the page as sections plus a fingerprint; send that fingerprint back as \"previous\" next time and get only the sections that changed (and the headings of removed ones), or changed:false. Uses HTTP ETag/Last-Modified when the site supports them. Nothing is stored on our side: the fingerprint lives with the agent. Saves tokens on every re-check. Charged only on success. Price: US$0.001 per successful call (API key credits or x402).","inputs":[{"name":"engine","type":"string","required":false,"description":null},{"name":"previous","type":"object","required":false,"description":"The \"fingerprint\" object from your last delta call for this URL. Leave out on the first call."},{"name":"url","type":"string","required":true,"description":null},{"name":"user_agent","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":166},{"name":"site","title":"Site card for agents","description":"Free. Everything an agent should know about a website before using it: its llms.txt (and llms-full.txt), sitemap (page count and first URLs), feeds, language versions, Content Signals, and which known AI crawlers and agents its robots.txt allows. Rate-limited per IP.","inputs":[{"name":"url","type":"string","required":true,"description":"Any page of the site"},{"name":"user_agent","type":"string","required":false,"description":"Your bot's robots.txt name, to check its rules too"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"screenshot","title":"Screenshot a page","description":"PNG screenshot of a page at 1280×800 (or the full page). engine \"auto\" uses Kitesurf unless the page needs video or WebGL, then Chromium. Charged only on success. Price: US$0.008 per successful call (API key credits or x402).","inputs":[{"name":"engine","type":"string","required":false,"description":null},{"name":"full_page","type":"boolean","required":false,"description":null},{"name":"url","type":"string","required":true,"description":null},{"name":"user_agent","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"credits","title":"Credits left on your API key","description":"Free. Credits remaining on the API key sent in the Authorization header (1 credit = US$0.001).","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":30}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T08:04:59.000Z","track":"remote","endpoint":"https://lens.bastionhelix.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=bastionhelix.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-11T18:51:09Z","notAfter":"2027-01-09T19:51:06Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"lens.bastionhelix.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"bastionhelix.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":405},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1a594-812a-76e2-ae2b-3e09d9cf865b","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens#chg-chg_01a1a594-812a-76e2-ae2b-3e09d9cf865b"},{"id":"chg_01a19b48-6bf5-7cdc-bfb1-b6caeee05b19","kind":"score.total_changed","summary":"Trust score (64 → 65)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens#chg-chg_01a19b48-6bf5-7cdc-bfb1-b6caeee05b19"},{"id":"chg_01a190fb-b457-780a-8a69-eb0cdb60259f","kind":"score.total_changed","summary":"Trust score (63 → 64)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens#chg-chg_01a190fb-b457-780a-8a69-eb0cdb60259f"},{"id":"chg_01a18bd4-b3ae-7497-806f-e351ddf4a467","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens#chg-chg_01a18bd4-b3ae-7497-806f-e351ddf4a467"},{"id":"chg_01a1859b-5576-7abb-bcb5-aebf978d9aaa","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens#chg-chg_01a1859b-5576-7abb-bcb5-aebf978d9aaa"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens","markdown":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens.md","changelogJson":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens/changelog.json","changelogRss":"https://verifymcp.io/servers/com-bastionhelix-agent-lens/lens.xml","external":[{"label":"Remote endpoint","href":"https://lens.bastionhelix.com/mcp"},{"label":"Website","href":"https://bastionhelix.com/lens"}]}}