footnote-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_searchA | Search the web. Uses a keyed provider (Tavily/Brave/Google) when an API key is set, otherwise falls back to scraping Bing + DuckDuckGo. Returns titles, URLs, snippets and scores. |
| web_deep_searchA | Deep search: search Bing+DDG → fetch top pages → extract text → rerank chunks → return LLM-ready context. Slower but thorough. |
| web_readA | Fetch and extract text from a single URL. Returns extracted content (markdown). |
| web_extract_tablesB | Fetch a page, parse HTML tables, and return structured columns/rows with source URL provenance. |
| web_detect_downloadsB | Detect downloadable CSV/XLS/XLSX/PDF/JSON/XML links on a page. |
| web_parse_fileC | Download and parse CSV/TSV/XLSX/PDF/JSON files, returning structured rows or extracted text with provenance. |
| web_fetch_jsonB | Fetch an API/JSON URL directly and return parsed JSON with source URL provenance and persistent cache. |
| check_date_completenessC | Validate date-range completeness for structured results. Supports day, week, and month granularity. |
| classify_sourceC | Classify a source as official, aggregator, blog, forum, interactive, blocked, or error. |
| generate_search_queriesC | Generate specialized search queries using operators like site:, filetype:, API, CSV, and data-table variants. |
| resolve_unitsC | Resolve units, currencies, and currency pairs from text so incompatible rows can be rejected. |
| validate_unit_rowsC | Reject structured rows that are incompatible with the expected unit, currency, or currency pair. |
| evidence_entailmentB | Strict entailment check for claim vs source excerpt. Supports heuristic, Ollama judge, or auto fallback. |
| tool_spec_proposeB | Propose a controlled task-specific extraction recipe spec when generic tools cannot extract structured rows. |
| tool_code_generateC | Generate a safe starter extraction recipe function for the proposed spec. The result must still be validated before running. |
| tool_code_validateC | Statically validate task-specific extraction code against the safe recipe contract and allowlist. |
| tool_code_run_sandboxedC | Run validated extraction recipe code in a separate limited subprocess. Code must define extract(source_text, input_payload). |
| tool_promoteC | Save a validated extraction recipe as reusable memory after an optional smoke test. Does not edit the MCP server. |
| source_cache_getA | Read persistent source cache entry for a URL. |
| source_cache_putC | Write arbitrary parsed source payload into persistent source cache. |
| build_research_debug_reportC | Build a compact diagnostic report for a research run: queries, URLs, source quality, and verification gaps. |
| startup_health_checkB | Check optional parser, OCR, browser, and cache dependencies for this MCP server. |
| web_navigateB | Navigate the browser to a URL. |
| web_snapshotA | Capture the current page state: URL, title, accessibility tree with stable refs (@e1, @e2...), and visible text. Use this before clicking/typing. |
| web_clickA | Click an interactive element by its ref (e.g. @e3 from web_snapshot). |
| web_typeB | Type text into an input field by its ref. |
| web_extractA | Extract text from the page. refs: comma-separated @eN, or 'visible' for all visible text, or 'all' for full HTML. |
| web_scrollB | Scroll the page: up, down, top, bottom. |
| browser_extract_tablesC | Extract visible tables from the current browser page after navigation/interactions. |
| browser_set_date_rangeB | Best-effort browser date-range setter for interactive pages with date inputs. |
| browser_extract_tables_for_date_rangeB | Set date range in the current browser page, submit it, then extract visible tables. |
| web_archive_fetchA | Find the closest Wayback Machine snapshot of a URL (for dead or changed sources) and optionally read its text. |
| scholarly_searchB | Search specialized corpora missing from general web search: arXiv (scientific papers) or Wikipedia (encyclopedic). |
| web_search_recentC | Web search restricted to a recency window via DuckDuckGo's date filter (day/week/month/year). |
| corroborate_claimB | Triangulate a claim across multiple source excerpts; returns a corroboration verdict (corroborated/conflicting/single_source/...). |
| locate_claim_spanB | Locate the sentence(s) in a source that best support a claim, with character offsets and a containment score (span-level provenance). |
| recipe_registryB | Manage promoted extraction recipes: list, get, run, or delete saved recipes. |
| web_fetch_authenticatedB | Fetch a page that needs cookies or custom headers (logged-in or gated pages). |
| web_crawlA | Breadth-first crawl from a start URL, fetching and extracting each page. Stays on the start host by default. Capped at 50 pages. |
| export_datasetB | Write extracted rows to a consolidated file (csv | xlsx | json) and return the path. |
| reconcile_time_seriesC | Align several time series on a common key, compute deltas vs the first series, and flag missing keys and outliers. |
| web_screenshotC | Capture a PNG screenshot of the current browser page, save it to disk, and optionally OCR text locked inside the image. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Most tools have clearly distinct purposes, but there is some overlap among table-extraction tools (web_extract_tables vs browser_extract_tables) and search tools (web_search, web_search_recent, web_deep_search, scholarly_search). However, descriptions differentiate them effectively.
Tool names follow a mix of patterns: many start with 'web_' or 'browser_', but there is no consistent verb_noun structure. Some names are compound verbs (e.g., 'reconcile_time_series', 'locate_claim_span'), while others are descriptive nouns (e.g., 'startup_health_check'). This inconsistency can be confusing.
42 tools is high for a single server, but the domain (web research, extraction, validation) is broad. Each tool seems purposeful, but the count pushes the boundary of what is manageable and may lead to agent confusion.
The tool set covers a wide range of operations: search, fetch, extract, parse, browser interaction, data validation, evidence handling, and recipe management. Minor gaps exist (e.g., no explicit tool for complex browser workflows beyond tables), but overall it is comprehensive.