Token导航 LogoToken导航TokenDH.com
Open Search logo
搜索检索未说明官方级别未说明来源级核验

Open Search

MCP Server

一个完整的开源搜索基础设施,可替代商业API,支持Kubernetes/Docker部署和MCP服务器集成,提供元搜索引擎、高级网络爬取和AI代理访问功能。

工具数

4

提示词数

0

GitHub Stars

2

资源数

0
PythonClaude搜索Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Bionic-AI-Solutions

提供方

Bionic-AI-Solutions

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

集成MCP的OSS搜索基础架构

完整的开源搜索基础设施,通过在Kubernetes/Docker和MCP服务器集成上部署来取代商业API(Tavily、Brave search、Serper)。

📋 目录

🎯 概述

该项目提供了一个生产就绪的自托管搜索基础设施,包括:

  • SearXNG:元搜索引擎聚合来自70多个搜索引擎的结果
  • Crawl4AI:使用AI驱动的内容提取进行高级网络爬行
  • 瑞迪斯:高性能缓存层
  • MCP服务器:FastMCP(Python)服务器将搜索和抓取工具暴露给AI代理
  • PostgreSQL:可选分析数据库

主要优势

隐私:无跟踪,完全数据控制\ ✅ 成本效益高:无限制搜索与每次查询API定价\ ✅ 可定制的:完全控制搜索引擎和提取策略\ ✅ 可扩展的:Kubernetes支持自动扩展\ ✅ 人工智能原生:MCP集成,实现无缝AI代理访问

🏗️ 建筑

Client Apps → FastMCP Server (Python) → SearXNG / Crawl4AI → External Search Engines
                                      → Redis Cache (optional)

简单、干净、生产就绪!

📦 先决条件

必需

  • Docker 24.0+
  • Docker编写2.20+或Kubernetes 1.27+
  • 最低4GB RAM(建议8GB)
  • 20GB磁盘空间

可选的

  • kubectl(用于Kubernetes部署)
  • Node.js 20+(用于本地MCP开发)
  • Python 3.11+(用于Crawl4AI开发)

🚀 快速开始

选项1:自动设置(推荐)

# Clone or download the project files
cd oss-search-infrastructure

# Make setup script executable
chmod +x setup.sh

# Run setup
./setup.sh

脚本将:

  1. 检查先决条件
  2. 创建目录结构
  3. 生成安全机密
  4. 构建Docker镜像
  5. 启动所有服务
  6. 显示访问信息

选项2:手动设置

# 1. Create necessary files (if not already present)
mkdir -p searxng crawl4ai-service mcp-server nginx postgres

# 2. Set environment variables
cp .env.example .env
# Edit .env with your values

# 3. Build and start services
docker-compose build
docker-compose up -d

# 4. Check service health
docker-compose ps
docker-compose logs -f

验证

服务运行后,测试每个组件:

# Test SearXNG
curl "http://localhost:8080/search?q=test&format=json"

# Test Crawl4AI
curl -X POST http://localhost:8000/crawl \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

# Test Redis
docker exec -it redis-cache redis-cli ping

# Test MCP Server
curl http://localhost:8000/health

🔧 组件详情

SearXNG(港口8080)

元搜索引擎,查询多个搜索引擎并聚合结果。

特征:

  • 70+支持的搜索引擎
  • 用于编程访问的JSON API
  • 注重隐私(无跟踪)
  • 可定制的排名

配置: searxng/settings.yml

Crawl4AI(端口8000)

具有人工智能内容提取功能的高级网络爬虫。

特征:

  • 通过Playwright进行JavaScript渲染
  • 多种提取策略(自动、LLM、余弦)
  • 屏幕截图
  • 媒体提取
  • 缓存支持

API终点:

  • POST /crawl -单URL爬网
  • POST /crawl/batch -批量爬行
  • GET /result/{job_id} -检索结果
  • GET /health -健康检查

MCP服务器(端口8000)

FastMCP(Python)服务器通过模型上下文协议将搜索基础设施暴露给AI代理。

工具:

  • web_search -使用SearXNG搜索网络
  • web_crawl -使用Crawl4AI对URL进行深度抓取
  • extract_content -从页面中提取特定内容
  • analyze_search_results -分析搜索结果并对其进行排名

: MCP文件 了解详情。

Redis(端口6379)

搜索结果和爬网内容的内存缓存。

配置:

  • 搜索缓存TTL:1小时(可配置)
  • 爬网缓存TTL:24小时(可配置)
  • 最大内存:512MB(可配置)
  • 驱逐策略:所有密钥lru

🤖 MCP服务器

快速开始

MCP服务器已部署并正在运行。看 MCP文件 用于:

  • 快速入门指南
  • 客户端配置
  • 网关设置
  • 工具文档

配置MCP客户端

对于Cursor/Claude Desktop或其他MCP客户端:

{
  "mcpServers": {
    "oss-search": {
      "transport": "sse",
      "url": "http://192.168.0.220:8000/sse"
    }
  }
}

对于Kubernetes(内部):

{
  "mcpServers": {
    "oss-search": {
      "transport": "sse",
      "url": "http://mcp-server-fastmcp.search-infrastructure.svc.cluster.local:8000/sse"
    }
  }
}

使用工具

配置后,AI代理可以使用搜索工具:

示例:网络搜索

User: "Search for recent AI developments"
Agent: [Calls web_search tool]
       {
         "query": "recent AI developments 2024",
         "engines": ["google", "duckduckgo"],
         "language": "en"
       }

示例:Web爬网

User: "Get the full content from this article: https://example.com/article"
Agent: [Calls web_crawl tool]
       {
         "url": "https://example.com/article",
         "extraction_strategy": "llm",
         "screenshot": false
       }

🚢 部署选项

Docker Compose(开发/小规模)

已配置!只需运行:

docker-compose up -d

赞成的意见:

  • 简单设置
  • 资源开销低
  • 易于调试

欺骗:

  • 单主机限制
  • 无内置自动缩放功能
  • 手动高可用性

Kubernetes(生产)

全面的Kubernetes清单在 k8s/ 目录。

部署到Kubernetes:

# Create namespace
kubectl apply -f k8s/namespace.yaml

# Create secrets
kubectl create secret generic search-secrets \
  --from-literal=searxng-secret=$(openssl rand -hex 32) \
  --from-literal=db-password=$(openssl rand -hex 16) \
  -n search-infrastructure

# Deploy services
kubectl apply -f k8s/deployments/
kubectl apply -f k8s/services/
kubectl apply -f k8s/ingress/

# Check status
kubectl get pods -n search-infrastructure
kubectl get svc -n search-infrastructure

赞成的意见:

  • 自动缩放
  • 自我修复
  • 负载平衡
  • 多主机部署

监控:

# View logs
kubectl logs -f -n search-infrastructure deployment/mcp-server-fastmcp

# Scale deployment
kubectl scale deployment mcp-server-fastmcp --replicas=5 -n search-infrastructure

# View resource usage
kubectl top pods -n search-infrastructure

⚙️ 配置

环境变量

关键环境变量 .env:

# SearXNG
SEARXNG_SECRET=your-secret-key-here

# Database
DB_PASSWORD=your-db-password

# Cache TTLs (seconds)
CACHE_TTL_SEARCH=3600      # 1 hour
CACHE_TTL_CRAWL=86400      # 24 hours

# MCP Server
NODE_ENV=production
LOG_LEVEL=info

SearXNG发动机

在中启用/禁用搜索引擎 searxng/settings.yml:

engines:
  - name: google
    engine: google
    shortcut: go
    # disabled: false
    
  - name: brave
    engine: brave
    shortcut: br
    # disabled: false

速率限制

在中配置 searxng/limiter.toml:

[botdetection.ip_limit.link_token]
suspicious_ip_window = 60
suspicious_ip_max = 3

📊 API使用

SearXNG API

基本搜索:

curl "http://localhost:8080/search?q=kubernetes&format=json"

高级搜索:

curl "http://localhost:8080/search" \
  -G \
  --data-urlencode "q=machine learning" \
  --data-urlencode "engines=google,duckduckgo" \
  --data-urlencode "categories=general" \
  --data-urlencode "language=en" \
  --data-urlencode "format=json"

Crawl4AI API

简单爬行:

curl -X POST http://localhost:8000/crawl \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "extraction_strategy": "auto"
  }'

高级爬行:

curl -X POST http://localhost:8000/crawl \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "extraction_strategy": "llm",
    "chunking_strategy": "markdown",
    "screenshot": true,
    "wait_for": "css:.main-content",
    "timeout": 30
  }'

批量爬网:

curl -X POST http://localhost:8000/crawl/batch \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://example1.com",
      "https://example2.com"
    ],
    "extraction_strategy": "auto"
  }'

📈 监控

日志

查看所有日志:

docker-compose logs -f

查看具体服务:

docker-compose logs -f mcp-server
docker-compose logs -f searxng
docker-compose logs -f crawl4ai

指标

连接到Redis Commander(调试模式):

docker-compose --profile debug up -d redis-commander
# Access at http://localhost:8081

PostgreSQL分析

连接到PostgreSQL并运行分析查询:

docker exec -it search-analytics psql -U searchuser -d search_analytics
-- View search statistics
SELECT * FROM search_stats LIMIT 10;

-- View popular queries
SELECT * FROM popular_queries LIMIT 20;

-- View crawl job status
SELECT status, COUNT(*) 
FROM crawl_jobs 
GROUP BY status;

🔍 故障排除

服务无法启动

检查日志:

docker-compose logs [service-name]

常见问题:

  • 端口冲突:更改中的端口 docker-compose.yml
  • 内存限制:增加Docker内存分配
  • 缺少文件:确保所有配置文件都存在

SearXNG未返回任何结果

可能的原因:

  1. 搜索引擎正在阻止请求
  2. 超出费率限制
  3. 网络连接问题

解决:

# Check SearXNG logs
docker-compose logs searxng

# Test search engines individually
curl "http://localhost:8080/search?q=test&engines=duckduckgo&format=json"

# Restart SearXNG
docker-compose restart searxng

Crawl4AI超时

增加超时时间:

# In crawl request
{
  "url": "https://example.com",
  "timeout": 60  # Increase from default 30
}

检查浏览器安装:

docker exec -it crawl4ai-service playwright install chromium

Redis连接错误

检查Redis状态:

docker exec -it redis-cache redis-cli ping
# Should return: PONG

清除缓存:

docker exec -it redis-cache redis-cli FLUSHALL

内存使用率高

检查容器统计信息:

docker stats

解决:

  • 减少缓存TTL
  • 限制并发爬网
  • 水平而非垂直缩放

📚 额外资源

文档文件

  • oss-search-architecture.md -完整的架构文档
  • docker-compose.yml -Docker编写配置
  • k8s/ -Kubernetes清单
  • mcp-server-fastmcp/ -FastMCP服务器(Python)- 活跃的
  • docs/mcp/ -MCP服务器文档
  • crawl4ai-service/ -Crawl4AI服务包装器

外部链接

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

这个项目是开源的,可以在MIT许可证下使用。

🆘 支持

对于问题和疑问:

  1. 检查故障排除部分
  2. 审核日志: docker-compose logs
  3. 在GitHub上打开一个问题

🎉 致谢

  • SearXNG团队为优秀的元搜索引擎
  • Crawl4AI用于强大的网络爬行库
  • MCP规范的拟人化
  • 开源社区

______________________________________________________________________

内置于❤️ 面向开源社区

目录标签

目录标签

PythonClaude搜索开源搜索本地部署元搜索引擎网络爬取AI代理Kubernetes部署

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP