README
🚀 MCP-GetWeb
MCP-GetWeb 是一个基于模型上下文协议(MCP)的服务器,它具备网页搜索和内容提取的强大能力,能为用户提供便捷的网络信息获取体验。
🚀 快速开始
在开始使用前,你需要准备以下信息:
以下是配置示例:
{
"mcpServers": {
"getweb": {
"command": "npx",
"args": [
"mcp-getweb"
],
"type": "stdio",
"env": {
"GOOGLE_API_KEY": "XXXXXXXXX",
"GOOGLE_SEARCH_ENGINE_ID": "XXXXXXXXX",
"JINA_API_KEY": "jina_XXXXXXXXX"
}
}
}
}
✨ 主要特性
1) DuckDuckGo 搜索 (duckduckgo-search)
借助 DuckDuckGo 进行网页搜索,并支持 HTML 内容抓取。
参数说明:
query(字符串,必填):搜索查询词page(整数,可选):页码(默认值:1,最小值:1)numResults(整数,可选):返回结果数量(默认值:10,最小值:1,最大值:20)
2) Google 搜索 (google-search)
利用可编程搜索引擎进行 Google 搜索,并返回相关结果。
参数说明:
query(字符串,必填):搜索查询词;使用引号可进行精确匹配num_results(整数,可选):返回结果总数(默认值:5,最大值:10)site(字符串,可选):限定搜索特定网站/域名(例如:wikipedia.org)language(字符串,可选):ISO 639 - 1 语言代码(例如:en,es)dateRestrict(字符串,可选):日期过滤器,例如:d7,w4,m6,y1exactTerms(字符串,可选):必须出现的精确短语resultType(字符串,可选):结果类型:image|images|news|video|videospage(整数,可选):分页页码(默认值:1,最小值:1)resultsPerPage(整数,可选):每页结果数量(默认值:5,最大值:10)sort(字符串,可选):排序顺序,relevance(默认)或date
注意:需要设置 GOOGLE_API_KEY 和 GOOGLE_SEARCH_ENGINE_ID。
3) Felo AI 搜索 (felo-search)
基于人工智能的搜索功能,可提供上下文相关的响应,获取最新的技术信息(版本发布、公告、迁移、基准测试、社区见解等)。
参数说明:
query(字符串,必填):搜索查询词或提示stream(布尔值,可选):是否流式返回响应(默认值:false)
4) URL 内容抓取 (fetch-url)
抓取指定 URL 的内容,并以文本形式返回,支持提取控制。
参数说明:
url(字符串,必填):要抓取的 URLmaxLength(整数,可选):最大内容长度(默认值:10000,最小值:1000,最大值:50000)extractMainContent(布尔值,可选):尝试提取主要内容(默认值:true)includeLinks(布尔值,可选):包含链接文本(默认值:true)includeImages(布尔值,可选):包含图片 alt 文本(默认值:true)excludeTags(字符串数组,可选):要排除的标签(默认包含script,style,noscript,iframe,svg,nav,footer,header,aside)
5) URL 元数据提取 (url-metadata)
从指定 URL 提取元数据(标题、描述、图片、图标)。
参数说明:
url(字符串,必填):要提取元数据的 URL
6) URL 抓取并转换为 Markdown (url-fetch)
抓取网页内容并转换为 Markdown 格式。支持处理 HTML、纯文本和 JSON(以代码块形式格式化输出)。
参数说明:
url(字符串,必填):要抓取并转换为 Markdown 的 URL
7) Jina 阅读器 (jina-reader)
使用 Jina r.reader 从指定 URL 检索适合大语言模型(LLM)的内容,支持可选的摘要和格式设置。
参数说明:
url(字符串,必填):要抓取和解析的 URLmaxLength(整数,可选):最大输出长度(默认值:10000,最小值:1000,最大值:50000)withLinksummary(布尔值,可选):包含链接摘要(默认值:false)withImagesSummary(布尔值,可选):包含图片摘要(默认值:false)withGeneratedAlt(布尔值,可选):为图片生成 alt 文本(默认值:false)returnFormat(字符串,可选):markdown(默认) |html|text|screenshot|pageshotnoCache(布尔值,可选):绕过缓存(默认值:false)timeout(整数,可选):最大等待秒数(默认值:10,最小值:5,最大值:30)
注意:需要设置 JINA_API_KEY。
🙏 致谢
- Anthropic 提供的模型上下文协议规范
- DuckDuckGo 提供的注重隐私的网页搜索体验
- Google 可编程搜索引擎和自定义搜索 JSON API
- Jina AI r.reader API 实现高质量的内容提取
- Felo AI 提供的最新的、面向开发者的搜索见解
- 支撑本服务器的 Rust 生态系统和相关库:
- tokio、reqwest、serde、serde_json、tracing、tracing - subscriber、clap
- scraper、html5ever、markup5ever_rcdom、regex、once_cell、futures、async - stream
- url、uuid、thiserror、tokio - util、rand、urlencoding
- 更广泛的 MCP 社区提供的指导、示例和讨论
🛠️ 支持
如果您遇到任何问题或有疑问,请在 GitHub 上提交问题。
Scan to join WeChat group