Razi Web Tools

io.github.razikallayi由 GitHub 账号 razikallayi 发布v1.0.0更新于 Oct 24, 2026

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

已验证Streamable HTTP可网页运行网页搜索与抓取浏览器自动化

概览

AI 生成的概览

远程 MCP 服务器,提供网址与网页工具:缩短链接、网页截图、获取站点图标与页面元数据、URL 编码与解码。

可以做什么
创建指向长网址的永久短链接并统计访问量,但无法通过此 API 编辑、改指向或删除。用无头浏览器截取公开网页,返回托管图片地址及尺寸和格式。从网站读取应用清单、图标和社交图片,按实际尺寸排序后获取公司标志。读取页面标题、描述、规范网址、语言、订阅源及 OpenGraph/Twitter 标签等元数据,不下载图片。对单个字符串做百分号编码或解码,格式错误的转义会被拒绝。
适用场景
适合需要快速使用网页工具而无需本地安装的场景:生成可分享的短链接、获取网页渲染截图、为列表或预览抓取站点标志或元数据,或安全地编码查询字符串中的值。
运行要求
使用服务商网站上的远程 streamable HTTP 端点,无需本地运行时或软件包。可选的 Authorization 请求头(Bearer 令牌形式)可提高速率限制并归属用量,但服务器未声明必须认证。
安装前请注意
Authorization 请求头包含密钥令牌。短链接永久有效,无法通过此 API 编辑、改指向或删除,访问量也无法读取。截图和元数据请求会把目标页面网址发送给服务商,返回的截图由服务商托管,而非直接返回图片字节。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Razi Web Tools,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.razikallayi%2Frazi-web/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "razi-web-tools": {
      "type": "http",
      "url": "https://www.razi.pro/api/mcp/web"
    }
  }
}

README

该仓库没有 README。

工具

6

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.

输入参数url必填customCode

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.

输入参数url必填widthformatheightdelayMsdarkModefullPage

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.

输入参数url必填

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.

输入参数url必填

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.

输入参数encoded必填

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。