内容
搜索MCP服务器
> 为AI代理提供统一的MCP搜索工具 — 在几个简单的工具后面抽象提供者、缓存、重新排序和速率限制。
> ⚠️ **实验性。** 该项目正在积极开发中。API和默认值可能会更改。
## 快速入门
git clone https:///ilgizar-valiullcp_search.git
cd mcp_search
npm install
cp .env.example .env
npm run build
```
有关OpenCode注册、系统客户端的信息,请参阅指南](docs/deployment-opencode.md)。
如果您的代理人在其他系统提示中具有搜索指令(例如,`free-mode-prompt.md`,`CLAUDE.md`,`AGENTS.md`),请删除它们并仅依赖[`search-protocol.md`](search-protocol.md)。避免冲突的指令。
> ⚠️ **`search-protocol.md`处于测试阶段。** 适应您的代理行为 — 它可能会更改。
## 提供者设置
编辑`.env` — 为可选提供者设置API密钥。StartpageG、Brave Web和Bing无需配置即可工作。
| | 密钥要求 | 层级 | 速率限制 |
| --- | --- | --- |
page | 否 | 1 | — |
| DuckDuckGo | 否 | 1 | 10 请求/分钟 |
| Brave Web | 否 | 1 | — |
| Bing | 否 | 1 | — |
| Brave API | `BRAVE_API_KEY` | 2 | 2000/月 |
| Tavily | `TAVILY_API_KEY` | 2 | 1000/月 |
| Exa | `EXA_API_KEY` | 3 | 试用 |
|rawl | `FIRECRAWL_API_KEY` | 3 | 试用 |
## 工具
| 工具 | 用途 |
| --- | --- |
| `search` | 具有缓存、重新排序和8个提供者之间的回退的通用网络搜索 |
| `github_search` | 搜索GitHub仓库、代码、问题和用户 |
| `gitlab_search` | 搜索GitLab项目、问题、合并请求和代码块 |
| `status` | 服务器诊断、提供者健康状况、预算状态 |
## 查询格式
| 工具 | 示例 |
| --- | --- |
| `search` | `typescript 教程`、`如何安装docker`、`repo:vercel/next.js` |
| `github_search` | `repo:org/name`、`user:vercel`、`language:typescript` |
| `gitlab_search:org/name`、`通过`type`参数进行范围过滤 |
## 工具参考
### `search`
```typescript
search({
query: string,
})
```
从健康的提供者(并行)返回合并的结果,进行重复数据删除相关性重新排序。为AI代理优化 — 一个参数,服务器检测。
### `github```typescript
github_search({
query: string,
type?: "repositories" | "code" | "issues" | "users",
language?: string,
stars?: string, // 例如 ">1000", "500..5000"
page?: number
})
```
速率限制:无令牌60请求/小时,有`GITHUB_TOKEN`时为5000请求/小时。
### `gitlab_search`
```typescript_search({
query: string,
scope?: " | "issues" | "" | "blobs",
page?: number
})
```
需要具有`read_api`范围的`GITLAB_TOKEN`。
### `status`
```typescript
status()
```
返回提供者健康状况、缓存统计信息、预算状态和正常运行时间。
## 架构
[管道](docs/diagrams/search-pipeline-flow.md)
核心管道:`预算检查 → 规范化 → 分类(意图 + 新鲜度 缓存 → 路由并行N,1秒提供者)→ 重新排序 → 缓存 → 响应`
### 提供者
| 提供 类型 | 密钥 |级 | 速率限制 | 延迟 | 暂停 |
| --- | --- | --- | --- | --- |
| | Google镜像(爬取) | 无 | 1 | — | 1秒 | 增量回退 |
| DDG | HTML爬取 | 无 | 1 | 10 请求/分钟 | 1秒 | 验证码 → 24小时 |
| Brave Web | HTML爬取 | 无1 | — | | 1分钟→5分钟→15分钟→1小时→4小时→24小时 |
| HTML爬取 | 无 | 1 | — | 1秒 | — |
| Brave API | 官方API | 是 | 2 | 2000/月 | — | — |
| Tavily | 官方API | 是 | 2 | 1000/月 | — | — |
| Exa | 官方API | 是 | 3 | 试用1000 | — | — |
| Firecrawl | 官方API | 是 | 3 | 试用500 | — | — |
### 速率限制
-秒延迟** 每个被爬取的提供者之间的请求(lastRequestTime`增量回退429/403:暂停增长1分钟 → 5分钟 → 15分钟 → 1小时 → 4小时 → 24小时
- 成功时计数器- 速率限制窗口(分钟/天/月)持久JSON
完整文档:
- [架构](docs/architecture.md)
- [提供者 & 回退](docs/providers.md)
- [缓存](docs/caching.md)
- [重新排序](docs/reranking.md)
- [预算系统](docs/budget.md)
- [配置](docs/configuration.md)
- [路线图](docs/roadmap.md)
如果您想了解更多关于所做决策的信息,请查看[架构决策](docs/architecture-decisions.md)文档。
## 捐赠 / 支持项目
* **EVM 地址** (USDT,USDC,ETH,BNB):`0x3acf78e721aa065bd1509735a3ace630fcd0f452`
_支持网络:BNB Smart Chain(BEP20),Polygon,Arbitrum One,Ethereum(ERC20)_
<details>
<summary>显示EVM二维码</summary>
<img src=".github/images/evm.jpg"300" alt="EVM Deposit QR">
</details>
* **USDT(TRC20)**:`TMG1BZJswd8UacHANKVi9Veq5FqSbaMjAQ`
_支持网络:Tron(TRC20)_
<details>
<summary>显示TRC20二维码</summary>
<img src=".github/images/trc20.jpg" width="300" alt="TRC20 Deposit QR">
</details>
* **TON / USDT(TON)**:`UQDjf84AZSwuCPC3UWFv28p-V44zI-1lfhqCMfaex2Q-jDsY`
_支持网络:The Open Network(TON)_
>
<summary>显示TON二维码</summary>
<img src=".github/images/ton.jpg" width="300" alt="TON Deposit QR">
</details>
## 许可证
MIT