服务器
这个项目是一个开源项目,按原样发布。它不打算用于生产。
文件结构(核心+传输包装器)
传统stdio垫片(已弃用,仍受支持):
enhanced_declarative_catalyst.py->使用catalyst_center_stdio.pyenhanced_declarative_meraki.py->使用meraki_stdio.py
当前套房(首选):
catalyst_center_core.py/meraki_core.py-自足核心逻辑catalyst_center_stdio.py/meraki_stdio.py-stdio包装纸catalyst_center_remote.py/meraki_remote.py-流式HTTP包装器
学习进度服务器
以下三台服务器演示了MCP从简单到多组织模式的开发:
Meraki MCP基本服务器(basic_meraki_mcp_server.py)
- 目的:学习MCP基础知识的最小单工具MCP服务器示例
- 特性:单一工具(
list_organizations_details)使用一个API键,不需要任何参数 - 用例:理解MCP服务器结构、工具注册和API集成的起点
基础Meraki MCP服务器(foundation_meraki_mcp_server.py)
- 目的:介绍性多池MCP服务器,具有基本的Meraki API覆盖范围
- 特性:两个工具(组织和网络),单个API密钥,具有所需输入的参数处理
- 用例:演示工具链——使用组织详细信息发现组织ID,然后将其传递给列表网络
多组织Meraki MCP服务器(multiorg_meraki_mcp_server.py)
- 目的:具有YAML驱动组织配置的多组织Meraki MCP服务器
- 特性:三个工具,包括发现工具、支持多个组织(Prod、Lab或所有组织)、通过外部组织配置
Resources/meraki_organizations.yaml - 用例:展示了如何使用单个API密钥和“全部”聚合模式在多个环境中扩展MCP服务器
概念验证服务器
以下两个概念验证服务器演示了MCP工具的自动生成以及多个Catalyst Center集群和多个Meraki组织的管理。
Meraki MCP服务器(meraki_stdio.py)
- 目的:思科Meraki云管理网络自动化
- 特性:多组织支持、设备管理、客户端跟踪、网络配置
- API覆盖范围:组织、网络、设备、客户端、安全策略
- API资源管理器:使用Meraki API规范文件对API进行Cosine搜索。识别API,调用API,提供API文档和API遥测。仅限于调用GET API终结点。
Catalyst Center MCP服务器(catalyst_center_stdio.py)
- 目的:Cisco Catalyst Center本地网络自动化
- 特性:设备清单、合规性检查、问题跟踪、配置管理
- API覆盖范围:站点、设备、客户、保证数据、操作
- API资源管理器:使用Catalyst Center API规范文件对API进行余弦搜索。识别API,调用API,提供API文档和API遥测。仅限于调用GET API终结点。
远程流式HTTP服务器
以下包装器通过流式HTTP传输公开了相同的工具集:
包装架构说明: 此仓库中的远程服务器是覆盖 _core 服务器(meraki_core.py 和 catalyst_center_core.py).\ 所有工具逻辑(包括API资源管理器安全规则和方法限制)都存在于 _core,使stdio和远程行为保持同步。\ 传统垫片仅作为兼容性入口点,并通往当前的stdio/核心流。
Meraki远程MCP服务器(meraki_remote.py)
- 目的:的远程HTTP包装器
meraki_core.py - 运输:可流式传输HTTP
/mcp(默认端口8001) - API资源管理器安全:从声明性服务器继承的只读资源管理器行为(仅GET)
- 同步模型:继承声明性服务器逻辑(没有重复的执行引擎)
Catalyst远程MCP服务器(catalyst_center_remote.py)
- 目的:的远程HTTP包装器
catalyst_center_core.py - 运输:可流式传输HTTP
/mcp(默认端口8000) - API资源管理器安全:从声明性服务器继承的只读资源管理器行为(仅GET;无POST/PUT/DELETE)
- 同步模型:继承声明性服务器逻辑(没有重复的执行引擎)
快速开始
- 环境设置
pip install -r requirements.txt- 配置凭据
创建 environment.env 使用API密钥和端点
如果使用API资源管理器功能,请配置本地语句转换器模型访问:
- 集 SENTENCE_TRANSFORMERS_MODEL_DIR 到当地 all-MiniLM-L6-v2 文件夹,或 - 将模型放置在 embeddings_cache/model/all-MiniLM-L6-v2 在这个回购中。
您可以使用以下内容填充本地模型缓存:
python download_model.py- 运行服务器
验证服务器是否在本地运行。它们可以由MCP客户端作为子流程启动。
python meraki_stdio.py
python catalyst_center_stdio.py- 运行远程流式HTTP包装器 (可选)
当您的MCP客户端通过HTTP而不是stdio连接时,请使用这些:
python meraki_remote.py --host 0.0.0.0 --port 8001
python catalyst_center_remote.py --host 0.0.0.0 --port 8000- 传统标准垫片(已弃用但支持)
python enhanced_declarative_meraki.py
python enhanced_declarative_catalyst.py配置
核心配置文件
meraki_config.yaml-Meraki API端点和参数catalyst_config.yaml-Catalyst Center API端点和参数requirements.txt-Python依赖项,包括MCP、API客户端、ML库
位置说明: 运行时组织/集群配置文件从以下位置加载 Resources/ 目录:
Resources/meraki_organizations.yamlResources/catalyst_center_clusters.yaml
API资源管理器Swagger文件
Resources/meraki_swagger.json-Meraki OpenAPI/Swagger使用的源代码meraki_core.py资源管理器功能Resources/cc_swagger.json-Catalyst Center OpenAPI/Swagger源代码由使用catalyst_center_core.py资源管理器功能
这些文件用于端点发现、相似性搜索、端点元数据和资源管理器分析工作流。
注: API资源管理器自动查找和动态执行被有意限制为 GET 仅限端点。\ POST/PUT/DELETE 操作不是由explorer工具自动生成的,必须仅通过YAML中定义的显式声明性工具执行。
变压器模型资源
- 本地模型缓存基目录:
embeddings_cache/ - 预期模型路径:
embeddings_cache/model/all-MiniLM-L6-v2 - 模型下载助手:
download_model.py
例子:
python download_model.py --model-name all-MiniLM-L6-v2工具目录
Resources/MCP_Tools.md-Catalyst Center和Meraki服务器的声明性和资源管理器工具的Markdown目录
日志记录
logs/catalyst_center_mcp.loglogs/meraki_mcp.log
多环境设置
Resources/meraki_organizations.yaml -配置多个Meraki组织:
meraki_organizations:
- name: "Production"
api_key_env: "MERAKI_PROD_API_KEY"
description: "Production environment networks"
enabled: true
- name: "Lab"
api_key_env: "MERAKI_LAB_API_KEY"
description: "Development and testing networks"
enabled: trueResources/catalyst_center_clusters.yaml -配置多个Catalyst Center群集:
catalyst_centers:
- name: "Portland"
host: "Portland-center.domain.com"
version: "2.3.7.10"
location: "Portland"
enabled: true
- name: "San Jose"
host: "SanJose-catalyst.domain.com"
version: "2.3.7.9"
location: "San Jose"
enabled: false环境变量
创建 environment.env 文件:
# Meraki API Keys
MERAKI_PROD_API_KEY=your_production_api_key
MERAKI_LAB_API_KEY=your_lab_api_key
# Catalyst Center Credentials
CC_URL=https://your-catalyst-center.domain.com
CC_USER=your_username
CC_PASS=your_password依赖项
密钥包来自 requirements.txt:
mcp-模型上下文协议服务器框架httpx-用于API调用的现代HTTP客户端sentence-transformers-API勘探的人工智能嵌入catalystcentersdk-思科Catalyst Center Python SDKscikit-learn,numpy-用于余弦相似性搜索的ML库
Claude桌面配置
工作室
{
"mcpServers": {
"meraki_stdio": {
"command": "/path/to/your/venv/bin/python3",
"args": ["/path/to/your/meraki_stdio.py"]
},
"catalyst_center_stdio": {
"command": "/path/to/your/venv/bin/python3",
"args": ["/path/to/your/catalyst_center_stdio.py"]
}
}
}备注:更新路径以匹配实际的Python虚拟环境和脚本位置。
远程(流式HTTP)
添加到您的Claude桌面 claude_desktop_config.json:
{
"mcpServers": {
"meraki_remote": {
"url": "http://127.0.0.1:8001/mcp"
},
"catalyst_center_remote": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}首先启动远程服务器:
python meraki_remote.py --host 0.0.0.0 --port 8001
python catalyst_center_remote.py --host 0.0.0.0 --port 8000每台服务器都提供声明性工具和AI驱动的API探索,以实现完整的网络自动化功能。
