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

Unified Search MCP Server

MCP Server

一个生产级的MCP服务器,提供Google Scholar、Google Web Search和YouTube的集成搜索功能,支持学术论文、网页和视频的多源同时检索。

工具数

7

提示词数

0

GitHub Stars

3

资源数

0
搜索PythonClaudeClaude

安装说明

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

作者 / 组织

JDeun

提供方

JDeun

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python -m venv venv

详细介绍

统一搜索MCP服务器🔍

生产级 通过模型上下文协议(MCP)服务器,您可以综合搜索Google Scholar、Google Web Search和YouTube。

![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.11+](https://www.python.org/downloads/) ](https://smithery.ai/server/@JDeun/unified-search-mcp-server)

🚀 主要功能

核心搜索功能

  • 🎓 谷歌学术:学术论文搜索(作者,年度过滤)
  • 🌐 谷歌网络搜索:使用Google Custom Search API进行Web搜索
  • 📺 YouTube搜索:视频搜索(长度、上传日期、对齐选项)
  • 🔄 集成搜索:在所有源中同时搜索

企业功能

  • 🔐 保安:API密钥加密、输入值验证、XSS/SQL注入防护
  • 💾 分布式缓存:基于Redis的缓存和TTL管理
  • ⚡ 速率限制:基于Redis后端的可配置rate limit
  • 📊 监视:Prometheus度量、健康检查、结构化记录
  • 🔄 复原力:重试逻辑、电路中断、优雅的性能下降
  • 📝 审核日志记录:全面的审计跟踪以实现法规遵从性

📋 要求

  • Python 3.11+
  • Redis(可选,用于分布式功能)
  • API密钥:

- Google Custom Search API(用于Web搜索) - YouTube Data API v3(用于YouTube搜索)

🛠️ 设置

通过Smithery快速安装

通过Smithery平台直接部署时自动设置。

手动安装

  1. 存储库克隆:
git clone https://github.com/JDeun/unified-search-mcp-server.git
cd unified-search-mcp-server
  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
  1. 依赖性安装:
pip install -r requirements.txt
  1. 首选参数:
cp .env.example .env
# .env 파일을 편집하여 API 키와 설정 입력

设置⚙ENT

环境变量

# API 키
GOOGLE_API_KEY=your-google-api-key
GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your-cse-id
YOUTUBE_API_KEY=your-youtube-api-key

# 보안
MCP_ENCRYPTION_KEY=your-256-bit-key
MCP_RATE_LIMIT_SECRET=your-secret

# Redis (선택사항)
MCP_REDIS_URL=redis://localhost:6379/0

# 설정
MCP_ENV=production
MCP_LOG_LEVEL=INFO
MCP_CACHE_TTL=3600

如何发放API密钥

  1. 谷歌自定义搜索API:

- 谷歌云控制台 连接 - 启用“Custom Search API” - 生成验证信息(API密钥) - cse.google.com在中创建Custom Search Engine

  1. YouTube数据API v3:

- 使用相同的Google Cloud Console项目 - 启用“YouTube Data API v3” - 使用相同的API密钥或创建新的API密钥

🚀 使用方法

运行服务器

# 개발 모드 (stdio)
python unified_search_server.py

# 프로덕션 모드 (HTTP)
python unified_search_server.py --transport streamable-http

# 커스텀 포트
MCP_PORT=8080 python unified_search_server.py --transport streamable-http

部署Docker

# 이미지 빌드
docker build -t unified-search-mcp .

# 컨테이너 실행
docker run -p 8000:8000 \
  -e GOOGLE_API_KEY=your-key \
  -e GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your-cse \
  -e YOUTUBE_API_KEY=your-key \
  unified-search-mcp

Claude桌面集成

claude_desktop_config.json添加到:

{
  "mcpServers": {
    "unified-search": {
      "command": "python",
      "args": ["/path/to/unified_search_server.py"],
      "env": {
        "GOOGLE_API_KEY": "your-key",
        "GOOGLE_CUSTOM_SEARCH_ENGINE_ID": "your-cse",
        "YOUTUBE_API_KEY": "your-key"
      }
    }
  }
}

📖 可用工具

统一搜索

同时搜索所有源。

results = await unified_search(
    query="인공지능",
    sources=["scholar", "web", "youtube"],
    num_results=10
)

搜索_谷歌_学者

搜索学术论文。

results = await search_google_scholar(
    query="머신러닝",
    author="Yann LeCun",
    year_start=2020,
    year_end=2024,
    num_results=10
)

search_google_web

搜索Web。

results = await search_google_web(
    query="ChatGPT",
    language="ko",
    safe_search="medium",
    num_results=10
)

搜索youtube

搜索YouTube视频。

results = await search_youtube(
    query="파이썬 튜토리얼",
    video_duration="medium",
    upload_date="month",
    order="viewCount",
    num_results=20
)

获取作者信息

从Google Scholar获取作者信息。

info = await get_author_info("Geoffrey Hinton")

clear_cache

删除缓存的搜索结果。

await clear_cache(source="web")  # 또는 None으로 전체 삭제

get_api_usage_stats

监控API使用情况和限制。

stats = await get_api_usage_stats()

🏗️ 体系结构

模块化设计

src/
├── config/       # 설정 및 보안
├── models/       # 데이터 모델 및 검증
├── services/     # 검색 서비스 구현
├── cache/        # 캐싱 레이어
├── utils/        # 유틸리티 (로깅, rate limiting)
├── monitoring/   # 메트릭 및 헬스 체크
└── mcp_server.py # 메인 서버 구현

安全层

  • 验证输入值并杀菌
  • 保存API密钥加密
  • 每个客户端/端点的rate限制
  • 用于法规遵从性的审核日志记录
  • 跟踪CORS和请求ID

性能优化

  • 基于Redis的分布式缓存
  • HTTP客户端连接池
  • 运行并行搜索
  • 通过指数回退进行智能重试
  • 用于外部API的电路中断器

📊 监视

健康检查端点

리소스: health://status

度量端点

리소스: metrics://stats

主要度量

  • 搜索请求数量和延迟
  • 缓存命中率
  • API配额使用情况
  • 每个源的错误率
  • 违反Rate limit

🔒 保安

最佳实践

  • 使用所有API密钥Fernet进行加密
  • 验证输入以防止XSS/SQL注入
  • 防止滥用的rate limit
  • 无敏感数据的结构化记录
  • 定期安全更新

法规遵从性

  • 准备不保存PII的GDPR
  • 跟踪所有搜索的审核
  • 可设置的数据保留
  • 跟踪API使用情况

🧪 测试

运行测试:

pytest tests/ -v --cov=src

🤝 贡献

  1. 存储库叉
  2. 创建功能分支(git checkout -b feature/amazing)
  3. 提交更改(git commit -m 'Add feature')
  4. 推送到分支(git push origin feature/amazing)
  5. 打开Pull Request

📝 许可证

MIT许可证-详细信息 许可证 文件引用

🙏 感谢的话

重要事项

API限制

  • 谷歌网络搜索:100查询/天(免费方案)
  • YouTube API:10000单位/天(约100次搜索)
  • 谷歌学术:没有官方API,有rate限制

生产注意事项

  • 使用Redis进行分布式部署
  • 设置适当的API密钥轮换
  • 监控Rate limit和配额
  • 设置API错误的通知
  • 定期备份设置

📞 支持

问题和问题:

______________________________________________________________________

为MCP社区制作❤

目录标签

目录标签

搜索PythonClaude统一搜索本地部署学术搜索网页搜索视频搜索企业级服务

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiononeremote-capable

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

安装前确认

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

来源信息

继续浏览同类 MCP