web-archive-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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_fetchA | Fetch a URL and archive the result. Fetches the URL, converts HTML to markdown, and persists the result as a timestamped JSONL entry in the web-archive. Only http and https URLs are allowed; private/internal IPs are blocked. Args: url: The URL to fetch (http/https only) timeout: Request timeout in seconds (default 30, max 120) token: Optional Bearer token for authenticated requests |
| web_searchA | Search the web and archive the results. Performs a web search via DuckDuckGo, persists the results, and returns them formatted. The results are archived for later search. Args: query: The search query (max 500 chars) |
| playwright_recordA | Drive a headless Playwright browser against the given URL(s) and record every HTTP request/response into the web-archive store. Binary/streaming response bodies are skipped, auth headers are redacted by
default, and each URL gets a fresh browser context so cookies don't leak
between sites. Like web_fetch, this rejects private/loopback addresses
(SSRF protection). Recorded entries become searchable once Args: urls: URL(s) to visit (http/https; scheme auto-prepended) wait: Extra seconds to wait after page load for async requests timeout: Navigation timeout in seconds (max 120) max_entries: Stop recording after this many request/response entries redact_auth: Redact Authorization/Cookie/Set-Cookie/X-API-Key headers |
| playwright_startA | Start a persistent interactive Playwright session with always-on traffic recording. Every response observed on the session is archived to the web-archive store in real time. Returns a confirmation. |
| playwright_navigateA | Navigate the interactive session to a URL (http/https; scheme is auto-prepended). Returns the page title. Every request/response on the session is recorded automatically. Like web_fetch, private/loopback addresses are rejected (SSRF protection); use the standalone CLI if you need to reach an internal/local host. |
| playwright_clickA | Click an element (CSS selector) in the interactive session. |
| playwright_fillA | Fill a form field (CSS selector) with a value in the interactive session. |
| playwright_textB | Return the visible text of the current page in the interactive session. |
| playwright_htmlA | Return the HTML of the current page in the interactive session. |
| playwright_screenshotA | Save a screenshot of the current page to ~/Downloads and return the path. The filename is sanitized (directory components stripped, .png enforced) so it cannot escape ~/Downloads. |
| playwright_backA | Go back in the interactive session's history. |
| playwright_forwardB | Go forward in the interactive session's history. |
| playwright_statsA | Report the interactive session's status and recorded-entry counts. |
| playwright_closeA | Close the interactive Playwright session and its browser. |
| archive_listA | List archived web fetch/search entries with metadata. Args: date_from: Optional start of date range (YYYY-MM-DD) date_to: Optional end of date range (YYYY-MM-DD, inclusive) max_results: Maximum entries to show (default 50) |
| archive_readA | Read entries from an archive file. Args: file_id: Archive file name (e.g., '2026-07-30-fetch-example.jsonl') max_entries: Maximum entries to return, newest first (default 50) |
| rebuildA | Rebuild the FST index for the web-archive domain. Calls fst-indexer to rebuild the full-text index so archived content is searchable via unified-history-mcp. |
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 17 tools
Most tools have clearly distinct purposes, but playwright_text and playwright_html both return page content (just different formats), and web_fetch and playwright_navigate can both be used to retrieve a URL. The descriptions do a good job mitigating confusion, so the overlap is minor.
Tool names use a consistent prefix (web_, playwright_, archive_) with action-oriented suffixes. Slight inconsistency exists because archive_list and archive_read are not verb-first, and a few playwright_ commands use nouns (text, html, screenshot). Overall the pattern is still predictable and readable.
17 tools is on the heavier side, mostly due to the 12 playwright interaction commands. Each interaction command serves a distinct browser automation need, but the count is borderline-high for an MCP server surface.
The core workflows of web fetching, searching, recording, interactive browser control, and archive listing/reading are covered well. Gaps include no delete or clear operation for archived entries, and direct search within archives relies on an external indexer (rebuild + unified-history-mcp) rather than a native search tool.