一、概述

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

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

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

二、SearXNG本地搭建

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

这里就不重复了

访问SearXNG页面

随便搜索一个问题

这里有一个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")

四、Cherry Studio测试

添加MCP服务器

添加智能体

提示词如下:

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

效果如下:

添加到聊天助手,开启MCP

搜索问题

AI芯片的价格怎么样

效果如下:

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

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

想怎么搜就怎么搜

SearXNG+MCP实现搜索引擎,想怎么搜就怎么搜的更多相关文章

  1. 鱼搜_鱼搜官网_鱼搜搜索_http://www.7yusou.com

    收集了N多视频小站,然后花了3天时间弄了一个鱼搜搜索网站.欢迎大家访问哟. http://www.7yusou.com

  2. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  3. 算法与数据结构(四) 图的物理存储结构与深搜、广搜(Swift版)

    开门见山,本篇博客就介绍图相关的东西.图其实就是树结构的升级版.上篇博客我们聊了树的一种,在后边的博客中我们还会介绍其他类型的树,比如红黑树,B树等等,以及这些树结构的应用.本篇博客我们就讲图的存储结 ...

  4. 问题 C: 调酒壶里的酸奶 广搜或深搜+记忆化搜索

    问题 C: 调酒壶里的酸奶 时间限制: 1 Sec  内存限制: 128 MB提交: 284  解决: 97[提交] [状态] [命题人:外部导入] 题目描述 最近小w学了一手调酒的技巧,这么帅的操作 ...

  5. E. New Reform_贪心,深搜,广搜。

    E. New Reform time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  6. 广搜,深搜,单源最短路径,POJ(1130),ZOJ(1085)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=85 http://poj.org/problem?id=1130 这 ...

  7. Secret Milking Machine POJ - 2455 网络流(Dinic算法---广搜判断+深搜增广)+时间优化+二分

    题意: 第一行输入N M C ,表示从1到N有M条无向边,现在要从1走到N 走C次完全不同的路径,求最长边的最小值.下面M行是从a点到b点的距离. 建图: 题上说从两点之间可以有多条边,问的是从1~N ...

  8. 算法数据结构——数的深搜和广搜(dfs和bfs)

    leetcode104 二叉树的最大深度 https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 深度搜索分两种:递归(使用栈) ...

  9. 搜索过滤Tip : title,site(搜标题和搜网站)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~拿老东家作例子了.........

  10. BFS(广搜)DFS(深搜)算法解析

    图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系.对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示. 图可以分为有向图和无向图,一般用G=(V,E)来表示图. ...

随机推荐

  1. 浅谈ChatGPT在云计算资源调度的应用

    本文分享自天翼云开发者社区<浅谈ChatGPT在云计算资源调度的应用>,作者:张****兵 一.ChatGPT技术原理 ChatGPT 是基于 GPT(Generative Pre-tra ...

  2. VScode导入Vue项目

    VScode导入Vue项目 1.使用VScode打开文件夹 2.找到运行按钮 3.判断有没有默认的配置文件存在 4.若文件夹存在就检查配置文件是否存在 (1)打开launch.json,把如下代码粘贴 ...

  3. RocketMQ实战—6.生产优化及运维方案

    大纲 1.RocketMQ集群如何进行权限机制的控制 2.如何对RocketMQ集群进行消息堆积的追踪 3.如何处理RocketMQ的百万消息积压问题 4.针对RocketMQ集群崩溃的金融级高可用方 ...

  4. Linux安装Kafka(依赖zookeeper)

    一.版本 kafka:kafka_2.12-2.4.0 zk:zookeeper-3.4.14 二.单机版安装 修改 server.properties ,支持外网访问 [1]创建日志文件夹: mkd ...

  5. Codeforces 1536B Prinzessin der Verurteilung 题解 [ 紫 ] [ 后缀自动机 ] [ 动态规划 ] [ 拓扑排序 ]

    Prinzessin der Verurteilung:最短未出现字符串的板子. 思路 考虑在 SAM 上 dp,定义 \(dp_i\) 表示从 \(i\) 节点走到 NULL 节点所花费的最少步数. ...

  6. CAP与BASE:分布式系统设计的灵魂与妥协

    CAP 理论 CAP理论起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作 布鲁尔定理(Brewer's t ...

  7. 交叉编译SQLite3

    交叉编译SQLite3 SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的SQL 数据库引擎. 它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置. ...

  8. 【Abaqus】材料行为的非均匀空间分布

    设想一种情况:在有限元分析中,一个区域或者整个网格中,每个单元的材料行为都是单独的.这时在ABAQUS中应该如何设置? 两种办法: 给每个单元创建一个集合,然后一一赋予SECTION. 使用*Dist ...

  9. ctfhub-rce-部分做题记录

    命令注入 检查网页显示内容,可以直接看到源代码.大致意思是:检查用户输入的 GET 请求,判断用户是否输入了 ip 信息.如果输入了 ip 信息,则使用用户输入的这个 ip 数据执行一个 shell ...

  10. 如何基于大语言模型和MaxKB实现PPT自动生成方案

    一.实现方案 利用讯飞大模型智能 PPT 生成接口实现,具体参见:讯飞开放平台智能PPT生成 https://www.xfyun.cn/services/aippt#anchor4503211 二.新 ...