LabscoMCP early access ↗
davidlin2kMCP SERVER

ONOS MCP Server

Talk to an ONOS SDN controller in plain language — topology and flow state, health metrics, application lifecycle and path computation across your OpenFlow network.

by davidlin2k ↗Network, Endpoint & Fleet ManagementCommunity

LABSCO SUMMARY

Reads and writes on the same connection.

Alongside the read paths this can install and uninstall applications and create flow rules, so the credentials you give it are the ones that change the network. The bundled prompts for diagnostics and QoS are the fastest way in — they frame the question the way ONOS answers it, which matters more here than tool count.

What it is

An MCP server in front of the ONOS controller's REST API. It exposes the network's own state — devices, links, hosts, topology, flow rules and intents — plus analytics and management operations, so an assistant can investigate or reconfigure the network without a console session.

What you get

  • Network summary — devices, links, hosts and clusters in one overview, with per-device detail
  • Network analytics over performance metrics, traffic patterns and utilization statistics
  • System health: memory usage, cluster status and component health
  • Application management — install, activate, deactivate and uninstall ONOS applications
  • Flow configuration: create and manage flow rules and intents
  • Path computation between two network endpoints
  • Prompts that come with the server for network diagnostics, intent-based configuration, health reports, QoS configuration and performance tuning

Requirements

A running ONOS controller you can reach, plus Python 3.12 or later and uv. Three environment variables point the server at it: ONOS_API_BASE (default http://localhost:8181/onos/v1), ONOS_USERNAME (default onos) and ONOS_PASSWORD (default rocks). The client config runs it with uv --directory <YOUR_PATH_TO_ONOS_MCP_SERVER>/src/onos_mcp_server run server.py. Package onos-mcp-server at 0.1.0.

Setup effort

Clone and run — clone the repository, then add the configuration for your client; uv runs the script from your clone, with nothing to build