iflow-mcp_vonequinox-websearchmcp 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- iflow_mcp_vonequinox_websearchmcp-0.1.0/PKG-INFO +198 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/README.md +182 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/SOTASearch.py +867 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/PKG-INFO +198 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/SOURCES.txt +9 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/dependency_links.txt +1 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/entry_points.txt +2 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/requires.txt +9 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/iflow_mcp_vonequinox_websearchmcp.egg-info/top_level.txt +1 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/pyproject.toml +20 -0
- iflow_mcp_vonequinox_websearchmcp-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp_vonequinox-websearchmcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP (Model Context Protocol) web search server (Brave search + fetch tools)
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: beautifulsoup4
|
|
8
|
+
Requires-Dist: curl_cffi
|
|
9
|
+
Requires-Dist: fastmcp
|
|
10
|
+
Requires-Dist: lxml
|
|
11
|
+
Requires-Dist: openai
|
|
12
|
+
Requires-Dist: playwright
|
|
13
|
+
Requires-Dist: playwright-stealth
|
|
14
|
+
Requires-Dist: python-dotenv
|
|
15
|
+
Requires-Dist: uvicorn
|
|
16
|
+
|
|
17
|
+
# WebSearch MCP Server
|
|
18
|
+
|
|
19
|
+
一个基于 MCP (Model Context Protocol) 的智能网页搜索服务器,支持 AI 增强搜索、Brave 搜索和网页抓取功能。
|
|
20
|
+
|
|
21
|
+
> **推荐**: 本项目推荐使用 `SOTASearch.py`,它结合了 AI 深度搜索和 Brave 搜索,**并行执行**两种搜索以提升速度。适合与 [CherryStudio](https://github.com/kangfenmao/cherry-studio) 配合使用。
|
|
22
|
+
|
|
23
|
+
## 功能
|
|
24
|
+
|
|
25
|
+
| 工具 | 说明 |
|
|
26
|
+
|------|------|
|
|
27
|
+
| `web_search` | AI 深度搜索 + Brave 搜索(并行执行),返回链接列表和 AI 总结 |
|
|
28
|
+
| `fetch_html` | 抓取网页 HTML 内容 |
|
|
29
|
+
| `fetch_text` | 抓取网页并提取纯文本 |
|
|
30
|
+
| `fetch_metadata` | 抓取网页元数据(标题、描述、链接) |
|
|
31
|
+
|
|
32
|
+
## 安装
|
|
33
|
+
|
|
34
|
+
### 1. 克隆项目
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git clone https://github.com/yourusername/WebSearchMCP.git
|
|
38
|
+
cd WebSearchMCP
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. 安装依赖
|
|
42
|
+
|
|
43
|
+
**使用 uv(推荐):**
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv sync
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**使用 pip:**
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install -r requirements.txt
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. 配置环境变量
|
|
56
|
+
|
|
57
|
+
复制 `.env.example` 为 `.env` 并填入配置:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cp .env.example .env
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
主要配置项:
|
|
64
|
+
|
|
65
|
+
```env
|
|
66
|
+
# 代理配置(可选)
|
|
67
|
+
PROXY=http://127.0.0.1:7890
|
|
68
|
+
CF_WORKER=https://your-worker.workers.dev
|
|
69
|
+
|
|
70
|
+
# OpenAI API 配置(SOTASearch 必需)
|
|
71
|
+
OPENAI_API_KEY=sk-xxx
|
|
72
|
+
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
73
|
+
OPENAI_MODEL=gpt-4o
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 快速开始
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 使用 uv(推荐)
|
|
80
|
+
uv run SOTASearch.py
|
|
81
|
+
|
|
82
|
+
# 或使用 python
|
|
83
|
+
python SOTASearch.py
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 配置 CherryStudio
|
|
87
|
+
|
|
88
|
+
在 CherryStudio 的 MCP 服务器设置中添加(必须使用虚拟环境中的 Python 绝对路径):
|
|
89
|
+
|
|
90
|
+
**Windows 示例:**
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"sota-search": {
|
|
96
|
+
"name": "Websearch",
|
|
97
|
+
"type": "stdio",
|
|
98
|
+
"command": "D:\\Code\\github\\WebSearchMCP\\.venv\\Scripts\\python.exe",
|
|
99
|
+
"args": ["D:/Code/github/WebSearchMCP/SOTASearch.py"]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**macOS/Linux 示例:**
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"sota-search": {
|
|
111
|
+
"name": "Websearch",
|
|
112
|
+
"type": "stdio",
|
|
113
|
+
"command": "/path/to/WebSearchMCP/.venv/bin/python",
|
|
114
|
+
"args": ["/path/to/WebSearchMCP/SOTASearch.py"]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> **注意**: 推荐使用项目虚拟环境中的 Python 解释器(`.venv/Scripts/python.exe` 或 `.venv/bin/python`),确保依赖正确加载。系统 Python 也可以使用,但需确保已安装所有依赖。
|
|
121
|
+
|
|
122
|
+
> **提示**: 代理和 API 配置建议写在 `.env` 文件中,无需在命令行参数中指定。
|
|
123
|
+
|
|
124
|
+
## 命令行参数
|
|
125
|
+
|
|
126
|
+
| 参数 | 说明 | 示例 |
|
|
127
|
+
|------|------|------|
|
|
128
|
+
| `--proxy` | 本地代理地址 | `--proxy http://127.0.0.1:7890` |
|
|
129
|
+
| `--cf-worker` | Cloudflare Worker 地址 | `--cf-worker https://xxx.workers.dev` |
|
|
130
|
+
| `--openai-api-key` | OpenAI API Key | `--openai-api-key sk-xxx` |
|
|
131
|
+
| `--openai-base-url` | OpenAI API Base URL | `--openai-base-url https://api.openai.com/v1` |
|
|
132
|
+
| `--openai-model` | 模型名称(默认 gpt-4o) | `--openai-model gpt-4o` |
|
|
133
|
+
|
|
134
|
+
## 工具说明
|
|
135
|
+
|
|
136
|
+
### web_search
|
|
137
|
+
|
|
138
|
+
AI 深度搜索 + Brave 搜索(并行执行)。
|
|
139
|
+
|
|
140
|
+
参数:
|
|
141
|
+
- `query`: 搜索关键词(必填)
|
|
142
|
+
- `max_results`: 返回的最大结果数,默认 10
|
|
143
|
+
|
|
144
|
+
返回格式:
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"success": true,
|
|
149
|
+
"query": "搜索关键词",
|
|
150
|
+
"links": [
|
|
151
|
+
{"title": "标题", "url": "链接", "description": "描述"}
|
|
152
|
+
],
|
|
153
|
+
"ai_summary": "AI 总结内容"
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### fetch_html
|
|
158
|
+
|
|
159
|
+
抓取网页的原始 HTML 内容。
|
|
160
|
+
|
|
161
|
+
参数:
|
|
162
|
+
- `url`: 目标网址(必填)
|
|
163
|
+
- `headers`: 可选的请求头
|
|
164
|
+
|
|
165
|
+
### fetch_text
|
|
166
|
+
|
|
167
|
+
抓取网页并提取纯文本内容(去除 HTML 标签)。
|
|
168
|
+
|
|
169
|
+
参数:
|
|
170
|
+
- `url`: 目标网址(必填)
|
|
171
|
+
- `headers`: 可选的请求头
|
|
172
|
+
|
|
173
|
+
### fetch_metadata
|
|
174
|
+
|
|
175
|
+
抓取网页的元数据信息。
|
|
176
|
+
|
|
177
|
+
参数:
|
|
178
|
+
- `url`: 目标网址(必填)
|
|
179
|
+
- `headers`: 可选的请求头
|
|
180
|
+
|
|
181
|
+
返回:标题、描述、页面链接列表
|
|
182
|
+
|
|
183
|
+
## 特性
|
|
184
|
+
|
|
185
|
+
- AI 深度搜索 + Brave 搜索**并行执行**
|
|
186
|
+
- 支持本地代理 (`--proxy`)
|
|
187
|
+
- 支持 Cloudflare Worker 代理 (`--cf-worker`)
|
|
188
|
+
- 自动内容截断,防止响应过大
|
|
189
|
+
- 支持 `.env` 文件配置
|
|
190
|
+
|
|
191
|
+
## 依赖
|
|
192
|
+
|
|
193
|
+
- Python 3.10+
|
|
194
|
+
- fastmcp
|
|
195
|
+
- beautifulsoup4
|
|
196
|
+
- curl_cffi
|
|
197
|
+
- lxml
|
|
198
|
+
- openai
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# WebSearch MCP Server
|
|
2
|
+
|
|
3
|
+
一个基于 MCP (Model Context Protocol) 的智能网页搜索服务器,支持 AI 增强搜索、Brave 搜索和网页抓取功能。
|
|
4
|
+
|
|
5
|
+
> **推荐**: 本项目推荐使用 `SOTASearch.py`,它结合了 AI 深度搜索和 Brave 搜索,**并行执行**两种搜索以提升速度。适合与 [CherryStudio](https://github.com/kangfenmao/cherry-studio) 配合使用。
|
|
6
|
+
|
|
7
|
+
## 功能
|
|
8
|
+
|
|
9
|
+
| 工具 | 说明 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `web_search` | AI 深度搜索 + Brave 搜索(并行执行),返回链接列表和 AI 总结 |
|
|
12
|
+
| `fetch_html` | 抓取网页 HTML 内容 |
|
|
13
|
+
| `fetch_text` | 抓取网页并提取纯文本 |
|
|
14
|
+
| `fetch_metadata` | 抓取网页元数据(标题、描述、链接) |
|
|
15
|
+
|
|
16
|
+
## 安装
|
|
17
|
+
|
|
18
|
+
### 1. 克隆项目
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git clone https://github.com/yourusername/WebSearchMCP.git
|
|
22
|
+
cd WebSearchMCP
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. 安装依赖
|
|
26
|
+
|
|
27
|
+
**使用 uv(推荐):**
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uv sync
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**使用 pip:**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install -r requirements.txt
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 3. 配置环境变量
|
|
40
|
+
|
|
41
|
+
复制 `.env.example` 为 `.env` 并填入配置:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
cp .env.example .env
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
主要配置项:
|
|
48
|
+
|
|
49
|
+
```env
|
|
50
|
+
# 代理配置(可选)
|
|
51
|
+
PROXY=http://127.0.0.1:7890
|
|
52
|
+
CF_WORKER=https://your-worker.workers.dev
|
|
53
|
+
|
|
54
|
+
# OpenAI API 配置(SOTASearch 必需)
|
|
55
|
+
OPENAI_API_KEY=sk-xxx
|
|
56
|
+
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
57
|
+
OPENAI_MODEL=gpt-4o
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 快速开始
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 使用 uv(推荐)
|
|
64
|
+
uv run SOTASearch.py
|
|
65
|
+
|
|
66
|
+
# 或使用 python
|
|
67
|
+
python SOTASearch.py
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 配置 CherryStudio
|
|
71
|
+
|
|
72
|
+
在 CherryStudio 的 MCP 服务器设置中添加(必须使用虚拟环境中的 Python 绝对路径):
|
|
73
|
+
|
|
74
|
+
**Windows 示例:**
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"sota-search": {
|
|
80
|
+
"name": "Websearch",
|
|
81
|
+
"type": "stdio",
|
|
82
|
+
"command": "D:\\Code\\github\\WebSearchMCP\\.venv\\Scripts\\python.exe",
|
|
83
|
+
"args": ["D:/Code/github/WebSearchMCP/SOTASearch.py"]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**macOS/Linux 示例:**
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"mcpServers": {
|
|
94
|
+
"sota-search": {
|
|
95
|
+
"name": "Websearch",
|
|
96
|
+
"type": "stdio",
|
|
97
|
+
"command": "/path/to/WebSearchMCP/.venv/bin/python",
|
|
98
|
+
"args": ["/path/to/WebSearchMCP/SOTASearch.py"]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
> **注意**: 推荐使用项目虚拟环境中的 Python 解释器(`.venv/Scripts/python.exe` 或 `.venv/bin/python`),确保依赖正确加载。系统 Python 也可以使用,但需确保已安装所有依赖。
|
|
105
|
+
|
|
106
|
+
> **提示**: 代理和 API 配置建议写在 `.env` 文件中,无需在命令行参数中指定。
|
|
107
|
+
|
|
108
|
+
## 命令行参数
|
|
109
|
+
|
|
110
|
+
| 参数 | 说明 | 示例 |
|
|
111
|
+
|------|------|------|
|
|
112
|
+
| `--proxy` | 本地代理地址 | `--proxy http://127.0.0.1:7890` |
|
|
113
|
+
| `--cf-worker` | Cloudflare Worker 地址 | `--cf-worker https://xxx.workers.dev` |
|
|
114
|
+
| `--openai-api-key` | OpenAI API Key | `--openai-api-key sk-xxx` |
|
|
115
|
+
| `--openai-base-url` | OpenAI API Base URL | `--openai-base-url https://api.openai.com/v1` |
|
|
116
|
+
| `--openai-model` | 模型名称(默认 gpt-4o) | `--openai-model gpt-4o` |
|
|
117
|
+
|
|
118
|
+
## 工具说明
|
|
119
|
+
|
|
120
|
+
### web_search
|
|
121
|
+
|
|
122
|
+
AI 深度搜索 + Brave 搜索(并行执行)。
|
|
123
|
+
|
|
124
|
+
参数:
|
|
125
|
+
- `query`: 搜索关键词(必填)
|
|
126
|
+
- `max_results`: 返回的最大结果数,默认 10
|
|
127
|
+
|
|
128
|
+
返回格式:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"success": true,
|
|
133
|
+
"query": "搜索关键词",
|
|
134
|
+
"links": [
|
|
135
|
+
{"title": "标题", "url": "链接", "description": "描述"}
|
|
136
|
+
],
|
|
137
|
+
"ai_summary": "AI 总结内容"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### fetch_html
|
|
142
|
+
|
|
143
|
+
抓取网页的原始 HTML 内容。
|
|
144
|
+
|
|
145
|
+
参数:
|
|
146
|
+
- `url`: 目标网址(必填)
|
|
147
|
+
- `headers`: 可选的请求头
|
|
148
|
+
|
|
149
|
+
### fetch_text
|
|
150
|
+
|
|
151
|
+
抓取网页并提取纯文本内容(去除 HTML 标签)。
|
|
152
|
+
|
|
153
|
+
参数:
|
|
154
|
+
- `url`: 目标网址(必填)
|
|
155
|
+
- `headers`: 可选的请求头
|
|
156
|
+
|
|
157
|
+
### fetch_metadata
|
|
158
|
+
|
|
159
|
+
抓取网页的元数据信息。
|
|
160
|
+
|
|
161
|
+
参数:
|
|
162
|
+
- `url`: 目标网址(必填)
|
|
163
|
+
- `headers`: 可选的请求头
|
|
164
|
+
|
|
165
|
+
返回:标题、描述、页面链接列表
|
|
166
|
+
|
|
167
|
+
## 特性
|
|
168
|
+
|
|
169
|
+
- AI 深度搜索 + Brave 搜索**并行执行**
|
|
170
|
+
- 支持本地代理 (`--proxy`)
|
|
171
|
+
- 支持 Cloudflare Worker 代理 (`--cf-worker`)
|
|
172
|
+
- 自动内容截断,防止响应过大
|
|
173
|
+
- 支持 `.env` 文件配置
|
|
174
|
+
|
|
175
|
+
## 依赖
|
|
176
|
+
|
|
177
|
+
- Python 3.10+
|
|
178
|
+
- fastmcp
|
|
179
|
+
- beautifulsoup4
|
|
180
|
+
- curl_cffi
|
|
181
|
+
- lxml
|
|
182
|
+
- openai
|