Clawifi

io.github.atakanelik34由 GitHub 账号 atakanelik34 发布v0.4.0更新于 Oct 27, 2026

Agent-native internet gateway: typed search, fetch, scrape, crawl, and extract via the Clawifi API.

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

Clawifi 是一个托管的网页搜索与页面读取网关,让助手搜索网页、把页面和 PDF 抓取为 markdown、抓取结构化内容并列出站点 URL。

可以做什么
  • 搜索网页并返回带标题、URL 和摘要的排序结果
  • 抓取单个 URL 或 PDF 并转为干净的 markdown,可按查询只返回相关段落,或强制用浏览器渲染
  • 把 URL 抓取为 markdown、文本、链接、元数据、HTML、截图或状态 JSON,并可按查询过滤
  • 从种子 URL 列出站点可发现的 URL,并支持搜索过滤
  • 在运行前估算调用费用,并查看账户资料、积分余额和请求历史
适用场景
适合助手需要读取实时网页或 PDF、执行网页搜索,或梳理站点 URL,并希望结果已缩减为能回答问题的段落时使用。无密钥层级足以试用,配置密钥后可获得完整工具集。
运行要求
可作为基于 streamable HTTP 的远程托管端点运行,也可作为本地 Python 包运行(pip install clawifi,用 clawifi-mcp 启动)。完整工具集需要 Clawifi API 密钥,通过 CLAWIFI_API_KEY 环境变量或 Authorization bearer 请求头提供;无密钥时仅四个工具可用,限制为每分钟 12 次、每地址每天 50 次。需要能访问 Clawifi API 的网络。
安装前请注意
该包是托管第三方 API 的轻量客户端,传入的 URL 和查询会发送给 Clawifi。调用按积分计费:fetch 为 1 积分,强制浏览器渲染为 3 积分,账户初始赠送 1,000 免费积分。运行前可用 estimate 工具估算费用。API 密钥属于机密,命令行只显示掩码或变量引用,不会显示密钥本身。

安装

在 SourceWeft 中

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

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

交给智能体安装

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

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

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

其他 MCP 客户端

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

{
  "mcpServers": {
    "clawifi": {
      "type": "http",
      "url": "https://api.clawifi.dev/mcp"
    }
  }
}

README

clawifi

[PyPI] [Python] [License] [MCP] [GitHub stars]

Official Python SDK, CLI, and MCP server for Clawifi, web search and page reading for AI agents: search many engines as one, read pages and PDFs, map and crawl sites, and get back only the passages that answer the question, each with its source. One typed API and MCP surface for all of it.

This package is a thin client over the hosted Clawifi API (hosted API version 1.7.2 at time of release); the Clawifi server is not included. Docs, pricing and status: clawifi.dev/docs · clawifi.dev/pricing · clawifi.dev/status · clawifi.dev/security.

One-click install (hosted server, no key needed to try)

[Add to Cursor] [Install in VS Code]

Both add the hosted remote server https://api.clawifi.dev/mcp. No key needed to try: 4 tools, 50 calls a day per address. Add your API key for the full toolset (get a free key).

Install

bash
pip install clawifi

Get an API key

bash
clawifi signup --email [email protected] --password "a strong password"

This creates an account, grants 1,000 free credits, and prints an API key. Export it:

bash
export CLAWIFI_API_KEY="clawifi_live_..."

Quicktest

bash
clawifi quicktest --url https://example.com

Set up your MCP client

bash
clawifi init

finds the MCP clients installed on this machine (Claude Code, Codex, Cursor, Claude Desktop, VS Code) and prints, for each one, the install line for the local server (clawifi-mcp, stdio) and for the remote server, followed by a first call to try. It only prints; it never shows your key, only $CLAWIFI_API_KEY or a masked clawifi_live_****. clawifi init --all shows every client, found or not.

To have it edit a config file for you:

bash
clawifi init --write cursor            # ~/.cursor/mcp.json, stdio entryclawifi init --write cursor --remote   # ~/.cursor/mcp.json, remote entryclawifi init --write claude-desktop    # claude_desktop_config.json, stdio entry

--write asks before it changes anything and copies the existing file to <file>.bak-<timestamp> first. Claude Code, Codex and VS Code have their own install commands, which init prints.

For Claude Code, for example:

bash
# local (stdio)claude mcp add --env CLAWIFI_API_KEY=$CLAWIFI_API_KEY --transport stdio clawifi -- clawifi-mcp# remoteclaude mcp add --transport http clawifi https://api.clawifi.dev/mcp --header "Authorization: Bearer $CLAWIFI_API_KEY"

Use as an MCP server

The local MCP server runs as:

bash
clawifi-mcp

reading CLAWIFI_API_KEY from the environment. clawifi mcp config prints a minimal config for it. Every tool carries a title and the MCP hints readOnlyHint, destructiveHint, idempotentHint and openWorldHint; none is destructive.

The billable tools (fetch, scrape, extract, map_site, crawl, search_free) take their common options as parameters and any other API field in options, which is merged into the request body. They refuse dry_run: use the estimate tool to price a call. Arguments a tool does not declare are refused rather than ignored.

Remote MCP

Clawifi also runs a hosted MCP server, so nothing needs installing:

  • URL: https://api.clawifi.dev/mcp (streamable HTTP)
  • Auth: Authorization: Bearer <your key>, or the X-Clawifi-Api-Key: <your key> header

The old host api.clawifi.qzz.io (API and /mcp) keeps working, so CLAWIFI_API_BASE=https://api.clawifi.qzz.io and existing remote configs need no change.

Without a key the remote server offers a keyless tier of four tools, search_free, fetch_url, scrape_url and map_site, at 12 calls a minute and 50 a day per address. With a key you get the full tool list.

Credits

Calls are charged per operation (a plain fetch is 1 credit, a browser render 3, a crawl 1 per page, and so on). See clawifi.dev/pricing, or print the current table, which needs no key:

bash
clawifi credits

The credits MCP tool and client.credits() show your own usage and balance instead.

Use as a Python SDK

python
from clawifi import Clawifi
client = Clawifi()  # reads CLAWIFI_API_KEY from the environmentpage = client.fetch("https://example.com")print(page["success"])

An async client is also available as clawifi.AsyncClawifi.

search_content searches and reads the top results; it is compact by default and full=True returns the full output:

python
results = client.search_content("agent memory benchmarks", full=True)

Responses are returned as the API sends them, so fields such as published_at, modified_at and fetched_at come through untouched.

Estimates (hosted API 1.7.0 and later)

python
quote = client.estimate("fetch", url="https://example.com")# {"dry_run": true, "route": "POST /fetch", "estimate": {"minimum": ..., "maximum": ..., "raises": [...]},#  "balance": ..., "would_402": ..., "would_429": ..., "binding_limit": ..., "charged": 0}client.crawl("https://example.com", max_pages=50, dry_run=True)

estimate() and dry_run=True work for fetch, scrape, extract, map, crawl, search_free and search_content. Before the first dry run the client checks the API version at /product/manifest; an API older than 1.7.0 would ignore dry_run and run (and bill) the call, so the client raises ClawifiDryRunUnsupportedError and sends nothing. Pre-releases such as 1.7.0rc1 count as older than 1.7.0.

dry_run is sent only when it is True, and only as the JSON boolean true: a normal call, or dry_run=False, has no dry_run key in its body, and a value that is not a bool raises TypeError before anything is sent. The API answers any dry_run key (even false) on a route that cannot dry-run with a 422, so schema_assist drops dry_run=False and refuses dry_run=True.

The estimate MCP tool does the same from an agent: estimate(operation="fetch", args={"url": "https://example.com"}).

Rate limits

A 429 raises ClawifiAPIError with retry_after (seconds, from the Retry-After header) and limit_scope (which limit was hit, from details.limit_scope). Retryable calls wait out a Retry-After of up to 10 seconds before retrying; a longer one is raised straight away.

MCP tools

ToolWhat it does
fetchFetch a single URL and return its extracted content. With query, only the passages that answer it.
scrapeScrape a URL with source-aware routing and return structured content. With query, only the passages that answer it.
search_freeRun a free-tier web search and return results.
extractExtract structured data from a URL.
map_siteMap a site's discoverable URLs starting from a seed URL.
crawlStart an asynchronous crawl from a seed URL; returns a crawl_id to poll.
estimatePrice a fetch, scrape, extract, map, crawl, search_free or search_content call without running it or charging for it (hosted API 1.7.0+).
get_crawlGet the current status and results of a crawl.
create_jobCreate an asynchronous job for a billable operation; returns a job_id to poll.
get_jobGet the current status and results of a job.
accountGet the authenticated account's profile and plan.
creditsGet the authenticated account's credit usage and remaining balance.
list_historyList past requests for the authenticated account.
list_monitorsList configured Evidence Monitor checks for the authenticated account.

Documentation

See clawifi.dev/docs for the full API reference, MCP tool list, and CLI command reference.

License

MIT

来源:README.md,提交 7a99f3c

工具

4

fetch_url

Fetch a page

Fetch one URL (page or PDF) as clean markdown with route diagnostics. query returns only the top_k passages that answer it. force_browser renders it in a browser (3 credits instead of 1).

输入参数url必填querytop_kmax_pagesforce_browsertarget_selectortimeout_seconds

scrape_url

Scrape a page

Scrape a URL into LLM-ready formats (markdown, text, links, metadata, html, screenshot, state_json). query keeps only the top_k passages of markdown and text that answer it.

输入参数url必填modequerytop_kformatstarget_selectortimeout_seconds

search_free

Search the web

Search the web and return ranked results (title, URL, snippet).

输入参数query必填time_rangemax_resultsinclude_domains

map_site

Map a site

List a site's discoverable URLs (sitemap, robots, links) from a seed URL; search filters them.

输入参数url必填searchmax_urls

版本历史

6
  1. v0.4.0最新Oct 22, 2026
  2. v0.3.1Oct 21, 2026
  3. v0.2.0Oct 20, 2026
  4. v0.1.2Oct 12, 2026
  5. v0.1.1Sep 29, 2026
  6. v0.1.0Sep 16, 2026

评分

已满足适用检查项的 100%

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

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