Cisco Nso Mcp Server

Cisco Nso Mcp Server

🚀 Cisco NSO MCP 服务器

Cisco NSO MCP 服务器是一个用于 Cisco NSO(网络服务编排器)的 Model Context Protocol (MCP) 服务器实现,借助自然语言交互达成 AI 驱动的网络自动化,为网络管理带来更智能、便捷的体验。

🚀 快速开始

Cisco NSO MCP 服务器使用 Python 编写,可通过 pip 进行安装,并能作为命令行工具运行。以下是快速安装和启动服务器的命令:

# 安装包
pip install cisco-nso-mcp-server

# 运行服务器
cisco-nso-mcp-server

✨ 主要特性

  • MCP 协议支持:将 Cisco NSO 的功能暴露为 MCP 工具和服务,可供任何 MCP 兼容客户端消费。
  • 灵活性高:MCP 是一种开放协议,与 LLM 无关,可直接在无 LLM 的应用程序中使用,也可通过集成层让 LLM 控制,还能按需混合使用。
  • 异步处理:利用 Python 的异步编程功能,高效处理网络操作,支持并发处理和错误处理。

📦 安装指南

安装

使用 pip 进行安装:

pip install cisco-nso-mcp-server

运行服务器

运行 MCP 服务器:

cisco-nso-mcp-server

配置选项

MCP 服务器支持 stdiosse 两种传输类型。

标准配置

默认情况下,服务器使用 stdio 传输。若要更改传输类型或 SSE 传输的主机和端口,可参考以下命令:

  • 使用标准配置运行服务器
cisco-nso-mcp-server --transport stdio
  • 更改 SSE 传输的主机和端口
cisco-nso-mcp-server --transport sse --host 0.0.0.0 --port 8000

环境变量优先级

环境变量的值会覆盖默认值,但会被命令行参数覆盖。

💻 使用示例

连接到服务器

标准输入输出传输(stdio)

对于 stdio 传输,需启动服务器进程并通过 stdinstdout 进行通信:

from mcp import ClientSession, StdioServerParameters
from contextlib import AsyncExitStack

async def connect():
exit_stack = AsyncExitStack()
server_params = StdioServerParameters(
command="cisco-nso-mcp-server",
args=[],
env=None
)

stdio_transport = await exit_stack.enter_async_context(stdio_client(server_params))
stdio, write = stdio_transport
session = await exit_stack.enter_async_context(ClientSession(stdio, write))
await session.initialize()

# 现在你可以使用会话调用工具和读取资源
return session

SSE 传输

对于 SSE 传输,可通过标准 HTTP 客户端连接到服务器:

from mcp import ClientSession, SSEServerParameters
from contextlib import AsyncExitStack

async def connect():
exit_stack = AsyncExitStack()
server_params = SSEServerParameters(
url="http://localhost:8000",
headers={"Authorization": "Bearer YOUR_TOKEN"}
)

sse_transport = await exit_stack.enter_async_context(sse_client(server_params))
session = await exit_stack.enter_async_context(ClientSession(sse_transport))
await session.initialize()

# 现在你可以使用会话调用工具和读取资源
return session

🔧 技术细节

MCP 服务器利用 Python 的异步编程功能来高效处理网络操作:

  • 异步函数定义:所有工具函数都使用 async def 定义为协程。
  • 非阻塞 I/O:对 Cisco NSO 的网络调用包装在 asyncio.to_thread() 中,以防止阻止事件循环。
  • 并发处理:多个工具调用可以同时处理而无需等待之前操作完成。
  • 错误处理:异步 try/except 块捕获并正确格式化来自网络操作的错误。

📄 许可证

本项目采用 MIT License。

📚 详细文档

什么是 MCP?

Model Context Protocol (MCP) 是一种开放协议,标准化了 AI 模型与外部工具和服务之间的交互方式。MCP 实现了以下功能:

  • 工具定义:结构化地定义 AI 模型可以使用工具的方式。
  • 工具发现:模型发现可用工具的机制。
  • 工具执行:模型调用工具并接收结果的标准方法。
  • 上下文管理:在工具和模型之间高效传递上下文。
  • 框架无关:适用于 OpenAI、Anthropic、Google Gemini 等多个 AI 框架。
  • 互操作性:为 AI 系统与外部工具之间的通信提供通用语言。

MCP 的灵活性说明

尽管 MCP 的主要用例是与 LLM 集成,但 MCP 和类似的工具框架(如 Smithery)是 LLM 无关的——它们只是特定协议的 API。这意味着你可以:

  • 直接使用:在没有 LLM 的任何应用程序中直接使用。
  • 通过集成层让 LLM 控制:通过集成层让 LLM 控制。
  • 根据需要混合两种方法:根据具体需求和用例混合两种方法。

这种灵活性使 MCP 工具超越了仅限于 LLM 应用程序的价值,成为在工具和服务之间进行通信的通用工具。

  • 0 关注
  • 0 收藏,22 浏览
  • system 提出于 2025-10-04 09:51

相似服务问题

相关AI产品