Topolograph MCP
A MCP server that enables LLMs to interact with OSPF and IS-IS protocols and analyze network topologies, query network events, and perform path calculations for OSPF and IS-IS protocols.
Documentation
Topolograph MCP Server
A Model Context Protocol (MCP) server that provides access to Topolograph API for OSPF/IS-IS network analysis.
Overview
This MCP server enables AI agents to interact with Topolograph API to analyze network topologies, monitor events, and perform path calculations for OSPF and IS-IS protocols. MCP (Model Context Protocol) is essential for connecting Large Language Models (LLMs) to network infrastructure, allowing AI agents to query and analyze network data in real-time.
This MCP server is included in the topolograph-docker repository and is available via the provided docker-compose.yml file.
Features
- Graph Management: Retrieve and upload network graphs
- Network Analysis: Query network information by IP, node ID, or network mask
- Event Monitoring: Track network and adjacency events with time filtering
- Path Calculation: Calculate shortest paths between nodes with backup path support
- Status Monitoring: Check graph connectivity and health status
- Node/Edge Queries: Retrieve detailed node and edge information from diagrams
Installation
pip install -r requirements.txt
Configuration
Set the required environment variable:
export TOPOLOGRAPH_API_BASE="https://your-topolograph-api-url"
Optional authentication:
export TOPOLOGRAPH_API_TOKEN="your-api-token"
Usage
Start the MCP server:
python mcp-server.py
The server runs on http://0.0.0.0:8000/mcp by default.
Docker Compose Integration
This MCP server is included in the topolograph-docker repository. To use it as part of the complete Topolograph stack:
git clone https://github.com/Vadims06/topolograph-docker.git
cd topolograph-docker
docker-compose pull
docker-compose up -d
The MCP server will be available at http://localhost:8000/mcp and automatically connects to the Flask API.
Available Tools
get_all_graphs: List available graphs with filtering optionsget_graph_by_time: Fetch specific graph by timeget_network_by_graph_time: Query network informationget_graph_status: Check graph health and connectivityget_network_events: Retrieve network up/down eventsget_adjacency_events: Get node/host and link eventsget_events_timeline: Node/host events grouped into time waves for incident narrationget_nodes: Query diagram nodes (filter by role flags: ABR/ASBR, IS-IS overload/attached)get_edges: Query diagram edges (include=["lsp_left_bw", "lsps", "is_te_link", "edge_key"]for MPLS TE fields)get_shortest_path: Calculate the shortest path between two nodes (with_lsps=trueto account for autoroute-enabled MPLS-TE tunnels)get_edge_failure_reaction: Predict whole-network impact if one or more links go downupload_graph: Upload new graphs to the APIget_lsps/add_lsp/update_lsp/delete_lsp: CRUD for MPLS TE LSP tunnels (filters:status,via_node,via_edge,via_edge_key)get_cspf_path: Constrained-shortest-path (CSPF) feasibility check between two nodes, without creating a tunnel
Wave patterns (get_events_timeline)
get_events_timeline groups node/host up/down events into chronological
waves, each labelled with a pattern (outage / flap / up). For the
full field reference and the pattern ā graph-status mapping, see the docs:
ā”ļø Events Timeline (Waves)
License
See LICENSE file for details.