Skip to main content
Glama

Web Intel MCP

Agent-ready web intelligence as a pay-per-call MCP server. Licensing and credits are handled by KeyFlint (offline Ed25519 license check + credit ledger), used here only as the billing backend. Failed fetches are refunded automatically; invalid input is rejected before any debit.

Tool

Credits

Returns

read_url

1

Main content as clean Markdown (nav, footer, cookie banners removed)

page_metadata

1

Title, description, canonical, lang, robots, Open Graph, JSON-LD types, H1-H3, image alt stats

extract_links

1

Deduplicated internal / external links with anchor text

tech_stack

2

Frameworks, CMS, analytics, payments, CDN/hosting, security headers

seo_audit

3

0-100 score, A-F grade, 16 weighted checks, top 5 fixes

compare_seo

3 x URLs

Ranks 2-5 pages (you vs competitors); only fetched URLs are billed

pricing, credits_balance

free

Price list, remaining credits

Prices are overridable: WEB_INTEL_PRICES="seo_audit=5,read_url=2".

Install

All you need is your KeyFlint license (LIC-...). The gateway URL, its public key and the checkout link have defaults.

Claude Desktop, one click: download web-intel-mcp-X.Y.Z.mcpb from the latest release, double-click it and paste your license. No terminal, no JSON.

Claude Code:

claude mcp add web-intel -e KEYFLINT_LICENSE=LIC-... -- uvx web-intel-mcp

Cursor, Windsurf, Claude Desktop (JSON):

{
  "mcpServers": {
    "web-intel": {
      "command": "uvx",
      "args": ["web-intel-mcp"],
      "env": { "KEYFLINT_LICENSE": "LIC-..." }
    }
  }
}

Optional: KEYFLINT_URL, KEYFLINT_PUBLIC_KEYS (fetched from the gateway and cached in ~/.keyflint/keyring.json when unset), KEYFLINT_CHECKOUT_URL.

Related MCP server: JsonLink MCP Server

Visual cards (MCP Apps)

In Claude, ChatGPT, VS Code and Goose every paid tool and credits_balance renders as an interactive card in the chat: credit balance with a refill bar and a buy button, or a result summary (key figures, issues, table preview and credits charged). It is the ui://web-intel/card.html resource, self-contained with no network access. Other clients keep getting the same JSON as before.

Hosted mode (sellers)

Paid logic stays on your server. One process bills many buyers; each request carries the buyer's license.

docker build -t web-intel .
docker run -p 8080:8080 \
  web-intel

Buyers connect to https://<host>/mcp (Streamable HTTP, stateless) with Authorization: Bearer LIC-... (or X-License-Key). Missing or forged licenses get -32060.

Billing flow per call

  1. URL validated (http/https only). Bad input: error, nothing charged.

  2. Offline Ed25519 license check (keyflint-verify), cached 60 s.

  3. POST /api/v1/quota/deduct with a fresh idempotency key. Out of credits: -32062 with the checkout link.

  4. Fetch + analysis. If anything fails: POST /api/v1/quota/refund (same key), the client gets isError.

Safety

Requests to private, loopback and link-local addresses are refused (checked on every redirect hop), responses are capped at 3 MB (WEB_INTEL_MAX_BYTES), 15 s timeout (WEB_INTEL_TIMEOUT), max 5 redirects. WEB_INTEL_ALLOW_PRIVATE=1 disables the address check (tests only).

Tests

End-to-end with a fake KeyFlint quota gateway, locally signed licenses and a local test site (no network needed):

pip install -e ".[test]"
python -m pytest -q

License

Business Source License 1.1. Source available; production use needs a KeyFlint license (or must be non-commercial). Each version becomes Apache 2.0 four years after release. See LICENSE.

Available Tools

8 tools
compare_seoA
Read-onlyIdempotent
Inspect

Audit 2-5 pages (e.g. you vs competitors) and rank them. Costs seo_audit price x number of URLs.

Unreachable URLs are reported, not billed: their share is refunded as one batch.

Inputs: urls (required). Returns: object

credits_balanceA
Read-only
Inspect

Remaining credits on your KeyFlint license. Free.

Inputs: no named parameters. Returns: object

page_metadataC
Read-onlyIdempotent
Inspect

Title, description, canonical, lang, robots, Open Graph, JSON-LD types, H1-H3 and image alt stats.

Inputs: url (required). Returns: object

pricingA
Read-only
Inspect

Credit price of each tool and where to buy credits. Free.

Inputs: no named parameters. Returns: object

read_urlA
Read-onlyIdempotent
Inspect

Fetch a web page and return its main content as clean Markdown (nav, ads and cookie banners removed).

Args: url: Page URL (https:// is assumed when no scheme is given). max_chars: Cap on returned markdown length (default 20000, max 100000).

Inputs: url (required), max_chars. Returns: object

seo_auditB
Read-onlyIdempotent
Inspect

Scored on-page SEO audit (0-100, A-F) with 16 weighted checks and the top fixes to apply first.

Inputs: url (required). Returns: object

tech_stackB
Read-onlyIdempotent
Inspect

Detect frameworks, CMS, analytics, payments, CDN/hosting and security headers of a site.

Inputs: url (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 8 tools

    Disambiguation4/5

    Each tool has a largely distinct purpose: content extraction, metadata, links, tech detection, SEO scoring, comparison, and billing are clearly separated. The only mild overlap is between seo_audit and compare_seo (single page vs 2-5 pages) and between read_url and page_metadata, but descriptions make the boundaries clear enough.

    Naming Consistency3/5

    All names use snake_case, which is consistent, but the verb/noun pattern is mixed: some are verb_noun (read_url, extract_links, compare_seo), others are noun-only (page_metadata, tech_stack, pricing, credits_balance). Readable but not a predictable pattern throughout.

    Tool Count5/5

    Eight tools is well-scoped for a web intelligence server. Each tool earns its place, covering distinct analysis dimensions plus the necessary billing/credit tools, with no filler.

    Completeness4/5

    Core lifecycle is covered: fetching content, metadata, links, tech stack, SEO auditing, and multi-page comparison, plus credit management. Minor gaps exist, such as no raw HTTP header/redirect inspection, sitemap/robots.txt retrieval, or a batch/crawl operation, but agents can work around these with read_url.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables AI agents to read any web page as clean Markdown, pull title/description/preview metadata, capture desktop, mobile, or full-page screenshots, and list every link or image on a URL. JavaScript-heavy pages are rendered in a real browser and blocked requests retried through a proxy, so agents can reach content they'd otherwise miss.
      5
      50 npm
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables AI agents to fetch web pages, convert them into token-efficient semantic Markdown, and extract hyperlinks and page metadata while rotating realistic browser fingerprints to reduce anti-bot blocks.
      3
      58 PyPI
      MIT