mcpbeat Sign in

Razi Web Tools MCP Server

not responding

Razi Web Tools is listed as active in the registry but did not answer our last check. It exposes 6 tools.

Web and URL utilities over MCP: shorten URLs, screenshot pages, read page metadata, encode URLs.

The linked repository no longer exists on GitHub — it was deleted or made private.

Uptime history 14 days of history · worst day 0%
14 days agonow
0.0%
Uptime 24h
0 of 91 checks
6
Tools
read from the server
842 ms
Response time
average over 24h
open, no key
Access
streamable-http

Razi Web Tools does not always answer

Over the last week it answered 0.0% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add razi-web --transport http https://www.razi.pro/api/mcp/web
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "razi-web": {
      "url": "https://www.razi.pro/api/mcp/web"
    }
  }
}
~/.codex/config.toml
[mcp_servers.razi-web]
url = "https://www.razi.pro/api/mcp/web"
.cursor/mcp.json
{
  "mcpServers": {
    "razi-web": {
      "url": "https://www.razi.pro/api/mcp/web"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "razi-web": {
      "url": "https://www.razi.pro/api/mcp/web"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

decode
decode_url
Reverse percent-encoding with decodeURIComponent, turning %20-style escapes back into the characters they stand for. Returns JSON { decoded }. A malformed or truncated escape sequence is rejected with an error rather than passed through. Note that '+' is left as a literal plus, not converted to a space. It understands percent-escapes and nothing else: Base64 text and JWTs pass through unchanged or fail, rather than being decoded. It is the exact inverse of encode_url.
encode
encode_url
Percent-encode a string with encodeURIComponent so reserved characters survive transport inside a URL. Returns JSON { encoded }. It escapes the structural characters too — : / ? # & = all become %XX — so it is for a single query-string value or path segment, NOT for a whole address you still want to be clickable. This is escaping for URLs only. It is the wrong transform for making binary-unsafe content fit in JSON, an HTTP header or a data URI, which call for Base64 rather than percent-encoding. Reverse it with decode_url.
page
fetch_page_metadata
Read a web page's metadata without downloading any images. Returns JSON { url, finalUrl, title, description, siteName, canonical, lang, themeColor, author, generator, feeds, openGraph, twitter, icons, cached }, where `feeds` is an array of RSS/Atom URLs, `openGraph` and `twitter` are the complete tag sets as string maps, and any tag the page does not declare is simply omitted. `icons` is always an empty array here because icon resolution is switched off — call fetch_site_logo when the caller wants a logo, favicon or icon. `finalUrl` is the address after redirects (up to 3 hops are followed), which is how you resolve where a domain actually points. This is the fast, cheap counterpart to fetch_site_logo: one page fetch and no image work. It reads the served HTML only — it runs no JavaScript, so a client-rendered page may expose little, and it does not capture how the page looks (use screenshot_url for that). The crawler identifies itself as RaziMetadataBot, and HTTP status is not checked, so a 404 or bot-challenge page that serves HTML is parsed as though it were the page you asked for. Errors: 400 for a URL that is refused as unsafe, redirects too many times, does not return HTML, or exceeds the 5MB page cap; 504 if the page does not answer within 10 seconds; 502 otherwise. Results are cached for 24 hours and replayed with cached: true; 20 calls per minute per IP, then 429.
screenshot
screenshot_url
Capture a screenshot of any public web page, rendered in a real headless browser so JavaScript, web fonts and lazy-loaded images all appear. Returns JSON with a hosted image URL — not image bytes: { url, screenshotUrl (the same value under the older key), width, height, format, bytes, cached, source }. When source is "vps" the image is on razi.pro's CDN and every field is populated, except that height is null for a fullPage capture. If source is "thumbio" the renderer was unavailable and a third-party fallback produced the image: the URL points at image.thum.io rather than razi.pro, only width accompanies it (height, format and bytes are absent), and the fullPage, format, darkMode and delayMs options were ignored. Public pages only: every capture runs in a fresh browser with no cookies or credentials, so anything behind a login is unreachable, and a URL that is not http(s) or that resolves to a loopback, private or link-local address is refused with 400. Identical requests are cached for 7 days and return the same image (cached: true), so this cannot be used to poll a page for changes. Out-of-range numeric options are clamped to their stated range rather than rejected. Other failures: 429 over either rate limit, 403 when screenshots are switched off platform-wide, 502 when the render fails and no fallback is available. This is the most expensive call on the platform: it holds a whole browser worker for up to 50 seconds. Limited to 10 captures per minute and 100 per day per IP.
shorten
shorten_url
Create a permanent razi.pro short link that redirects to a long URL. Returns JSON { code, shortUrl } and nothing else. Visits through the link are counted, but no tool here reads that count back, and the link cannot be edited, retargeted or deleted through this API. It never expires. The destination is stored, never fetched or checked for reachability, so a dead or mistyped URL still yields a working short link. Only http and https targets are accepted. This shortens an existing address; it does not host anything, so a file needs a public URL of its own before there is something to shorten. No sign-in is required; an anonymous call creates the link unowned, so it will not appear in any account's list. 30 links per hour per IP, then 429.
site
fetch_site_logo
Get a company's logo from its website URL. Reads the web app manifest, apple-touch-icons, declared favicons, OpenGraph/Twitter images and /favicon.ico, then downloads at most the first 10 candidates and measures their real dimensions — declared `sizes` attributes are frequently wrong, so ranking uses the measurement rather than the claim. Returns JSON { logo, icons, cached } plus the same page-metadata fields as fetch_page_metadata (url, finalUrl, title, description, siteName, canonical, lang, themeColor, author, generator, feeds, openGraph, twitter), so there is no need to also call it. Use that tool instead if you do NOT need the logo: it skips the image downloads entirely and is much faster. `logo` is the best candidate and is absent when nothing usable was found; `icons` lists all candidates, best first, with real icon assets deliberately outranking social share images, which are usually a wide marketing banner rather than a logo. If the site declares nothing fetchable, a Google favicon-proxy candidate (source "google-proxy") is added as a last resort. Each candidate is { url, source, declaredSizes?, width, height, format, bytes, rehostedUrl? }. Candidates the site declares but that cannot be fetched are still returned last, carrying an `error` field — that is what makes this useful for auditing your own site's icons. SVG logos carry no width/height because they are not rasterised, and a .ico often comes back unmeasured for the same reason. The served HTML is read with no JavaScript executed, and the crawler identifies itself as RaziMetadataBot, so a site that challenges unknown bots yields the challenge page's icons. HTTP status is not checked: a 404 page that serves HTML is parsed as though it were the page you asked for. Errors: 400 for a URL that is refused as unsafe, does not return HTML, or exceeds the 5MB page cap; 504 if the page does not answer within 10 seconds; 502 otherwise. Results are cached for 24 hours and replayed with cached: true; 20 calls per minute per IP, then 429.

Endpoints

URLTransportStateLatencyChecked
https://www.razi.pro/api/mcp/web streamable-http answering 842 ms 6 min ago

Alternatives to Razi Web Tools

same job, measured the same way
Snaprender
by user0856

Screenshot, extract content, and render web pages. PNG/JPEG/WebP/PDF, batch, signed URLs.

36 installs/wk local only
Screenshotink
by screenshotink

Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.

26 installs/wk answering
Snapgrab
by arknill

URL to screenshot with metadata. Python MCP server. Claude Vision optimized.

50 installs/wk local only
rasterly
by rasterly-dev

Web toolkit for AI agents: read any URL as Markdown, screenshot, extract data, or crawl a site.

25 installs/wk local only
rasterly
by jhonychain

Web toolkit for AI agents: read any URL as Markdown, screenshot, extract data, or crawl a site.

local only
Llama AI MCP
by rocnubie

Use Llama AI Chat to test Meta Llama 4 Maverick on code review, long PDFs, and screenshots.

local only
PageShot MCP
by dpozimski

Capture webpage screenshots with format, viewport, and dark mode options

33 installs/wk local only
url2image
by url2image

Capture batches of public web pages in a real browser and download the screenshots as a zip.

5 tools answering

Razi Web Tools — questions

Answers built from our own checks of this server.

What can Razi Web Tools do?
It exposes 6 tools, read directly from the server on our last check. Among them: decode_url, encode_url, fetch_page_metadata, fetch_site_logo, screenshot_url, shorten_url. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Razi Web Tools working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 91 checks got a reply (0.0%), average response time 842 ms. The bar chart above shows every period we have measured.
Is Razi Web Tools still maintained?
The linked repository no longer exists on GitHub — it was deleted or made private. We show this because it changes what you can expect: an unmaintained server may keep answering for months and then stop without warning.
The registry lists Razi Web Tools as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Razi Web Tools?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Razi Web Tools need an API key?
No. Razi Web Tools completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.