cd /news/developer-tools/building-an-mcp-server-that-verifies… · home topics developer-tools article
[ARTICLE · art-64393] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Building an MCP Server That Verifies Its Sources: Inside footnote-mcp

A developer built footnote-mcp, a Python MCP server that verifies source claims using heuristic and LLM backends, achieving 100% accuracy on numeric and factual data claims. The server supports multiple search engines, browser tools, and file formats, and is installable via pip, Docker, or pipx without API keys.

read2 min views60 publishedJul 18, 2026

footnote-mcp is a Python MCP server installable via pip, Docker, or pipx. No API keys required — it falls back to scraped Bing + DuckDuckGo search and automatic headless Chromium for JavaScript-heavy pages.

The core tool is evidence_entailment

. It takes a claim and a source text, and returns whether the claim is supported, unsupported, or contradicted. The heuristic backend extracts numeric and named-entity tokens from both the claim and source, then checks for exact matches and contradictions. On its design domain — numeric and factual data claims — it achieves 100% accuracy on a labeled benchmark set.

For semantic cases (negation, paraphrase), the ollama

backend uses a local LLM as a judge.

Three tools build on this: corroborate_claim

triangulates a claim across multiple sources, locate_claim_span

finds the exact supporting sentence with character offsets, and build_research_debug_report

produces a compact report of queries, URLs, and verification gaps.

web_read

fetches pages through a 5-tier escalation ladder: HTTP (curl_cffi) to rotating proxy to headless Chromium to Chromium through proxy to hosted scrape API (Firecrawl/ScrapingBee). A block/quality detector decides when to escalate, and per-domain rate limiting, circuit breakers, and negative cache keep it polite.

web_search

supports Tavily, Brave, Google, or scraped Bing + DuckDuckGo as fallback. Pass semantic: true

to reorder results by meaning using local Ollama embeddings.

Beyond text, the server handles tables, CSV/XLSX/PDF/JSON, date validation, unit resolution, and time series reconciliation. For JavaScript-heavy pages, 10 browser tools let you drive a headless Chromium session. When generic parsers fail, the server can synthesize sandboxed extraction code through a controlled recipe system.

The heuristic backend achieves 100% accuracy on numeric and factual data claims (n=15). Overall accuracy including semantic cases is 83% (n=18). The blind spot is purely semantic negation and paraphrase — the ollama

backend closes that gap.

pip install footnote-mcp
python -m playwright install chromium
footnote-mcp

Then add to your MCP client config and start researching. Full source at github.com/KazKozDev/footnote-mcp.

Feedback welcome — especially on the verification approach. The benchmark is designed to be extended, so if you have a claim/source pair that should be caught, open an issue or PR.

── more in #developer-tools 4 stories · sorted by recency
── more on @footnote-mcp 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/building-an-mcp-serv…] indexed:0 read:2min 2026-07-18 ·