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

清夏晚风 Lv7

一、概述

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

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

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

二、SearXNG本地搭建

搭建过程参考链接:SearXNG搭建教程

这里就不重复了。

访问SearXNG页面,随便搜索一个问题,可以看到右侧的搜索引擎列表,比如:百度,搜狗,必应,360等。

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

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

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

返回的是一串json信息,里面就是搜索结果。

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

三、MCP应用开发

server.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()
result_list = []
for i in data["results"]:
result_list.append(i["content"])
content = "\n".join(result_list)
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
2
3
4
5
6
7
## 技能
### 技能1:使用MCP工具进行联网搜索,获取到的相关内容进行总结分析
## 限制
- 如果没有相关内容,再进行联网搜索
- 你的回答应严格针对分析任务。使用结构化语言,逐步思考
- 使用的语言应和用户提问的语言相同
- 搜索的关键词必须和用户提问的内容一致

添加到聊天助手,开启MCP后,即可搜索问题,例如:

  • AI芯片的价格怎么样
  • 查询天气、地图、新闻
  • 股票价格查询

这样就实现了搜索引擎的功能,想怎么搜就怎么搜,非常方便。

  • Title: SearXNG+MCP实现搜索引擎,想怎么搜就怎么搜
  • Author: 清夏晚风
  • Created at : 2026-07-26 22:02:00
  • Updated at : 2026-09-24 06:18:38
  • Link: https://blog.yuil.cn/2026/07/26/searxng-mcp/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
SearXNG+MCP实现搜索引擎,想怎么搜就怎么搜