SearXNG+MCP实现搜索引擎,想怎么搜就怎么搜

一、概述

MCP应用市场,有很多搜索引擎的应用。但是你们会发现,普遍都需要api-key。你必须花钱购买api-key才能实现搜索功能。

问题来了,我就想用免费搜索的,就像百度一样,可不可以?

答案是可以的,需要借助一下工具SearXNG,自己本地搭建SearXNG,然后使用python调用SearXNG api接口,最后用fastmcp封装一个MCP应用就可以了。

二、SearXNG本地搭建

搭建过程参考链接:https://www.cnblogs.com/xiao987334176/p/18806251

这里就不重复了

访问SearXNG页面

随便搜索一个问题

查看北京天气

注意右边可以看到,搜索引擎就是我设定的几个,比如:百度,搜狗,必应,360

其中百度是最快的,大部分人都在用百度。

这里有一个API地址,可以返回json,例如:

http://10.44.32.14:8081/search?q=上海到北京机票多少钱\&format=json

结果如下:

你会看到一串json信息,里面就是搜索结果。

然后使用fastmcp调用这个api接口,封装一个MCP应用就可以了。

三、MCP应用开发

server.py

复制代码
from fastmcp import FastMCP
import requests

mcp = FastMCP("searxng", port=9000)

@mcp.tool()
def search(query: str) -> str:
    """
    搜索关键字
    """
    # API URL
    url = "http://10.44.32.14:8081/search?q=%s&format=json"%query

    try:
        # 发送GET请求
        response = requests.get(url)

        # 检查请求是否成功
        if response.status_code == 200:
            # 将响应内容解析为JSON
            data = response.json()
            # print("JSON内容:")
            # print(data,type(data))
            result_list=[]
            for i in data["results"]:
                # print(i["content"])
                result_list.append(i["content"])
            content="\n".join(result_list)
            # print(content)
            return content
        else:
            print(f"请求失败,状态码: {response.status_code}")
            return False

    except requests.exceptions.RequestException as e:
        print(f"请求过程中发生错误: {e}")
        return False

if __name__ == "__main__":
    mcp.run(transport="sse")

注意修改API地址为实际地址。

四、Cherry Studio测试

添加MCP服务器

添加智能体

提示词如下:

复制代码
## 技能
### 技能1:使用MCP工具进行联网搜索,获取到的相关内容进行总结分析
## 限制
- 如果没有相关内容,再进行联网搜索
- 你的回答应严格针对分析任务。使用结构化语言,逐步思考
- 使用的语言应和用户提问的语言相同
- 搜索的关键词必须和用户提问的内容一致

效果如下:

添加到聊天助手,开启MCP

搜索问题

AI芯片的价格怎么样

效果如下:

这里就实现了,搜索引擎的功能。

你想查询天气,地图,新闻,都是可以的。

想怎么搜就怎么搜

相关推荐
Blockbuater_drug2 天前
Dify 1.18 本地部署实战:Windows + WSL2 + Docker,从零跑到本地可用
windows·docker·容器·dify·大模型应用平台
一木 之林3 天前
Dify学习笔记 03 · RAG检索增强生成:三代范式、评估与落地(第40-45、55-56集)
笔记·小程序·交互·dify
噜哥带你玩转 AI 大模型4 天前
从 “if-else“ 到 Agent:Dify 进阶实战,让 AI 自己判断、自己调工具
agent·工作流·dify·多轮对话·httpapi
一木 之林4 天前
Dify学习笔记 04 · 检索底座:Embedding、Rerank与向量数据库(第46-54集)
笔记·学习·embedding·dify
毒爪的小新4 天前
最新 Dify 1.14.0+ 内网离线插件打包、部署完整踩坑方案(解决 uv.lock 依赖校验失败)
运维·ai·uv·dify
死磕音视频7 天前
Dify 入门:用 Docker 自部署并搭建知识库问答助手
docker·知识库·dify·大模型应用
情 九8 天前
Dify 任务提交幂等实战:避免重复点击与网络重试创建重复任务
dify
一级新生10 天前
提示词工程:跟 AI 打交道的手艺
人工智能·大模型·dify·1024程序员节·提示词工程
情 九11 天前
Dify SSE 流式调用实战:执行进度、运行 ID 与断线核实
dify
一级新生11 天前
Dify 接入大模型:本地还是云端?实战与选型
人工智能·大模型·dify·ollama