使用说明
多代理MCP服务器
该项目使用微软的AutoGen框架和模型上下文协议(MCP)服务器实现了一个多代理系统。该系统为以下人员提供专业代理:
- MathAgent:执行数学计算
- PostgresQL代理:与PostgreSQL数据库交互
- FetcherAgent:从URL汇总网页内容
- 浏览:使用Playwright浏览网站并与之交互
代理由RouterAgent协调,RouterAgent将用户查询定向到适当的专用代理。
特性
- 模块化代理架构
- MCP集成用于工具访问
- 流线型网络界面,便于交互
- Docker支持容器化部署
- 环境变量配置
先决条件
- Python 3.10或更高版本
- Node.js(用于Playwright MCP服务器)
- PostgreSQL数据库(可选,用于PostgreSQLAgent)
- OpenAI API密钥
- Apify API密钥(用于BrowserAgent)
安装
本地设置
-
克隆存储库:
git clone <repository-url> cd MCP_server -
安装Python依赖项:
pip install -r requirements.txt -
安装Playwright浏览器:
playwright install -
设置环境变量: 创建
.env根目录中的文件,其中包含:OPENAI_API_KEY=your_openai_api_key APIFY_API_KEY=your_apify_api_key PGHOST=localhost # Optional, defaults to localhost PGDATABASE=postgres # Optional, defaults to postgres PGUSER=postgres # Optional, defaults to postgres PGPASSWORD=your_password # Optional, defaults to 63540@Post
Docker设置
-
构建Docker镜像:
docker build -t mcp-server . -
运行容器:
docker run -p 8501:8501 \ -e OPENAI_API_KEY=your_openai_api_key \ -e APIFY_API_KEY=your_apify_api_key \ -e PGHOST=localhost \ -e PGDATABASE=postgres \ -e PGUSER=postgres \ -e PGPASSWORD=your_password \ mcp-server
用法
本地运行
启动Streamlit应用程序:
streamlit run app.py
然后导航到 http://localhost:8501 在您的网络浏览器中。
使用Docker运行
如上所示启动容器后,访问应用程序 http://localhost:8501.
可用代理
- MathAgent:使用数学MCP服务器处理数学查询(加法、乘法)
- PostgresQL代理:对PostgreSQL数据库执行SQL查询
- FetcherAgent:使用mcp服务器获取工具从URL中获取和总结内容
- 浏览:使用Playwright浏览网站并与之交互
- 路由器代理:确定哪个专用代理应处理用户查询
项目结构
MCP_server/
├── .git/
├── .gitignore
├── .kimchi/
├── agents/
│ ├── base.py
│ ├── browser_agent.py
│ ├── fetch_agent.py
│ ├── math_agent.py
│ ├── postgres_agent.py
│ └── router_agent.py
├── tools/
│ ├── __init__.py
│ ├── math_server.py
│ └── postgres_tool_server.py
├── utils/
│ ├── __init__.py
│ └── load_env.py
├── app.py # Streamlit web interface
├── main.py # Console-based interface
├── requirements.txt # Python dependencies
├── Dockerfile # Docker build instructions
└── README.md
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENAI_API_KEY |
OpenAI API密钥(必需) | - |
APIFY_API_KEY |
将BrowserAgent的API密钥Apify(必需) | - |
PGHOST |
PostgreSQL主机 | localhost |
PGDATABASE |
PostgreSQL数据库名称 | postgres |
PGUSER |
PostgreSQL用户名 | postgres |
PGPASSWORD |
PostgreSQL密码 | 63540@Post |
备注
- BrowserAgent需要
@playwright/mcp软件包,通过安装npx在运行时。 - FetcherAgent使用
mcp-server-fetch软件包,通过安装uvx在运行时。 - Math和PostgreSQL代理使用Python实现的本地MCP服务器。
故障排除
- 如果你遇到Playwright的问题,请确保你已经运行
playwright install - 数据库连接错误:验证您的PostgreSQL凭据以及数据库是否正在运行
- MCP服务器问题:确保安装了所需的软件包(
uvx mcp-server-fetch应该工作)
许可证
该项目根据MIT许可证获得许可。
