Live Web Data by Teneo Protocol
officialRemote MCP server and API that fetches any public web page live, the way local visitors see it, from the country you choose, as clean Markdown. Web data extraction, fetch and scraping for AI agents, with local results and prices per request. livewebdata.com is the Live Web Data API, a product by Teneo Protocol.
What can you do with Live Web Data By Teneo Protocol MCP?
- Fetch live page content — Ask your assistant to read any public URL and return its main content as clean Markdown, plain text, or HTML.
- Choose the viewing country — Request a page as seen from a specific country, such as
de,gb, orus, using an ISO-3166 alpha-2 code. - Control output size and scope — Set
max_charactersbetween 500 and 100,000, and choose compact main content or the full page body. - Check account status — Have the assistant check remaining credits, plan, and rate limit before running large batches; this call is free.
- Handle fetch errors — Get actionable error messages for restricted sites, missing pages, timeouts, rate limits, and insufficient credits.
Hosted MCP Server
npx add-mcp 'https://livewebdata.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Use the Live Web Data API as a tool in Claude, Cursor, VS Code and any other MCP client — with one URL and your existing API key.
What is MCP
The Model Context Protocol (MCP) is an open standard that lets AI agents discover and call external tools. Our MCP server exposes the Contents API as two tools, so an agent can read any public web page on its own.
Server & auth
| Value | |
|---|---|
| Server URL | https://livewebdata.com/mcp |
| Transport | Streamable HTTP (stateless): JSON-RPC over POST; GET and DELETE answer 405 |
| Auth | Authorization: Bearer <api_key> |
| Keys | Same keys as the REST API — create one under API keys |
Missing or invalid keys are rejected with HTTP 401 (suspended accounts: 403, "API access for this account is suspended. Contact support.") before any tool runs.
Client setup
Replace YOUR_KEY with your API key. In the dashboard, the Integrations page fills in your key for you.
Run this in your terminal. The server is then available in every Claude Code session for this project.
claude mcp add --transport http live-web-data https://livewebdata.com/mcp \
--header "Authorization: Bearer YOUR_KEY"
Add --scope user to make it available in all projects. Check with claude mcp list.
get_page_contents
Fetch a public web page live and return its main content as clean Markdown, plain text or HTML. Read-only, idempotent. Single URL per call.
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string (http/https, at most 8,192 characters) | required | The public URL to fetch. |
country | ISO-3166 alpha-2 | "us" | Fetch the page as seen from this country, e.g. 'de', 'gb', 'us'. |
format | "markdown" | "text" | "html" | "markdown" | Output format. Prefer markdown. The page HTML is fetched and returned only for "html". |
max_characters | integer 500–100000 | 8000 | Maximum characters of content to return. Smaller than the REST API's default (text.maxCharacters, 100,000) because the result goes into the agent's context; raise it when the content is cut. |
verbosity | "compact" | "full" | "compact" | compact = main content only, full = whole page body. |
The result is one text item with a short header, followed by the content. The full REST-style JSON is also returned as structuredContent (with results[].html only for format: "html").
# Web scraping - Wikipedia
Source: https://en.wikipedia.org/wiki/Web_scraping · country: us · live · credits used: 1 · credits left: 8,411
# Web scraping - Wikipedia
…
get_account_status
Check the remaining credits, plan and rate limit for the connected account. Agents should call it before large batches. No parameters, free. Returns the same numbers as GET /v1/account.
Plan: Starter · Credits left: 8,412 · Rate limit: 2 URL/s (burst 4) · Status: active
Errors
Errors are returned with isError: true and one actionable sentence the agent can follow. When nothing was charged, the message ends with “No credits were charged.”
| Case | Message to the agent |
|---|---|
| 451 restricted target | This website is restricted and cannot be retrieved. Do not retry; use another source. |
CRAWL_NOT_RENDERED | The page has no usable text: it needs JavaScript rendering, or shows no text even when rendered. Try another source or a different URL for the same information. |
CRAWL_NOT_FOUND | Page not found (404/410). |
SOURCE_NOT_AVAILABLE | The website refused this request. Use another source. |
SOURCE_BLOCKED | Access denied by the website. Use another source. |
CRAWL_LIVECRAWL_TIMEOUT | The page timed out. Retry once with a longer timeout, otherwise use another source. |
BROWSER_UNAVAILABLE | Browser rendering is temporarily unavailable. Retry in a few minutes, otherwise use another source. |
RATE_LIMITED | The rendering limit for the user's plan is reached. Do not retry rendering now; use another source. |
| 402 insufficient credits | The account is out of credits. Tell the user to top up at …/dashboard/billing. |
| 429 rate limited | Rate limit reached. Wait N seconds before retrying. |
| 401 / 403 | The API key is invalid or suspended. Tell the user to check their key at …/dashboard/keys. |
| Still fetching after 5 minutes | The page did not finish loading within 5 minutes, and the fetch may still be charged. Use another source. |
Credits
MCP calls are billed exactly like REST calls: 1 credit per successful page, failed requests (including access denied by the site) are free. They appear in Usage with channel mcp. See Credits.