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
使用 pip 进行安装:
pip install cisco-nso-mcp-server
运行 MCP 服务器:
cisco-nso-mcp-server
MCP 服务器支持 stdio 和 sse 两种传输类型。
默认情况下,服务器使用 stdio 传输。若要更改传输类型或 SSE 传输的主机和端口,可参考以下命令:
cisco-nso-mcp-server --transport stdio
cisco-nso-mcp-server --transport sse --host 0.0.0.0 --port 8000
环境变量的值会覆盖默认值,但会被命令行参数覆盖。
对于 stdio 传输,需启动服务器进程并通过 stdin 和 stdout 进行通信:
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 传输,可通过标准 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 定义为协程。asyncio.to_thread() 中,以防止阻止事件循环。try/except 块捕获并正确格式化来自网络操作的错误。本项目采用 MIT License。
Model Context Protocol (MCP) 是一种开放协议,标准化了 AI 模型与外部工具和服务之间的交互方式。MCP 实现了以下功能:
尽管 MCP 的主要用例是与 LLM 集成,但 MCP 和类似的工具框架(如 Smithery)是 LLM 无关的——它们只是特定协议的 API。这意味着你可以:
这种灵活性使 MCP 工具超越了仅限于 LLM 应用程序的价值,成为在工具和服务之间进行通信的通用工具。