使用说明
🌐 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密钥
- 用于网络搜索的互联网连接
安装
-
克隆存储库
git clone https://github.com/KanishkJagya1/MCP-server.git cd MCP-server -
创建虚拟环境
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项
pip install -r requirements.txt -
配置环境变量
创建一个
.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增强功能(暗模式、结果卡)
- []支持其他搜索引擎
- []批量查询处理
- []结果导出功能
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
👨💻 作者
卡尼什克·贾加亚
塔帕尔工程技术学院
📧 GitHub简介
🙏 致谢
- Google Gemini和Anthropic Claude提供LLM功能
- DuckDuckGo用于搜索功能
- Streamlit用于web界面框架
- API后端的烧瓶
需要帮助? 打开一个问题或通过GitHub联系!