Web_Search_MCP
一个带有网页搜索工具的 MCP (模型上下文协议) 服务器
memohib
README
Web_Search_MCP
一个带有网络搜索工具的 MCP (模型上下文协议) 服务器
本项目演示了如何使用 Tavily API 创建一个网络搜索工具,并将其与 MCP (模型上下文协议) 集成,以便与 AI 系统进行无缝交互。 这使您可以为您的语言模型或应用程序提供实时的网络搜索功能。
概述
Web_Search_MCP
项目利用了以下关键组件:
- Tavily API: 一个强大的搜索 API,提供实时的、全面的网络搜索结果,包括答案、原始内容和相关元数据。
- FastMCP: FastMCP 类使用 Python 类型提示和文档字符串来自动生成工具定义,从而简化了 MCP 工具的创建和维护。
- Langchain: 具体来说,Langchain 中的
TavilySearchResults
工具用于高效地与 Tavily API 交互。 - Dotenv: 一个用于从
.env
文件加载环境变量的库,安全地管理敏感信息,例如 API 密钥。 - uv: 一个非常快速的 Python 包安装程序和解析器,用于管理和运行此项目。
功能
该项目的核心在于 search_web
工具,它提供以下功能:
- 网络搜索: 接受搜索查询作为输入,并使用 Tavily API 从网络检索相关的搜索结果。
- 详细结果: 提供来自搜索结果的详细信息,包括网站的内容、URL、相关性评分、内容类型和直接答案(如果可用)。
- 格式化输出: 以结构良好的 JSON 格式返回搜索结果。 输出包括状态指示器(
success
或error
)、结果数组(如果成功)和时间戳。 - 错误处理: 优雅地处理搜索过程中的错误,并以 JSON 格式返回信息丰富的错误消息。
- 异步处理: 搜索工具基于异步,可以同时处理多个请求。
前提条件
在运行项目之前,请确保您已具备:
- Python 3.8+: 您的系统上安装了 Python 3.8 或更高版本。
- Tavily API 密钥: 一个有效的 Tavily API 密钥,可以通过在 Tavily 网站上注册获得。
- uv: Python 的 uv 包管理器。 您可以使用以下命令安装它:
pip install uv
安装
- 创建项目目录: 创建一个项目目录并导航到该目录中:
*** 运行以上代码后,uv 将在目录中创建uv init Web_Search_MCP
pyproject.toml
和.venv
*** - 创建项目文件: 在
Web_Search_MCP
目录中创建文件main.py
和.env
。 - 激活 Venv: 导航到 .venv/Scripts/activate 并激活虚拟环境。
- 复制代码: 将
main.py
和.env
中的代码复制到您刚刚创建的文件中。 - 安装依赖项: 使用
uv
安装所需的 Python 包:uv add "mcp[cli]" python-dotenv langchain-community tavily-python
配置
-
.env
文件:- 在
Web_Search_MCP
目录中创建一个名为.env
的文件。 - 将您的 Tavily API 密钥添加到
.env
文件中,格式如下:
将TAVILY_API_KEY='your_tavily_api_key'
your_tavily_api_key
替换为您的实际 Tavily API 密钥。
- 在
-
claude_desktop_config.json
:- 此文件由 Claude 桌面应用程序(如果您正在使用它)用于发现和运行 FastMCP 服务器。
- 它应该位于
c:\Users\<您的用户名>\AppData\Roaming\Claude\claude_desktop_config.json
- 确保
claude_desktop_config.json
中Web_Search_MCP
目录的路径是准确的。 如果您的项目不在path/Web_Search_MCP
中,请修改配置文件中的args
字段。
{ "mcpServers": { "Mcp_Demo": { "command": "uv", "args": [ "--directory", "path/Web_Search_MCP", "run", "main.py" ] } } }
运行 MCP 服务器
配置 claude_desktop_config.json
文件后,您可以从 Claude 桌面应用程序中启动服务器。
用法
服务器运行后,它会根据模型上下文协议公开一个名为 search_web
的工具。
- 工具名称:
search_web
- 输入:
query
(str): 您要提交到网络的搜索查询。
- 输出: 包含搜索结果的 JSON 格式的字符串。
JSON 响应示例 (成功):
{
"status": "success",
"results": [
{
"title": "...",
"url": "...",
"content": "text",
"score": 0.9,
"raw_content": "..."
},
{
"title": "...",
"url": "...",
"content": "text",
"score": 0.9,
"raw_content": "..."
}
],
"timestamp": 1708849844.064655
}
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。