项目简介

MCPyATS Server 是一个实验性的 Model Context Protocol (MCP) 服务器实现,它利用 pyATS 框架进行网络自动化,并集成了多种服务工具。该服务器旨在为大型语言模型 (LLM) 应用提供一个统一的接口,使其能够通过标准化的 MCP 协议访问和操作网络设备以及其他外部服务。

主要功能点

  • 工具发现与管理: 自动发现并管理来自 pyATS 和其他 MCP 服务的工具,例如网络设备操作、GitHub、Slack、文件系统等。
  • 网络自动化: 集成 pyATS 网络自动化框架,支持对 Cisco IOS/NX-OS 等网络设备执行命令和配置操作。
  • 多服务集成: 连接多种 MCP 服务容器(如 GitHub, Google Maps, Slack, ServiceNow 等),扩展 LLM 的能力边界。
  • JSON-RPC 通信: 通过标准的 JSON-RPC 协议与 MCP 客户端进行通信,接收请求并返回响应。
  • 可扩展架构: 支持通过 Docker 容器扩展工具服务,易于集成新的功能模块。
  • 本地工具支持: 允许加载和使用本地 Python 脚本定义的工具。

安装步骤

  1. 克隆仓库

    git clone https://github.com/automateyournetwork/MCPyATS.git
    cd MCPyATS
  2. 安装依赖

    虽然文档中没有明确的安装步骤,但根据代码推测,可能需要安装 Python 依赖。建议检查仓库中是否有 'requirements.txt' 或 'setup.py' 文件,并进行安装。如果没有,可能需要手动安装一些关键库,例如 'pyats', 'langchain', 'langgraph', 'pydantic', 'openai' 等。

    # 示例安装命令 (如果需要)
    # pip install -r requirements.txt
  3. 配置环境变量

    • PYATS_TESTBED_PATH: 设置 pyATS 测试床文件的路径。你需要准备一个 pyATS 测试床文件来描述你的网络设备信息。
    • OPENAI_API_KEY: 如果需要使用 ChatGPT 工具,请设置 OpenAI API 密钥。
    • WEATHER_API_KEY: 如果需要使用天气查询工具,请设置 WeatherAPI 密钥。
    • ABUSEIPDB_API_KEY: 如果需要使用威胁情报工具,请设置 AbuseIPDB API 密钥。
    • NETBOX_URL, NETBOX_TOKEN: 如果需要使用 NetBox 工具,请设置 NetBox 的 URL 和 API Token。
    • EMAIL_HOST, EMAIL_PORT, EMAIL_SSL, EMAIL_ACCOUNT, EMAIL_PASSWORD: 如果需要使用 Email 工具,请设置邮件服务器相关配置。
    • SLACK_BOT_TOKEN, SLACK_TEAM_ID: 如果需要使用 Slack 工具,请设置 Slack Bot Token 和 Team ID。
    • GITHUB_TOKEN: 如果需要使用 GitHub 工具,请设置 GitHub Token。
    • GOOGLE_MAPS_API_KEY: 如果需要使用 Google Maps 工具,请设置 Google Maps API 密钥。

    可以通过创建 '.env' 文件或直接在 shell 环境中设置这些环境变量。

    # 示例 .env 文件内容
    PYATS_TESTBED_PATH=/path/to/your/testbed.yaml
    OPENAI_API_KEY=your_openai_api_key
    # ... 其他环境变量

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与之建立连接。以下是 MCPyATS 服务器的配置信息,请复制到你的 MCP 客户端配置中:

{
  "serverName": "MCPyATS",
  "command": "python3",
  "args": [
    "mcpyats/mcpyats.py"
  ],
  "description": "MCPyATS 服务器,提供网络自动化和多服务工具集成能力"
}
  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCPyATS 服务器的命令,这里使用 'python3' 解释器。
  • 'args': 传递给启动命令的参数,指定了服务器脚本的路径 'mcpyats/mcpyats.py'。
  • 'description': 对该服务器的简要描述,方便在客户端界面上识别。

基本使用方法

  1. 启动 MCPyATS 服务器

    在仓库根目录下,运行以下命令启动服务器:

    python3 mcpyats/mcpyats.py

    或者,如果需要以 one-shot 模式运行(接收单个请求并返回响应后退出),可以使用:

    python3 mcpyats/mcpyats.py --oneshot
  2. 配置 MCP 客户端

    将上述提供的服务器配置信息添加到你的 MCP 客户端中。客户端会使用配置信息中的命令和参数来启动并连接到 MCPyATS 服务器。

  3. 通过 MCP 客户端与服务器交互

    使用 MCP 客户端发送符合 MCP 协议的 JSON-RPC 请求,例如工具发现 ('tools/discover') 和工具调用 ('tools/call') 请求。服务器将处理这些请求,并返回 JSON-RPC 响应。

    例如,你可以通过客户端发送请求来调用 'pyATS_run_show_command' 工具,以在网络设备上执行 'show version' 命令。

    具体的请求格式和参数细节,请参考 MCP 协议文档和 'mcpyats/mcpyats.py' 代码中的工具定义部分。

注意: MCPyATS 项目目前标记为 "experimental",可能存在不稳定性和功能不完善之处。请在评估后谨慎使用。

信息

分类

开发者工具