Koskamo

Bastion Helix Agent Lens MCP

An MCP server provided by Bastion Helix that enables AI agents to inspect web pages for usage permissions, read content as clean Markdown, extract structured JSON facts, detect changes, identify interactive elements, and capture screenshots. It handles bot checks and respects robots.txt and Content Signals.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Bastion Helix Agent Lens MCP logo, by Bastion HelixVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Bastion Helix
You need:Agents pay with an API key holding prepaid creditsFor an MCP client, add the server https://lens.bastionhelix.com/mcp with the header Authorization: Bearer bhk_your_key
MCP endpoint (Streamable HTTP)
https://lens.bastionhelix.com/mcp
Vendor documentation

What you can do with it

  • Check if a web page allows AI agent access via robots.txt and Content Signals
  • Read web page content as clean Markdown for token-efficient processing
  • Extract structured data like prices and schema.org facts as JSON
  • Detect content changes since the last check to minimize redundant reads

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
bastion-helix-agent-lens 1.0.0
MCP protocol
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Web pages for AI agents. Free: site (what a website offers agents and its AI rules) and preflight (may this page be used, which engine it needs). Paid: read (Markdown), extract (structured facts as JSON), delta (only what changed since your last check), actions (forms and buttons with selectors), screenshot. Paid tools charge only on success, with an API key (Authorization: Bearer bhk_…) or x402 (USDC on Base).

Tools

8 advertised

preflight — Check a page before using it
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

preflight input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The page (http or https)"
    },
    "user_agent": {
      "type": "string",
      "description": "Your own bot's robots.txt name (e.g. \"MyAgentBot\") to check its rules too"
    }
  }
}
preflight annotations
{
  "title": "Check a page before using it",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
read — Read a page as clean Markdown
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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).

read input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "engine": {
      "enum": [
        "auto",
        "fetch",
        "kitesurf",
        "chromium"
      ],
      "type": "string",
      "default": "auto"
    },
    "max_chars": {
      "type": "integer",
      "default": 100000,
      "maximum": 400000,
      "minimum": 1000
    },
    "user_agent": {
      "type": "string"
    }
  }
}
read annotations
{
  "title": "Read a page as clean Markdown",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
actions — List what can be clicked or filled
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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).

actions input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "engine": {
      "enum": [
        "auto",
        "fetch",
        "kitesurf",
        "chromium"
      ],
      "type": "string",
      "default": "auto"
    },
    "user_agent": {
      "type": "string"
    }
  }
}
actions annotations
{
  "title": "List what can be clicked or filled",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
extract — Get the facts a page publishes, as JSON
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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).

extract input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "engine": {
      "enum": [
        "auto",
        "fetch",
        "kitesurf",
        "chromium"
      ],
      "type": "string",
      "default": "auto"
    },
    "user_agent": {
      "type": "string"
    }
  }
}
extract annotations
{
  "title": "Get the facts a page publishes, as JSON",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
delta — What changed since last time
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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).

delta input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "engine": {
      "enum": [
        "auto",
        "fetch",
        "kitesurf",
        "chromium"
      ],
      "type": "string",
      "default": "auto"
    },
    "previous": {
      "type": "object",
      "description": "The \"fingerprint\" object from your last delta call for this URL. Leave out on the first call."
    },
    "user_agent": {
      "type": "string"
    }
  }
}
delta annotations
{
  "title": "What changed since last time",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
site — Site card for agents
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

site input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Any page of the site"
    },
    "user_agent": {
      "type": "string",
      "description": "Your bot's robots.txt name, to check its rules too"
    }
  }
}
site annotations
{
  "title": "Site card for agents",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
screenshot — Screenshot a page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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).

screenshot input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "engine": {
      "enum": [
        "auto",
        "kitesurf",
        "chromium"
      ],
      "type": "string",
      "default": "auto"
    },
    "full_page": {
      "type": "boolean",
      "default": false
    },
    "user_agent": {
      "type": "string"
    }
  }
}
screenshot annotations
{
  "title": "Screenshot a page",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
credits — Credits left on your API key
Advertised by the server during the last successful anonymous check.
Advertised read-only

Free. Credits remaining on the API key sent in the Authorization header (1 credit = US$0.001).

credits input schema
{
  "type": "object",
  "properties": {}
}
credits annotations
{
  "title": "Credits left on your API key",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
294 ms
95th percentile latency
294 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 294 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http bastion-helix-agent-lens-mcp https://lens.bastionhelix.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add bastion-helix-agent-lens-mcp --url https://lens.bastionhelix.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable bastion-helix-agent-lens-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "bastion-helix-agent-lens-mcp": {
      "url": "https://lens.bastionhelix.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "bastion-helix-agent-lens-mcp": {
      "type": "streamableHttp",
      "url": "https://lens.bastionhelix.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start bastion-helix-agent-lens-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "bastion-helix-agent-lens-mcp": {
      "type": "http",
      "url": "https://lens.bastionhelix.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http bastion-helix-agent-lens-mcp https://lens.bastionhelix.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "bastion-helix-agent-lens-mcp": {
      "url": "https://lens.bastionhelix.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "bastion-helix-agent-lens-mcp": {
      "serverUrl": "https://lens.bastionhelix.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Bastion Helix Agent Lens MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Bastion Helix Agent Lens MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing