mcpbeat Sign in

Razi Web Tools MCP Server

answering

Razi Web Tools is answering right now. Last checked 11 min ago. 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 60 days of history · worst day 0%
60 days agonow
100.0%
Uptime 24h
91 of 91 checks
6
Tools
read from the server
133 ms
Response time
average over 24h
authentication required
Access
streamable-http

This one has been quiet for a while

Quiet is not dead — but it is worth knowing when it wakes up, or when someone else takes it over. We watch the repository and tell you either way.

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 11 min ago.

run in your terminal
claude mcp add razi-web --transport http https://www.razi.pro/api/mcp/web
Settings → Connectors → Add custom connector, then paste this address
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
{
  "servers": {
    "razi-web": {
      "type": "http",
      "url": "https://www.razi.pro/api/mcp/web"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, but it did not say what kind of credentials it expects.

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 needs auth 96 ms 11 min ago

Alternatives to Razi Web Tools

same job, measured the same way
Web Reader & Search (Tanod)
by tanod

Web search for agents: page to Markdown, screenshots, news search, metadata, sitemaps and RDAP.

40 tools answering
JsonLink
by mauriblint

Web access for AI agents: URL to Markdown, link metadata, screenshots, links and images of any URL.

50 installs/wk local only
Screenshotink
by screenshotink

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

49 installs/wk answering
Snapgrab
by arknill

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

71 installs/wk local only
Shotlane
by shotlane

Screenshot web pages, read them as clean Markdown (JS rendered), and render HTML to PDF.

answering
rasterly
by rasterly-dev

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

54 installs/wk local only
R
rasterly
by jhonychain

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

local only
switch402
by switch402

Markdown scrape, site map, page metadata, screenshots, web search and PDF to text. Pay per call

9 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 91 of 91 checks got a reply (100.0%), average response time 133 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.
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 in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You will need your own credentials: it refuses anonymous clients.
Does Razi Web Tools need an API key?
Yes. Every time we knock, Razi Web Tools answers with an authorization challenge instead of its tool list — that is how we know it is running and gated rather than broken. Bring your own credentials and it will talk.
How fast is Razi Web Tools?
It answers our handshake in 133 ms on average, which is faster than 89% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.