使用说明
AI创客空间:MCP第13场会议代表
该项目是MCP(模型上下文协议)服务器的演示,该服务器利用Tavily API进行网络搜索功能。服务器设计为在标准输入/输出(stdio)传输模式下运行。
项目概述
MCP服务器设置为使用Tavily API处理网络搜索查询。它由以下关键部件组成:
- TavilyClient:用于与Tavily API交互以执行网络搜索的客户端。
先决条件
- Python 3.13或更高版本
- 有效的Tavily API密钥
⚠️WINDOWS注意事项:⚠️
您需要在 视窗 操作系统的侧面。
这将需要为Powershell获取两个CLI工具,具体操作如下:
winget install astral-sh.uvwinget install --id Git.Git -e --source winget
拥有这些CLI工具后,请打开Cursor 进入Windows.
然后,您可以在Cursor终端中使用以下命令克隆存储库:
git clone https://AI-Maker-Space/AIE8-MCP-Session.git
之后,您可以从步骤2开始。在......下面
安装
-
克隆存储库:
git clone <repository-url> cd <repository-directory> -
配置环境变量: 复制
.env.sample到.env并添加您的Tavily API密钥:TAVILY_API_KEY=your_api_key_here -
🏗️ 向MCP服务器添加新工具 🏗️
在中创建新工具 server.py 文件,就是这样!
运行MCP服务器
要启动MCP服务器,您需要在Cursor中的MCP配置文件中添加以下内容:
注意:要访问MCP配置。您可以使用命令托盘(CMD/CTRL+SHIFT+P)并选择“查看:打开MCP设置”,然后用下面的JSON blob替换内容。
{
"mcpServers": {
"mcp-server": {
"command" : "uv",
"args" : ["--directory", "/PATH/TO/REPOSITORY", "run", "server.py"]
}
}
}
服务器将启动并通过标准输入/输出监听命令。
用法
服务器提供 web_search 可用于在网络上搜索给定查询信息的工具。这是通过调用 web_search 使用所需的查询字符串执行函数。
活动:
这项任务有一些活动!
🏗️ 活动#1:
选择您喜欢使用的API,并为其构建MCP服务器!
答案:
Webzio集成
webzio.py
此文件包含 韦齐奥 类,用作webz.io新闻API的客户端。它
- 接受搜索
query,sentiment过滤器(正/负/中性),以及language - 使用存储在环境变量中的API令牌从webz.io API获取新闻文章
- 有一个
get_news()从API返回原始JSON数据的方法 - 具有格式化
__str__()以可读格式呈现结果的方法,显示:- 使用的查询参数
- 剩余结果和API请求总数
- 带有标题和URL的前5篇文章
- 可以作为命令行工具独立运行
与集成 server.py
这 server.py 文件是 MCP(模型上下文协议)服务器 它将Webzio功能作为AI助手可以使用的工具:
- 它进口
Webzio类从webzio.py - 它将其封装在MCP工具装饰器中(
@mcp.tool())作为get_news()函数 - 这通过MCP协议暴露了新闻搜索功能,使其可供AI客户端使用(如Cursor中的Claude)
- 调用时,它实例化一个Webzio对象并返回格式化的字符串输出
🏗️ 活动#2:
构建一个与MCP服务器交互的简单LangGraph应用程序。
您可以找到详细信息 这里!
答案:
LangGraph MCP客户端
langgraph_mcp_client.py
此文件演示了 LangGraph代理 它连接并使用MCP服务器工具。它展示了完整的客户端实现:
-
MCP连接:使用stdio传输建立与MCP服务器的连接
- 用途
StdioServerParameters配置Python服务器进程 - 创建一个
ClientSession与服务器通信
- 用途
-
工具加载:从MCP服务器动态加载所有可用工具
- 用途
load_mcp_tools()从langchain_mcp_adapters将MCP工具转换为与LangChain兼容的工具 - 使工具像
web_search,roll_dice,以及get_news可供代理人使用
- 用途
-
反应代理:使用创建智能代理
create_agent()配备GPT-4o-mini- 代理可以根据用户查询推断使用哪些工具
- 遵循ReAct(推理+行动)模式来解决任务
-
查询示例:使用三个示例查询演示代理的功能:
- 以积极的情绪获取人工智能新闻(使用
get_news) - 掷骰子(使用
roll_dice) - 网络搜索信息(使用
web_search)
- 以积极的情绪获取人工智能新闻(使用
-
响应显示:显示详细的执行信息,包括:
- 调用了哪些工具
- 传递给每个工具的参数
- 代理商的最终回复
