Token导航 LogoToken导航

MCP Server · 浏览器工具

webshift (Annibale X)

WebShift是一个Rust库和MCP服务器,用于将嘈杂的网页转换为适合LLM使用的干净、大小合适的文本。

stdio官方级别未说明来源级核验工具 3
RustClaude浏览器自动化

快速开始

作者 / 组织
x-hannibal
提供方
x-hannibal
运行时
Docker

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

7

仓库热度

收录来源

1 个

MCP World

选型结论

webshift (Annibale X) 属于浏览器工具类 MCP Server,公开资料标注 3 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

浏览器工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

docker run -d -p 8080:8080 searxng/searxng

客户端配置示例

{
  "mcpServers": {
    "webshift": {
      "command": "docker",
      "args": [
        "run",
        "-d",
        "-p",
        "8080:8080",
        "searxng/searxng"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

WebShift

______________________________________________________________________

什么是WebShift

WebShift是一个Rust库和MCP服务器,可以将嘈杂的网页转换为 用于LLM消费的干净、大小合适的文本。

原始HTML大多是垃圾:脚本、广告、导航菜单、cookie横幅、, 跟踪像素。将其直接输入LLM会淹没上下文窗口 有数万个无用的代币,没有推理的余地。 WebShift去除所有噪音,对文本进行消毒,并严格执行 调整预算,使模型只接收重要的内容。

你得到了什么

根据您启用的功能,WebShift可以有四种:

用例机箱功能标志它的作用
HTML去噪器webshiftdefault-features = falseclean() --纯Rust HTML到文本管道。去除噪声元素,对Unicode/BiDi进行消毒,压缩空白。零网络,零配置。进入任何为LLM处理web内容的Rust项目。
HTML文本重写器webshiftfeatures = ["text-map"]extract_text_nodes() + replace_text_nodes() --从HTML中提取单个文本节点,操纵它们(翻译、重写、简化),并重建结构完整的HTML。标签、属性和链接永远不会被触碰。
Web内容客户端webshiftdefault 或 features = ["llm"]fetch() + query() --带大小上限的流式HTTP提取器,8个搜索后端,BM25重新排序,可选LLM查询扩展和摘要。从搜索查询到结构化结果的完整流程。
MCP服务器webshift-mcp所有功能本机二进制(mcp-webshift)这暴露了 webshift_query, webshift_fetch,以及 webshift_onboarding 通过MCP标准。单一静态二进制文件,零运行时依赖关系。

何时使用WebShift

  • 你正在构建一个需要网络搜索的人工智能代理,你想要干净,

预算控制的文本,而不是原始HTML。

  • 您正在Rust管道中处理网页,需要一个可靠的

HTML到文本清洁器,在不丢失真实内容的情况下去除噪音。

  • 您需要LLM来翻译、重写或简化HTML中的文本

在不损坏标记的情况下,文本映射为您提供了一个安全的往返。

  • 您需要一个作为单个二进制文件工作的MCP web搜索服务器--

没有Python,没有pip,没有venv,没有Docker(除非你想要)。

  • 您需要对输出大小进行严格保证:每页上限、总预算

上限、流媒体下载限制。

何时不使用WebShift

  • 你需要一个无头浏览器来渲染JavaScript繁重的SPA。

WebShift解析静态HTML——它不执行JS。

  • 您需要渲染或截图一个页面,以保留其视觉布局。

WebShift处理HTML结构,但不渲染CSS或计算布局。 (注: text-map 确实为文本重写用例保留了DOM结构。)

  • 你正在构建一个需要跨页面导航的网络爬虫,

填写表单或处理身份验证流程。

______________________________________________________________________

运作原理

Question
  |
  +- (optional) LLM query expansion -> multiple search variants
  |
  +- Search via backend (SearXNG, Brave, Tavily, Exa, SerpAPI, Google, Bing, HTTP)
  |
  +- Deduplicate + filter binary URLs
  |
  +- Streaming fetch with per-page size cap
  |
  +- HTML cleaning -> plain text (noise elements, scripts, nav removed)
  |
  +- Unicode/BiDi sterilization
  |
  +- BM25 deterministic reranking
  |   +- (optional) LLM-assisted tier-2 reranking
  |
  +- Budget-aware truncation across all sources
  |
  +- (optional) LLM Markdown summary with inline citations
  |
  +- Structured JSON output

______________________________________________________________________

安装

二进制(MCP服务器)

cargo install webshift-mcp

二进制文件被称为 mcp-webshift.

来源

cargo install --path crates/webshift-mcp

作为一个图书馆

# Full pipeline (search + fetch + clean + rerank)
webshift = "0.2"

# Cleaner + fetcher only (no search backends)
webshift = { version = "0.2", default-features = false }

# Text-map only (extract/replace text nodes in HTML)
webshift = { version = "0.2", default-features = false, features = ["text-map"] }

# Everything including LLM features
webshift = { version = "0.2", features = ["llm"] }

______________________________________________________________________

快速启动

1.设置搜索后端

最简单的选择是 SearXNG -免费、自托管、无API密钥:

docker run -d -p 8080:8080 searxng/searxng

没有Docker?使用云后端——请参阅 搜索后端.

2.配置您的MCP客户端

{
  "mcpServers": {
    "webshift": {
      "command": "mcp-webshift",
      "args": ["--default-backend", "searxng"]
    }
  }
}

就是这样。代理人现在有 webshift_query, webshift_fetch,以及 webshift_onboarding.

有关特定于客户端的设置,请参阅 文档/集成/.

______________________________________________________________________

MCP工具

工具说明
webshift_query完整的搜索管道:搜索+获取+清理+重新排序+(可选)总结
webshift_fetch单页提取和清理
webshift_onboarding返回代理的JSON指南(预算、后端、提示)

webshift_query 参数

参数类型默认值说明
queriesstring或list必填搜索查询或查询列表
num_results_per_queryinteger5每个查询的结果
langstringnone语言过滤器(例如。 "en")
backendstring配置默认值覆盖搜索后端

______________________________________________________________________

配置

解决顺序(最高优先级优先):

  1. CLI参数 — --default-backend, --brave-api-key等等。
  2. 环境变量 — WEBSHIFT_* 前缀
  3. 配置文件 — webshift.toml (当前目录,然后 ~/webshift.toml)
  4. 内置默认值

配置文件

[server]
max_query_budget    = 32000   # total char budget across all sources
max_result_length   = 8000    # per-page char cap
max_total_results   = 20      # hard cap on results per call
max_download_mb     = 1       # streaming cap per page (MB)
search_timeout      = 8       # seconds
results_per_query   = 5
oversampling_factor = 2
adaptive_budget     = "auto"  # "auto" | "on" | "off" — budget allocation mode

[backends]
default = "searxng"

[backends.searxng]
url = "http://localhost:8080"

[backends.brave]
api_key = "BSA-..."

[backends.tavily]
api_key = "tvly-..."

[backends.exa]
api_key = "..."

[backends.serpapi]
api_key = "..."
engine  = "google"    # google | bing | duckduckgo | yandex

[backends.google]
api_key = "..."
cx      = "..."       # Custom Search Engine ID

[backends.bing]
api_key = "..."
market  = "en-US"

[backends.http]
url           = "https://my-search.example.com/api/search"
query_param   = "q"
count_param   = "limit"
results_path  = "data.items"     # dot-path to results array in JSON response
title_field   = "title"
url_field     = "link"
snippet_field = "description"

[backends.http.headers]
"Authorization" = "Bearer my-token"

[llm]
enabled               = false
base_url              = "http://localhost:11434/v1"   # OpenAI-compatible
api_key               = ""
model                 = "gemma3:27b"
timeout               = 60
expansion_enabled     = true
summarization_enabled = true
llm_rerank_enabled    = false

对于具有所有三种配置方法(TOML、env变量、CLI参数)的每个设置 以及简单的语言描述,请参阅完整 配置参考.

关键环境变量

WEBSHIFT_DEFAULT_BACKEND=searxng
WEBSHIFT_SEARXNG_URL=http://localhost:8080
WEBSHIFT_BRAVE_API_KEY=BSA-xxx
WEBSHIFT_GOOGLE_API_KEY=xxx
WEBSHIFT_GOOGLE_CX=xxx
WEBSHIFT_BING_API_KEY=xxx
WEBSHIFT_LLM_ENABLED=true
WEBSHIFT_LLM_BASE_URL=http://localhost:11434/v1
WEBSHIFT_LLM_MODEL=gemma3:27b

______________________________________________________________________

搜索后端

后端授权注释
SearXNGnone自托管,免费。违约: http://localhost:8080
勇敢API密钥自由层。 brave.com/search/api
塔维利API键面向AI。 tavily.com
艾克萨API键神经搜索。 例如ai
SerpAPIAPI密钥多引擎代理(Google、Bing、DDG…)。 蛇网
谷歌API密钥+CX自定义搜索。免费:每天100次。 可编程搜索引擎.google.com
必应API键Web搜索API。免费:每月1000次。 微软 Azure
超文本传输协议可配置通用REST后端——无需代码,仅限TOML配置

______________________________________________________________________

LLM功能(可选)

所有选择加入-默认情况下禁用,除非启用,否则任何数据都不会离开您的计算机。

功能它的作用
查询扩展单个查询->N个互补搜索变量
摘要内联Markdown报告 [1] [2] 引文
LLM重新评级在确定性BM25之上进行二级重新分级
跨语言规范化(奖金): 当BM25重新排序页面时 外语(如中文、日语、阿拉伯语),法学硕士总结者仍然 以提示语言生成最终报告。试剂接收干净的, 无论源页面中的语言组合如何,都能获得可读的输出。

适用于任何与OpenAI兼容的API(OpenAI、Ollama、vLLM、LM Studio等):

[llm]
enabled  = true
base_url = "http://localhost:11434/v1"
model    = "gemma3:27b"

______________________________________________________________________

防洪保护

始终活跃——核心价值主张:

保护说明
max_download_mb流上限——从不缓冲完整响应
max_result_length每个已清理页面的字符数有硬上限
max_query_budget所有来源的角色总预算
max_total_results对每次通话的结果进行严格限制
二进制过滤器.pdf, .zip, .exe等过滤 之前 任何网络请求
Unicode灭菌删除BiDi控制字符,零宽度字符

______________________________________________________________________

图书馆使用情况

use webshift::{Config, clean, fetch, query};

// Clean raw HTML — cap output at 8000 chars
let result = clean("
Hello world
", 8000);
println!("{}", result.text);

// Pass 0 to disable the per-page cap entirely (no truncation)
let full = clean("
Hello world
", 0);
assert!(!full.truncated);

// Fetch and clean a single page
let config = Config::default();
let page = fetch("https://example.com", &config).await?;

// Full search pipeline
let results = query(&["rust async programming"], &config).await?;
for source in &results.sources {
    println!("[{}] {} — {} chars", source.id, source.title, source.content.len());
}

// Backend partial failures (CAPTCHA, rate-limits, engine outages) are surfaced
// in `warnings` rather than as Err. Empty sources + non-empty warnings means
// "all backends blocked" — distinct from a legitimate "no matches found".
if results.sources.is_empty() && !results.warnings.is_empty() {
    eprintln!("all backends failed: {:?}", results.warnings);
}

文本映射:在不破坏标记的情况下重写HTML内容

提取文本节点,操纵它们(翻译、重写、简化),并重建 具有完整结构、属性和链接的HTML。

use webshift::{extract_text_nodes, replace_text_nodes, TextReplacement};

let html = r#"
Hello world
"#;
let map = extract_text_nodes(html);
// map.nodes = [(0, "Hello"), (1, "world")]

let replacements = vec![
    TextReplacement { id: 0, text: "Ciao".into() },
    TextReplacement { id: 1, text: "mondo".into() },
];
let result = replace_text_nodes(html, &replacements).unwrap();
// → 
Ciao mondo

// href untouched, tags intact, only text changed.

需要 features = ["text-map"]。参见 用例#11 查看完整的翻译示例。

功能开关

功能默认启用
backendson所有搜索后端+查询管道
llm关闭LLM客户、扩展器、汇总器、LLM重新银行
text-map 关 extract_text_nodes() + replace_text_nodes() --内容重写的DOM往返

______________________________________________________________________

集成

平台指南
克劳德桌面,克劳德代码,光标,风帆,VS代码IDE集成
泽德 --具有自动下载和配置服务器模式的本机扩展Zed扩展
Gemini CLI、Claude CLI、自定义代理代理集成

______________________________________________________________________

Beta状态

WebShift已启用 测试版核心功能稳定,服务器每天使用, 但是API表面在1.0之前仍然可能改变。

非常欢迎反馈。 如果某件事没有按预期工作,表现得很奇怪, 或者你有一个未涵盖的用例:

错误报告、配置问题和功能请求都有助于制定路线图。

贡献

欢迎投稿!请看 贡献.md 有关以下内容的详细指南:

  • 开发设置和工作流程
  • 代码风格和惯例
  • 测试要求
  • 文件标准
  • 拉取请求流程

许可证

MIT许可证——见 许可证 了解详情。

链接

  • **** --源代码和问题
  • 博士 -API文件
  • MCP注册表 --模型上下文协议注册表上的WebShift
  • MCP协议 --模型上下文协议规范

______________________________________________________________________

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

网页清理Rust本地部署HTML处理文本重写MCP服务器Rust库

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

自动操作网页

打开页面、点击、填表,把浏览器动作交给模型执行。

抓结构化数据

把页面内容整理成表格或 JSON,省掉手工复制粘贴。

走一遍关键流程

按步骤检查页面是否正常,回归时少漏环节。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在浏览器工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
webshift (Annibale X)

MCP World · 本页

3stdio有1 个2026-05-17
Fetch 9a2682de

MCP.so

1SSE有3 个2026-05-17
Browser 738d52bc

MCP World

0stdio有1 个2026-05-17
Playwright MCP Server

MCP.so

21stdio有4 个2026-05-17
Skyvern MCP

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

webshift (Annibale X) 怎么安装?

公开资料给出的安装命令是 docker run -d -p 8080:8080 searxng/searxng,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

webshift (Annibale X) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

webshift (Annibale X) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

webshift (Annibale X) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

webshift (Annibale X) 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP