Skip to main content
Glama
lakshyamehta03

mcp-server-wayback

wayback-mcp

A Model Context Protocol server giving Claude and other LLM clients structured access to the Internet Archive's Wayback Machine.

PyPI CI Python 3.11+ MCP License: MIT


Overview

wayback-mcp is an async Python MCP server that exposes the Internet Archive's six core APIs — Availability, CDX, Advanced Search, Metadata, and Wayback content — as first-class tools, prompts, and resources for any MCP-compatible client. It handles rate limiting, retry/back-off, and response shape normalisation so the model only sees structured Pydantic data.

Related MCP server: @cyanheads/internet-archive-mcp-server

Features

  • Six MCP tools covering availability checks, snapshot lookups, full-text item search, domain crawls, page-text extraction, and item metadata

  • Four guided promptsresearch_topic, track_site_changes, audit_link_rot, setup_authentication

  • One MCP resourcewayback://item/{identifier} exposes IA item metadata as JSON

  • Async token-bucket rate limiter with per-endpoint buckets and Retry-After honoring

  • In-memory response cache with per-endpoint TTLs to keep token usage and IA load low

  • Internet Archive S3 authentication (optional) for higher rate-limit ceilings

  • Structured error model — expected failures return ToolError; unexpected ones raise

  • Tested against live IA APIs via an opt-in --integration pytest flag

Installation

As an MCP server

uvx mcp-server-wayback --install

You'll get a numbered menu of supported clients — pick one, the installer writes the config for you, then restart that client. Run uvx mcp-server-wayback --list-clients to see the menu without launching it.

Non-interactive installers

Pass the client key explicitly (handy for scripts and dotfiles):

uvx mcp-server-wayback --install claude-desktop
uvx mcp-server-wayback --install claude-code-user        # ~/.claude.json
uvx mcp-server-wayback --install claude-code-project     # ./.mcp.json in cwd
uvx mcp-server-wayback --install cursor                  # ./.cursor/mcp.json
uvx mcp-server-wayback --install windsurf
uvx mcp-server-wayback --install zed                     # uses Zed's context_servers key
uvx mcp-server-wayback --install antigravity             # ~/.gemini/antigravity/mcp_config.json

For clients with their own MCP CLI:

claude mcp add wayback -- uvx mcp-server-wayback
codex mcp add wayback -- uvx mcp-server-wayback

To include Internet Archive API keys for higher rate limits at install time:

claude mcp add wayback \
  --env WAYBACK_MCP_IA_ACCESS_KEY=xxx \
  --env WAYBACK_MCP_IA_SECRET_KEY=xxx \
  -- uvx mcp-server-wayback

Need uvx? brew install uv on macOS, or pipx install uv. Python 3.11+ required.

Manual configuration

For clients that use a JSON config file, add this to the appropriate section:

{
  "wayback": {
    "command": "uvx",
    "args": ["mcp-server-wayback"],
    "env": {
      "WAYBACK_MCP_IA_ACCESS_KEY": "your-access-key",
      "WAYBACK_MCP_IA_SECRET_KEY": "your-secret-key"
    }
  }
}

The env block is optional — the server works anonymously without credentials. See Authentication for details.

Client

Config file

Config key

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

mcpServers

Claude Code

.mcp.json (project) / ~/.claude.json (user)

mcpServers

Google Antigravity

~/.gemini/antigravity/mcp_config.json

mcpServers

Codex CLI

~/.codex/config.toml

[mcp_servers.wayback]

Cursor

.cursor/mcp.json

mcpServers

Windsurf

~/.codeium/windsurf/mcp_config.json

mcpServers

Cline

.cline/mcp.json

mcpServers

Zed

~/.config/zed/settings.json

context_servers

Gemini CLI

~/.gemini/settings.json

mcpServers

Project-scoped (workspace) config

Claude Code supports a per-workspace .mcp.json in the repo root. Useful for testing env-var changes without touching your global config:

claude mcp add wayback --scope project -- uvx mcp-server-wayback

Open Claude Code from that folder — it picks up .mcp.json automatically. Add it to .gitignore if it contains real keys.

Uninstalling

uvx mcp-server-wayback --uninstall                  # interactive picker
uvx mcp-server-wayback --uninstall claude-desktop   # or pass a client key
claude mcp remove wayback                           # Claude Code native CLI
codex mcp remove wayback                            # Codex CLI native CLI

Quick examples

What to ask the agent once the server is wired up:

Has openai.com been archived? Show me the closest snapshot.
Find archived snapshots of nytimes.com from 2001.
What did anthropic.com look like in early 2023?
Search the Internet Archive for documentaries about the moon landing.
Walk me through how anthropic.com's homepage has changed over the past year.
I have a list of URLs from a 2015 reading list — check which are still recoverable from the Wayback Machine.

Or use a slash command for a guided workflow: /wayback:research_topic, /wayback:track_site_changes, /wayback:audit_link_rot, /wayback:setup_authentication.

Tools

check_availability

Check whether a URL has been archived and return the closest snapshot.

Parameter

Required

Description

url

Yes

The URL to check

timestamp

No

Target timestamp (YYYYMMDDhhmmss). Returns the snapshot closest to this point in time. Omit for the most recent.

lookup_snapshots

List all CDX snapshots for a URL with optional date-range and HTTP-status filters.

Parameter

Required

Description

url

Yes

The URL to look up

from_date

No

Start of range (YYYYMMDD)

to_date

No

End of range (YYYYMMDD)

status_code

No

Filter by HTTP status, e.g. "200" to drop redirects and errors

limit

No

Maximum results (defaults to CDX_MAX_RESULTS = 50)

search_archive

Search Internet Archive collections using Lucene query syntax. Returns matching items with identifier, title, mediatype, year, creator, subject, and download count.

Parameter

Required

Description

query

Yes

Lucene query, e.g. "apollo 11" or creator:"NASA"

mediatype

No

Filter by type: "texts", "audio", "movies", "image", "software", "web"

year_from

No

Earliest publication year

year_to

No

Latest publication year

limit

No

Maximum results (defaults to SEARCH_MAX_RESULTS = 50)

search_domain

Discover archived URLs under a domain or path prefix. Auto-detects whether to do a wildcard-domain or prefix match from the input shape.

Parameter

Required

Description

domain

Yes

Bare domain (example.com) for subdomain wildcard, or example.com/blog for path prefix

from_date

No

Start of range (YYYYMMDD)

to_date

No

End of range (YYYYMMDD)

status_code

No

Filter by HTTP status

limit

No

Maximum results

get_snapshot_content

Fetch an archived web page and extract its readable text. Strips the Wayback toolbar, navigation, and boilerplate so the model only sees article-quality content.

Parameter

Required

Description

url

Yes

The URL to fetch the archived content of

timestamp

No

Target snapshot timestamp (YYYYMMDDhhmmss). Omit for the latest.

Returns {text, word_count, snapshot_url, timestamp, sparse_content_warning}.

get_item_metadata

Return rich structured metadata for any Internet Archive item by its identifier.

Parameter

Required

Description

identifier

Yes

The IA item identifier, e.g. "nasa_Apollo_11"

Returns title, description, creator, subject, mediatype, year, downloads, full file list, and more.

Prompts

Prompt

What it does

research_topic

Multi-mediatype IA search → synthesised topic overview

track_site_changes

Sample snapshots over time → narrate how a page evolved

audit_link_rot

Bulk-check URLs and surface archived alternatives

setup_authentication

Walks the user through configuring IA S3 keys

Resources

URI template

Returns

wayback://item/{identifier}

Full Internet Archive item metadata as JSON

Authentication

The server works anonymously by default. Configure Internet Archive S3 keys to raise your rate-limit ceiling and remove 429 errors during heavy use:

  1. Visit https://archive.org/account/s3.php (free archive.org account required)

  2. Copy your access key and secret key

  3. Add them to the env block of your MCP config (see Manual configuration) — or run the setup_authentication prompt for an interactive walkthrough

Keys never leave your machine. They live only in your local MCP config and the server subprocess's environment.

Technical details

  • Transport: stdio (MCP client integration)

  • Caching: in-memory with per-endpoint TTLs

    • Metadata, snapshot content: 24 hours (immutable once captured)

    • CDX results: 1 hour (grows but never mutates)

    • Search results: 15 minutes (relevance can shift)

  • Rate limiting: async token-bucket per endpoint group with automatic Retry-After handling for 429 responses

  • Validation: Pydantic 2 schemas for every input and output

  • Python 3.11+

Development

git clone https://github.com/lakshyamehta03/wayback-machine-mcp.git
cd wayback-machine-mcp
uv sync
uv run mcp-server-wayback      # run the server
uv run pytest                  # unit tests (httpx mocked via respx)
uv run pytest --integration    # also hit live Internet Archive APIs

CI runs the unit suite on every push and pull request via GitHub Actions.

Known issues

A couple of things to know:

  • Unparseable content types — some snapshots contain MIME types the agent can't extract text from (binaries, certain media). When that happens the server returns a structured error pointing you to the snapshot URL for manual review, rather than failing silently.

  • Flaky upstream endpoints — the Internet Archive's APIs (especially CDX) occasionally behave unexpectedly: timeouts, 503s, or degraded responses under load. The server retries with back-off and trips a circuit breaker, but a request may still fail and need a retry. Configuring Internet Archive API keys meaningfully improves success rates.

License

MIT. The Wayback Machine logo is © Internet Archive and used here under fair use to identify the upstream service this project integrates with.

Acknowledgments

Available Tools

6 tools
check_availabilityA

Check if a URL has been archived by the Wayback Machine and return the closest snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timestampNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read-only operation (checking and returning) but does not elaborate on edge cases (e.g., what happens if no snapshot exists, or how 'closest' is determined). Since no annotations are present, the description carries the full burden of behavioral disclosure but falls short of being fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 15 words, efficiently conveying the core purpose without any filler. It is front-loaded with the action ('Check if a URL has been archived') and immediately states the return value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should hint at the return structure (e.g., snapshot metadata) and possible error cases. It only says 'return the closest snapshot', which is vague. For a simple tool this is adequate but not fully informative for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It clarifies that 'url' is the URL to check and that 'timestamp' is optional but does not explain its role (e.g., that it is used to find the closest snapshot to that time). This leaves ambiguity about the timestamp parameter's meaning and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Check if a URL has been archived' and the resource 'the Wayback Machine', with the outcome 'return the closest snapshot'. This differentiates it from siblings like lookup_snapshots (which would return multiple snapshots) and get_snapshot_content (which retrieves a specific snapshot's content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for checking availability of a URL, but it does not explicitly say when to use it versus siblings like lookup_snapshots or search_archive. No when-not or alternative guidance is provided, so an agent may not know the best tool for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_item_metadataC

Fetch rich structured metadata for any Internet Archive item by its identifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'Fetch' implying read-only, but does not explicitly declare side effects, rate limits, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what the returned metadata includes, and there is no output schema. For a tool that fetches 'rich structured metadata', omitting return format details leaves the agent with incomplete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal semantics to the parameter 'identifier' beyond the schema; it simply says 'by its identifier' without explaining what constitutes a valid identifier or providing examples. With 0% schema description coverage, this is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Fetch), the resource (rich structured metadata of Internet Archive items), and the required input (identifier). It differentiates from sibling tools like search_archive (searching) and check_availability (existence check) by focusing on metadata retrieval for a specific item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings. No explicit conditions, prerequisites, or alternatives are mentioned, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_snapshot_contentA

Fetch and extract text content from an archived web page. Returns extracted text, word count, and extraction metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timestampNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states the operation fetches and extracts but does not disclose behavioral traits like whether it is read-only, required authorizations, rate limits, or what happens with invalid URLs. The mention of return types (text, word count, metadata) is helpful but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with two clear parts: the operation and the returns. Every word adds value, with no redundancy. It is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 params, no output schema), the description covers basic purpose and output but lacks usage guidance, parameter details, and behavioral traits. It is functional but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds context that 'url' refers to an archived web page and hints that 'timestamp' specifies a snapshot version. However, it does not elaborate on URL format, timestamp syntax, or constraints, so value is moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Fetch and extract text content' and the resource 'archived web page', and lists return values. It effectively distinguishes from sibling tools like 'check_availability' or 'get_item_metadata' which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for extracting text from a specific snapshot but provides no explicit guidance on when to use this tool versus alternatives like 'lookup_snapshots' or 'search_archive'. No when-not-to-use or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_snapshotsA

Return CDX snapshots for a URL, with optional date range and status-code filter.

The Wayback Machine often crawls the same URL many times per day; raw CDX results would return one row per crawl. collapse is a server-side de-duplication: adjacent rows that share the same value in the chosen field get folded into a single representative row.

By default we collapse on the first 8 digits of the timestamp ("timestamp:8"), which is the YYYYMMDD prefix — i.e. one row per day. This is almost always what you want for "show me snapshots of this URL"; otherwise the default limit of 50 gets eaten by 50 captures from a single hour and you see nothing about the URL's history.

Override collapse when you need different granularity:

  • "digest" — collapse on content hash, so you only see captures where the page actually changed

  • "timestamp:10" — one row per hour (first 10 digits of timestamp)

  • "" (empty string) — disable collapsing entirely; return every capture

  • any other CDX collapse spec is passed through verbatim

latest=True uses CDX's fastLatest path to return the N most recent captures cheaply (much faster than a full scan over the index). Cannot be combined with from_date/to_date.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
from_dateNo
to_dateNo
status_codeNo
limitNo
collapseNo
latestNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses default collapse behavior, limit consumption, and the constraint that latest cannot combine with date range, offering good behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and structured with clear sections, though slightly lengthy; each sentence is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description covers main purpose, key behaviors, and important parameters, though it lacks output format or error handling details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value for collapse and latest parameters with detailed examples, but covers other parameters only in passing, partially compensating for 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns CDX snapshots for a URL with optional date range and status-code filters, differentiating it from sibling tools like get_snapshot_content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use different collapse options and the latest parameter, providing context for choosing among them, but does not explicitly compare to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_archiveA

Search Internet Archive collections (uploaded books, audio, video, software items) using Lucene query syntax.

This is NOT a search over the Wayback Machine web crawl. It only returns items that someone has uploaded to archive.org as a discrete media item.

Do NOT use this for:

  • Current news, journalism, or recent events

  • Government circulars, press releases, or official web pages

  • Wikipedia articles or any live web content

  • "What was on this website" / "what URLs are archived" — use search_domain or lookup_snapshots for those.

Good uses: historical books, lecture recordings, archived films, software releases, podcast episodes, scanned magazines. Use Lucene fields when possible (e.g. subject:"civil war", creator:"NASA", collection:librivoxaudio).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
mediatypeNo
year_fromNo
year_toNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses it returns only uploaded discrete items, not web pages. Mentions Lucene fields. No annotations provided, so description carries burden; it is mostly transparent, but lacks info on rate limits or authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded, uses bullet points for negative usage and good uses, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Good overview but lacks details on parameter usage, pagination, or output structure. Output schema exists but is not described; parameter details are missing for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description does not elaborate on query syntax, mediatype, year_from, year_to, or limit parameters, relying solely on parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches Internet Archive collections using Lucene syntax, distinguishes from Wayback Machine search, and lists good uses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists what NOT to use for (news, government circulars, Wikipedia, web crawl) and suggests alternative tools like search_domain and lookup_snapshots.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_domainC

Find archived URLs under a domain or path prefix. Auto-detects matchType from input.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
from_dateNo
to_dateNo
status_codeNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions auto-detection of matchType and implies a read-only search, but fails to disclose pagination, error handling, or any constraints. Adequate but with clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the purpose. However, given the number of parameters, it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five parameters and no schema descriptions, the description is too brief. It does not cover date range filtering, status code filtering, or limit behavior. Although an output schema exists, the description still lacks essential usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It only provides a high-level mention of domain/path prefix and auto-detection, without explaining any of the five parameters (e.g., date format, status_code, limit). Minimal compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it finds archived URLs under a domain or path prefix. Mentions auto-detection of matchType, but does not differentiate from sibling tools like 'search_archive' or 'lookup_snapshots'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives. No mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.2.7
    • First observedcheck_availability
    • First observedget_item_metadata
    • First observedget_snapshot_content
    • First observedlookup_snapshots
    • First observedsearch_archive
    • First observedsearch_domain

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: checking availability, fetching metadata, extracting text, looking up CDX snapshots, searching collections, and searching domains. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., check_availability, get_item_metadata, lookup_snapshots), making them predictable and easy to distinguish.

Tool Count5/5

Six tools is appropriate for a Wayback Machine / Internet Archive server, covering the main operations without being overwhelming or too sparse.

Completeness4/5

The set covers core read operations (check, get metadata, get content, lookup snapshots, search archive items, search domains). Missing a 'save page' tool and raw HTML retrieval, but covers expected use cases well.

Maintenance

ActivityInactive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server and CLI tool for interacting with the Internet Archive's Wayback Machine, supporting full CDX search, snapshot retrieval, screenshot listing, snapshot comparison, and optional authentication.
    8
    821
    50
    Creative Commons Attribution Non Commercial Share Alike 4.0 International
  • A
    license
    Not graded
    quality
    A
    maintenance
    Search the Wayback Machine and IA library (40M+ items), fetch archived snapshots, retrieve item metadata and full text via MCP.
    98
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Full-coverage MCP server for Internet Archive, enabling search, metadata lookup, collection browsing, and Wayback Machine snapshot retrieval via 13 tools.
    BSD Zero Clause
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for the Internet Archive that enables searching the full text of digitized books, browsing the catalogue, and reading Wayback Machine captures. No API key or configuration required.
    6
    583
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lakshyamehta03/wayback-machine-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server