项目简介
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 脚本定义的工具。
安装步骤
-
克隆仓库
git clone https://github.com/automateyournetwork/MCPyATS.git cd MCPyATS -
安装依赖
虽然文档中没有明确的安装步骤,但根据代码推测,可能需要安装 Python 依赖。建议检查仓库中是否有 'requirements.txt' 或 'setup.py' 文件,并进行安装。如果没有,可能需要手动安装一些关键库,例如 'pyats', 'langchain', 'langgraph', 'pydantic', 'openai' 等。
# 示例安装命令 (如果需要) # pip install -r requirements.txt -
配置环境变量
- 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': 对该服务器的简要描述,方便在客户端界面上识别。
基本使用方法
-
启动 MCPyATS 服务器
在仓库根目录下,运行以下命令启动服务器:
python3 mcpyats/mcpyats.py或者,如果需要以 one-shot 模式运行(接收单个请求并返回响应后退出),可以使用:
python3 mcpyats/mcpyats.py --oneshot -
配置 MCP 客户端
将上述提供的服务器配置信息添加到你的 MCP 客户端中。客户端会使用配置信息中的命令和参数来启动并连接到 MCPyATS 服务器。
-
通过 MCP 客户端与服务器交互
使用 MCP 客户端发送符合 MCP 协议的 JSON-RPC 请求,例如工具发现 ('tools/discover') 和工具调用 ('tools/call') 请求。服务器将处理这些请求,并返回 JSON-RPC 响应。
例如,你可以通过客户端发送请求来调用 'pyATS_run_show_command' 工具,以在网络设备上执行 'show version' 命令。
具体的请求格式和参数细节,请参考 MCP 协议文档和 'mcpyats/mcpyats.py' 代码中的工具定义部分。
注意: MCPyATS 项目目前标记为 "experimental",可能存在不稳定性和功能不完善之处。请在评估后谨慎使用。
信息
分类
开发者工具