Labsco
MCP SERVER

Internet Context MCP

by vivekvar-dl

Web research returned as ranked, cited, injection-scanned evidence — every model local, no API key.

Page Fetching & Content Extraction
Summary
Evidence with a provenance trail, and it scans pages for injections.

Two things separate this from a fetch tool. Every chunk comes back with where in the page it came from, so a claim can be traced rather than trusted. And pages are scanned for prompt injection before their text reaches the model — the project reports 92.5% recall at a 0% false-positive rate on benign pages in its own eval. All six tools are read-only and every model runs locally, so nothing you research leaves the machine.

What it is

A read-only Node server that fetches and ranks web content on your machine. Behind the six tools sit local BM25 ranking, a local cross-encoder reranker, a local NLI classifier, local sentence embeddings, a regex prompt-injection scanner, and a two-tier in-memory and SQLite fetch cache.

What you get
  • One-shot research: search, fetch the top results in parallel, rank chunks inside and across sources, and return an evidence pack with per-chunk citations, an agreement signal and NLI-backed contradiction detection — `web_research`
  • A single page fetched, chunked and ranked against a task within a token budget, with a TL;DR capsule, a retrieval-confidence signal, structured-data extraction, a prompt-injection scan and DOM-path provenance — `web_context`
  • A claim checked against one or more source URLs and returned as supported, refuted or unclear, with per-source supporting and refuting evidence — `web_verify`
  • Clean page text with token-savings metadata — `web_read`
  • Search results from Brave when a key is present and DuckDuckGo HTML otherwise — `web_search`
  • Best-effort field extraction against a schema you supply — `web_extract`
Requirements

No API keys at any point. Node 20 or newer; the client launches `npx` with `-y` and `internet-context-mcp`. The first call downloads three local models from HuggingFace, about 125 MB in total, after which the server runs fully offline. Optional variables: `BRAVE_SEARCH_API_KEY` switches search from the DuckDuckGo fallback to Brave, `INTERNET_CONTEXT_MCP_RERANK`, `INTERNET_CONTEXT_MCP_NLI` and `INTERNET_CONTEXT_MCP_EMBEDDINGS` turn individual engines off, and `INTERNET_CONTEXT_MCP_CACHE_DIR` moves the SQLite cache. Rendering JavaScript-heavy pages needs `npm install playwright` and `npx playwright install chromium`, then `render: "browser"` on the call.

Setup effort

One command — npx -y internet-context-mcp