How to Give Your AI Agent Web History: An MCP Tutorial
Most agent tools answer questions about the web as it is right now. This tutorial adds the other half: questions about how the web used to be. By the end your agent will be able to answer "what did this pricing page say in 2023?", "when did this policy change?" and "what did the docs say for version 2?" with a link to the Internet Archive snapshot behind every answer.
1. Get an API key
Create a free account, open your account page and create an API key under API keys. Keys look like ark_live_ followed by a long random string, and you only see the full key once, so copy it somewhere safe. The free Explorer plan includes 50 history calls a month, which is plenty to follow along. Builder raises that to 2,000 a month for agents in production.
2. Add the MCP server
arkibber runs a remote MCP server over Streamable HTTP at https://arkibber.app/api/mcp. Authenticate with your key as a Bearer token. In any MCP client that accepts a JSON server config, the entry looks like this:
{
"mcpServers": {
"arkibber": {
"type": "http",
"url": "https://arkibber.app/api/mcp",
"headers": { "Authorization": "Bearer ark_live_YOUR_KEY" }
}
}
}Restart the client and it should list four new tools.
3. The four tools
page_at_date takes a url and a date (a year, a month, a day or a full timestamp) and returns the page's text from the closest capture at or before that date, plus the snapshot link and capture time.
page_changes takes a url and a from date (and optionally a to date) and returns every distinct version of the page in that range. Each version is a real content change: repeated captures of an identical page are collapsed.
docs_at_version takes a docs url and a date, such as a library's release date, and returns that page plus up to nine linked docs pages under the same path, as they were then.
domain_timeline takes a domain and returns month-by-month change activity for the whole site, plus the pages that changed most often.
4. Ask your agent questions only history can answer
You don't need special prompting; the tool descriptions are written the way people ask these questions. A few that work well:
"What did linear.app/pricing say in January 2024, and how does it compare to today?"
"When did stripe.com/pricing last change, and what changed?"
"I'm on version 1.x of this library, released in March 2024. Use the docs from then, not the current ones."
"Has example.com been redesigned in the last two years? When?"
5. Using it alongside Firecrawl Alexandria
Firecrawl Alexandria gives agents one interface to papers, developer docs, government records, official data providers and the live web. It is present tense by design, so arkibber fits next to it rather than in place of it. Connect Alexandria by following Firecrawl's own documentation, keep the arkibber server configured as above, and your agent can route each question to the right place: today's facts to Alexandria, yesterday's to arkibber.
A prompt that uses both: "Using the live web, get Acme's current plans and prices. Then use arkibber to find what their pricing page said a year ago and list what changed." (arkibber is independent and not affiliated with Firecrawl; the two just work well together.)
6. Prefer plain HTTP? Use the REST API
Every tool is also a REST endpoint: POST a JSON body to /api/v1/tools/ followed by the tool name. Send an Idempotency-Key header to make retries safe; a retried request isn't counted twice.
curl https://arkibber.app/api/v1/tools/page_at_date \
-H "Authorization: Bearer $ARKIBBER_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/pricing", "date": "2023-06-01"}'7. Handle limits gracefully
When a plan limit is reached the API returns HTTP 402 with a JSON body your agent can read: error is quota_exceeded, and limit, used, cap, period_start and upgrade_url tell it exactly what happened. Over MCP the same body comes back as a tool error. Failed calls and rejected calls are never billed.
Next steps
See what the index knows about any site on the web history page, then compare plans on the pricing page when you're ready to move an agent into production.