多LLM网络搜索桥接服务

MCP Server是一个轻量级、可扩展的后端服务,利用Google Gemini和Anthropic Claude通过DuckDuckGo执行智能网络辅助查询,适用于研究辅助、学术事实核查和内容探索等场景。

  • by KanishkJagya1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kanishkjagya1/mcp-server

使用说明

🌐 MCP服务器——多LLM网络搜索桥

一个轻量级、可扩展的后端,利用 谷歌双子座 和 人物克劳德 通过DuckDuckGo执行智能网络辅助查询。MCP服务器从自然语言输入中提取有意义的搜索主题,并从互联网上获取相关信息。

✨ 特性

  • 多LLM支持:与谷歌Gemini和Anthropic Claude兼容
  • 智能查询处理:从自然语言中提取搜索主题
  • Web搜索集成:使用DuckDuckGo获得可靠的网络结果
  • 多个接口:Flask API、CLI工具和Streamlit前端
  • 易于配置:基于环境的设置,提供程序切换

🏗️ 项目结构

MCP-server/
├── mcp_server.py          # Flask API server
├── mcp_integration.py     # Core logic (LLM handling + search)
├── ask_llm.py            # Command-line interface
├── streamlit_app.py      # Interactive web frontend
├── requirements.txt      # Python dependencies
├── .env                  # Environment variables (not committed)
├── .gitignore           # Git ignore rules
└── README.md            # This file

🚀 快速开始

先决条件

  • Python 3.8+
  • Google Gemini API密钥或Anthropic Claude API密钥
  • 用于网络搜索的互联网连接

安装

  1. 克隆存储库

    git clone https://github.com/KanishkJagya1/MCP-server.git
    cd MCP-server
    
  2. 创建虚拟环境

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项

    pip install -r requirements.txt
    
  4. 配置环境变量

    创建一个 .env 根目录中的文件:

    GEMINI_API_KEY=your_google_gemini_api_key_here
    CLAUDE_API_KEY=your_anthropic_api_key_here
    LLM_PROVIDER=gemini  # Options: "gemini" or "claude"
    PORT=5001
    

🖥️ 用法

Flask API服务器

启动后端服务器:

python mcp_server.py

可用端点:

  • GET /health -健康检查
  • GET / -服务器信息
  • POST /tool_call -Web搜索端点

API调用示例:

curl -X POST http://localhost:5001/tool_call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "fetch_web_content",
    "parameters": {
      "query": "latest Mars discoveries"
    }
  }'

命令行接口

直接从终端提问:

python ask_llm.py "What are the latest developments in AI?"

流线型前端

启动交互式web界面:

streamlit run streamlit_app.py

然后打开http://localhost:8501在您的浏览器中。

示例查询:

  • “美国国家航空航天局最近在火星上发现了什么?”
  • “告诉我最新的人工智能突破”
  • “可再生能源正在发生什么?”

🤖 支持的LLM提供商

提供者 型号 备注
谷歌双子座 双子座专家 快速高效
拟人克劳德 第三首十四行诗 强烈的结构化反应

通过更新提供程序在提供程序之间切换 LLM_PROVIDER 在你的 .env 文件。

📋 API响应格式

{
  "results": [
    {
      "title": "Example Search Result",
      "url": "https://example.com",
      "description": "Description of the search result..."
    }
  ]
}

🚀 部署

地方发展

服务器运行在 localhost:5001 默认情况下。在您的 .env 文件。

生产部署

在以下平台上部署:

  • 流光云 (前端)
  • 渲染 / 铁路 / 回复 (用于后端)
  • 码头工人 (集装箱化部署)

对于外部访问,请更新Streamlit应用程序以指向您的公共Flask URL。

🎯 用例

  • 助研:自动信息收集
  • 学术事实核查:核实索赔和来源
  • 内容探索:发现相关主题和趋势
  • 新闻分析:及时了解当前事件
  • 智能搜索机器人:构建智能搜索应用程序

🔧 配置

环境变量

变量 描述 默认值
GEMINI_API_KEY Google Gemini API密钥 必需
CLAUDE_API_KEY Anthropic Claude API密钥 必需
LLM_PROVIDER 要使用的LLM提供者 gemini
PORT Flask服务器端口 5001

Git配置

该项目包括 .gitignore 文件以排除敏感文件:

__pycache__/
*.pyc
.env
.venv/
*.log
.vscode/
.idea/

如果在添加之前意外提交了文件 .gitignore:

git rm -r --cached .
git add .
git commit -m "Apply .gitignore changes"

🛠️ 发展

测试API

手动测试端点或创建自动测试:

# Health check
curl http://localhost:5001/health

# Search query
curl -X POST http://localhost:5001/tool_call \
  -H "Content-Type: application/json" \
  -d '{"name": "fetch_web_content", "parameters": {"query": "test query"}}'

添加新功能

模块化结构使其易于:

  • 在中添加新的LLM提供者 mcp_integration.py
  • 在中扩展API终结点 mcp_server.py
  • 增强前端 streamlit_app.py

📝 路线图

  • []使用LLM添加结果摘要
  • []实现日志记录和错误跟踪
  • []为重复查询添加缓存
  • []UI增强功能(暗模式、结果卡)
  • []支持其他搜索引擎
  • []批量查询处理
  • []结果导出功能

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

👨‍💻 作者

卡尼什克·贾加亚
塔帕尔工程技术学院
📧 GitHub简介

🙏 致谢

  • Google Gemini和Anthropic Claude提供LLM功能
  • DuckDuckGo用于搜索功能
  • Streamlit用于web界面框架
  • API后端的烧瓶

需要帮助? 打开一个问题或通过GitHub联系!