该项目使用Google的Agent Development Kit (ADK) 实现了一个Model Context Protocol (MCP) 服务器,用于构建智能代理和工具。该系统包含多个专门的代理,通过协调器代理协作处理不同类型的请求。
├── agents/ # 包含代理实现
│ ├── coordinator_agent.py # 基于LLM的智能请求路由器
│ ├── data_analysis_agent.py # 分析数据文件并生成可视化结果的代理
│ ├── search_agent.py # 进行网络搜索和信息检索的代理
│ └── code_generator_agent.py # 根据描述生成代码的代理
├── tools/ # 包含工具实现
│ ├── code_generator_tool.py # 在多种编程语言中生成代码
│ ├── data_analysis_tool.py # 分析数据并创建可视化结果
│ ├── data_reader_tool.py # 从各种文件格式读取数据
│ ├── report_generator_tool.py # 生成格式化的报告
│ └── web_search_tool.py # 执行网络搜索
├── input_data/ # 输入数据文件目录(CSV, Excel)
├── analysis_output/plots/ # 生成的数据可视化结果
├── reports/ # 生成的分析报告
├── generated_code/ # 生成的代码输出
├── server.py # 使用FastMCP实现的MCP服务器
├── requests_log.txt # 请求和响应的日志
└── README.md # 本文件
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -r requirements.txt
touch .env
添加密钥
OPENROUTER_API_KEY="ADD_Your_Key"
GROQ_API_KEY="ADD_Your_Key"
python server.py
这将在http://0.0.0.0:8080启动MCP服务器
协调器代理使用基于LLM的路由,将请求定向到最合适的专用代理。它分析请求的内容,并确定哪个代理可以最好地处理它。
执行网络搜索并提供关于各种主题的信息。
示例请求:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"什么是模型上下文协议?"}'
分析来自各种文件格式(CSV, Excel)的数据,并生成带有可视化的报告。
示例请求:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"file_path": "sales_data.xlsx","query":"为这些数据生成报告"}'
根据自然语言描述生成多种编程语言的代码。
示例请求:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"Python斐波那契数列代码","language":"python"}'
/ask - 将用户查询路由到最合适的代理的一般端点/search - 直接进行网络搜索的端点/analyze-data - 数据分析的端点/generate-code - 代码生成的端点/chat/completions - 对话交互的聊天完成端点服务器暴露以下MCP工具:
ask - 将用户的查询路由到最合适的代理search - 在网络上搜索信息analyze_data - 分析数据文件并生成带有可视化的报告generate_code - 根据自然语言描述生成代码要添加新的代理:
agents/目录下创建一个新文件process()方法的代理类要添加新的工具:
tools/目录下创建一个新文件