Token导航 LogoToken导航TokenDH.com
MCP Web Search Tool logo
搜索检索stdio官方级别未说明来源级核验

MCP Web Search Tool

MCP Server

A MCP server providing real-time web search capabilities to any AI model.

工具数

5

提示词数

0

GitHub Stars

14

资源数

0
搜索开发工具TypeScriptClaudeClaudeClaude DesktopCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gabrimatic

提供方

gabrimatic

最后核验

2026/5/18 04:04

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -i -e BRAVE_API_KEY mcp-web-search

详细介绍

MCP网络搜索工具

主控程序 服务器,为助手提供实时网络搜索、整页阅读和源引用。Stdio传输,可插拔提供程序,无刮刀依赖。

Claude Desktop Example

![CI](https://github.com/gabrimatic/mcp-web-search-tool/actions/workflows/ci.yml) ![License: MIT](LICENSE) ](https://nodejs.org)

快速启动 · 工具 · 配置 · 客户 · 安全 · 更新日志

______________________________________________________________________

概述

五种工具: web_search, news_search, image_search, fetch_url, list_providers搜索返回具有稳定ID的排名摘要; fetch_url 读取任何id后面的页面。Brave Search是主要提供商;DuckDuckGo在没有钥匙的情况下运行作为后备。

需求

Node.js>= 20.18 (使用本地 fetch)
npm>= 10
勇敢搜索API密钥可选。没有它,DuckDuckGo可以处理 web_search. news_searchimage_search 需要钥匙。

快速启动

git clone https://github.com/gabrimatic/mcp-web-search-tool.git
cd mcp-web-search-tool
npm install
cp .env.example .env   # edit BRAVE_API_KEY if you have one
npm run build
npm start

使用Docker运行:

docker build -t mcp-web-search .
docker run --rm -i -e BRAVE_API_KEY mcp-web-search

有关Claude Desktop、Claude Code、Codex、VS Code、Cursor或Windsurf集成,请参阅 MCP_CLIENTS.md.

______________________________________________________________________

工具

每个工具返回两个内容块:模型的Markdown渲染和带有结构化有效载荷的围栏JSON块。错误返回为 isError: true 包含可操作信息的内容;只有未知的工具调用才会抛出协议错误。

web_search

实时网络搜索。首先使用当前的、有来源支持的答案。

参数类型说明
search_term字符串, 必需的查询字符串
providerenum"brave search""duckduckgo".设置密钥时默认为Brave,否则默认为DuckDuckGo。
countint(1–20)结果数。默认值10。
offsetint分页偏移量(仅限网页)。
cursorstring从上一个响应中隐藏光标。
freshness字符串pd (24小时), pw (周), pm (月), py (年份),或 YYYY-MM-DDtoYYYY-MM-DD.
countrystringISO国家代码。
search_langstring用户界面语言,例如。 en.
safesearchenumoff, moderate, strict.
include_domainsstring\[\]将结果限制到这些主机。
exclude_domainsstring\[\]从这些主机中删除结果(主机名后缀匹配)。

news_search

最近的新闻,包括来源名称和发布日期。只有勇敢。

image_search

带有缩略图的图像结果。只有勇敢。

fetch_url

读取搜索结果或任意 http(s) URL。传递之前搜索的结果id(首选)或完整URL。

参数类型说明
id_or_urlstring结果id(例如。 r_a1b2c3d4e5f6)或一个完整的 http(s) URL。
urlstring已弃用的别名 id_or_url.
max_charsint(200-200 000)返回字符的软上限。默认值为8000。
cursorstring从上一个响应中提取光标以继续读取。

返回页面标题、可读文本(脚本、样式、导航、页脚和侧边栏)、前25个出站链接、HTTP状态、内容类型、字节长度和 nextCursor 当被截断时。

拒绝不-http(s) 方案以及解析为私有、环回、链路本地、多播或IPv4映射的IPv6私有地址的任何主机。细节: SECURITY.md.

list_providers

返回已注册的提供程序和当前默认值。如果您不确定是否 news_searchimage_search 在本次会议中可用。

______________________________________________________________________

配置

所有配置都是环境驱动的。参考: .env.example.

变量默认值用途
BRAVE_API_KEY勇敢搜索API键。未设置时,使用DuckDuckGo。
MAX_RESULTS10默认结果计数(限1-50)。
REQUEST_TIMEOUT10000每个请求的超时时间(毫秒)(1000–60000)。
DEFAULT_PROVIDERauto强制特定提供者(例如。 duckduckgo).
ALLOW_KEYLESStrue何时 false,服务器拒绝启动 BRAVE_API_KEY.
CACHE_MAX_ENTRIES / CACHE_TTL_MS256 / 300000搜索缓存。
FETCH_CACHE_MAX / FETCH_CACHE_TTL_MS128 / 600000URL获取缓存。
FETCH_TIMEOUT_MS / FETCH_MAX_BYTES15000 / 2000000根据请求预算 fetch_url.

______________________________________________________________________

项目布局

src/
├── index.ts                    MCP server: tool registry, dispatch, rendering
├── config.ts                   env loader, validation, defaults
├── providers/
│   ├── SearchProvider.ts       abstract contract and shared types
│   ├── SearchProviderFactory   registry and default selection
│   ├── BraveSearchProvider     web/news/images via Brave API
│   └── DuckDuckGoProvider      keyless HTML-lite fallback
├── services/
│   ├── SearchService.ts        provider dispatch, LRU+TTL cache
│   └── FetchService.ts         safe URL fetch, readable extraction
└── utils/
    ├── http.ts                 native fetch, retry/backoff/timeout
    ├── html.ts                 zero-dep HTML to text + links
    ├── cache.ts                LRU+TTL cache
    └── ids.ts                  stable result-id minting and resolution
tests/                          vitest suite

添加提供者

import { SearchProvider, SearchResponse, SearchOptions } from './SearchProvider.js';

export class MyProvider extends SearchProvider {
  getName() { return 'My Provider'; }
  override requiresApiKey() { return true; }
  async search(query: string, _opts: SearchOptions = {}): Promise {
    const out = this.emptyResponse(query, 'web');
    out.results = mapped; // shape: SearchResult[]
    return out;
  }
}

在中注册 SearchProviderFactory.setupDefaults.调用时会自动生成结果ID mintResultId(url) 在每个条目上。

______________________________________________________________________

发展

npm run dev          # tsx watch mode
npm test             # vitest (23 tests)
npm run lint
npm run format
npm run build

CI在Node 20、22和24上运行,以及Docker镜像构建。测试涵盖了LRU+TTL缓存、HTML提取器、DuckDuckGo解析器、搜索服务缓存、HTTP重试/回退、SSRF保护、域匹配和结果id解析器。

______________________________________________________________________

示例提示

  • _“分析人士对今晚NBA比赛后的MVP争夺战有什么看法?”_
  • _“总结以下三个结果 RAG benchmarks 2025 并从第一篇论文中提取摘要。"_
  • _“找到韦伯望远镜最新深场的图像,然后打开美国国家航空航天局页面并引用标题。”_
  • _“柏林现在的天气怎么样?”_

______________________________________________________________________

许可证

MIT许可证

开发者

靠近 索鲁什·优素福·普尔

©保留所有权利。

YouTube视频

带Claude的MCP Web搜索工具的简短演示:

Claude+MCP网络搜索–现场演示

中型文章

项目背景及其工作原理:

深入了解MCP网络搜索工具

支持

目录标签

目录标签

搜索开发工具TypeScriptClauderesearch-and-dataagentmcpsearch-agentclaude-aiwebsearch-agentmodel-context-protocol网页搜索本地部署全文阅读来源引用AI助手

支持客户端

ClaudeClaude DesktopCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP