mcpField
S
SmolAgents + MCP servers

SmolAgents + MCP servers

本地服务
github.com/FaustoS88搜索与检索479 周前更新

关于 SmolAgents + MCP servers

这是一个基于 SmolAgents 的 Python AI 助手,可搜索网页并抓取网站。其类结构便于添加 MCP 服务及其工具。

主要功能

  1. 01集成 Brave Search 和 Crawl4ai
  2. 02交互式搜索会话
  3. 03基于类的 Agent 结构
  4. 04可扩展的 MCP 服务列表

适用场景

  1. 01通过 Brave Search 搜索网页
  2. 02使用 Crawl4ai 抓取网站

MCP 相关

连接 Brave Search 和 Crawl4ai MCP 服务,并将其工具提供给 SmolAgents 助手。服务列表可扩展以添加其他 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SmolAgents + MCP 服务

此项目演示了如何使用 SmolAgents 库构建 AI 助手,并通过集成 Brave Search 和 Crawl4ai Model Context Protocol(MCP)服务,使其能够执行网页搜索并抓取/爬取网站。

要求

运行此项目之前,请确保已安装以下依赖项:

  • smolagents
  • python-dotenv
  • mcp
  • @modelcontextprotocol/server-brave-search(通过 npm/npx 全局安装)
  • litellm

你可以使用 pip 安装 Python 软件包:

pip install -r requirements.txt

请确保已安装 Node.js、npm/npx 和 uv,以便运行 MCP 服务。

环境变量

在项目根目录中创建一个 .env 文件,并添加以下变量:

BRAVE_API_KEY=your_brave_api_key
OPENAI_API_KEY=your_openai_api_key

将 your_brave_api_key 和 your_openai_api_key 替换为你的实际 API 密钥。

用法

  1. 克隆仓库或下载脚本(smolagent_with_mcp.py)。

  2. 在终端中切换到项目目录。

  3. 运行脚本:

    python smolagent_with_mcp.py
    
  4. 输入搜索查询,与助手交互。输入 exit 或 quit 以结束会话。

代码将 Agent 的初始化和主交互循环封装在一个 Python 类(SmolAgentWithMCP)中。这种面向对象的方法具有模块化优势,也让扩展 Agent 的能力更加容易,例如集成其他 MCP 服务及其工具。

备注

  • 请确保已安装 npx,且它位于系统的 PATH 中,因为运行 Brave Search MCP 服务需要使用它。
  • SmolAgents 中的 ToolCallingAgent 会以结构化格式(如 JSON)输出工具调用,然后由环境执行(在此处,即脚本主循环通过 MCPClient 执行)。

添加更多 MCP 服务

smolagent_with_mcp.py 文件采用模块化结构,可以轻松添加更多 MCP 服务及其工具。要添加新的 MCP 服务:

  1. 为新服务定义 StdioServerParameters。这包括指定运行服务的命令、参数以及任何必要的环境变量(类似于 brave_server_params 和 crawl4ai_server_params 的定义方式)。

  2. 将新定义的服务参数对象添加到 main 函数中的 server_list。BraveSearchAgentApp 类会自动初始化新服务,并将其工具添加到 Agent 的能力中。

示例:

# Define parameters for a new server (replace with actual command and args)
new_server_params = StdioServerParameters(
    command="your_server_command",
    args=["arg1", "arg2"],
    env={"YOUR_API_KEY": os.getenv("YOUR_API_KEY")},
)

def main():
    # Define the list of MCP server parameters
    server_list = [
        brave_server_params,
        crawl4ai_server_params,
        new_server_params # Add the new server parameters here
        # Add other server parameters here as needed
    ]
    app = BraveSearchAgentApp(server_list)
    app.run()

if __name__ == "__main__":
    main()

项目中使用的 MCP:

https://playbooks.com/mcp/ritvij14-crawl4ai https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search

许可证

此项目采用 MIT License 授权。更多详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。