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"
Optional read-only mode (defaults to true, recommended for agent-facing deployments):
export TOPOLOGRAPH_MCP_READ_ONLY="true"
When enabled, mutation tools (upload_graph, add_lsp, update_lsp, delete_lsp) are
removed from the advertised tool surface (tools/list) and cannot be called, even by a
client that already knows their name. Set to false only for trusted/admin deployments
that need write access.
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
Read tools (always available)
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_lsps: List/inspect MPLS TE LSP tunnels (filters:status,via_node,via_edge,via_edge_key)get_shortest_path: Calculate the shortest path between two nodes (with_lsps=trueto account for autoroute-enabled MPLS-TE tunnels)get_cspf_path: Constrained-shortest-path (CSPF) feasibility check between two nodes; never mutates the graphget_edge_failure_reaction: Predict whole-network impact if one or more links go down; simulation only
BGP topology tools (require Topolograph >= 2.69)
list_bgp_graphs/get_bgp_graph: List/fetch BGP graph epochslist_bgp_nodes/list_bgp_sessions: BGP speakers and peering sessions of an epochsearch_bgp_routes: Search the BGP route table, whole-graph or scoped to one speaker's resolved RIB viewget_bgp_node_route_summary: Per-speaker route totals (RIB-tag histogram, Adj-RIB-Out count)get_bgp_route_state: Point-in-time BGP route statecompare_bgp_routes: Diff BGP routes between two instantsget_bgp_events_timeline: BGP session/route monitoring eventslist_bgp_bindings/get_bgp_binding: BGP-to-IGP graph correlationresolve_route: Resolve a path to a destination, including VPN/MPLS handoffsget_vrf_inventory/list_vpn_routers: VRF inventory and VPN start-node candidates forresolve_route
Mutation tools (hidden and disabled when TOPOLOGRAPH_MCP_READ_ONLY=true)
upload_graph: Upload new graphs to the APIadd_lsp/update_lsp/delete_lsp: Create, update, and delete MPLS TE LSP tunnels (delete_lspis also tagged destructive)
Tools are tagged read, write, and/or destructive in source, and carry standard MCP
annotations (readOnlyHint, destructiveHint, idempotentHint) for clients that use them
for tool selection. Annotations are metadata for clients, not a security boundary: the
actual boundary is TOPOLOGRAPH_MCP_READ_ONLY hiding mutation tools from tools/list,
backed by a server-side guard that also rejects direct calls to them in read-only mode.
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:
License
See LICENSE file for details.