MCP服务器

MCP服务器是一个集成本地数据库、Playwright、本地数学工具和代理的多功能服务器。

  • by anilnishad19799
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anilnishad19799/mcp_server

使用说明

多代理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)

安装

本地设置

  1. 克隆存储库:

    git clone <repository-url>
    cd MCP_server
    
  2. 安装Python依赖项:

    pip install -r requirements.txt
    
  3. 安装Playwright浏览器:

    playwright install
    
  4. 设置环境变量: 创建 .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设置

  1. 构建Docker镜像:

    docker build -t mcp-server .
    
  2. 运行容器:

    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.

可用代理

  1. MathAgent:使用数学MCP服务器处理数学查询(加法、乘法)
  2. PostgresQL代理:对PostgreSQL数据库执行SQL查询
  3. FetcherAgent:使用mcp服务器获取工具从URL中获取和总结内容
  4. 浏览:使用Playwright浏览网站并与之交互
  5. 路由器代理:确定哪个专用代理应处理用户查询

项目结构

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许可证获得许可。