overgrowth / README.md
Graham Paasch
Fix: Use environment variables for GNS3 server URL
c7576e1
|
Raw
History Blame
7.04 kB
metadata
title: Overgrowth  a living digital environment
emoji: 🌿
colorFrom: green
colorTo: gray
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false

Overgrowth – MCP Agent for Network Reliability

Track: MCP in Action – Enterprise
Hackathon: MCP's 1st Birthday – Hosted by Anthropic & Gradio
Tag: mcp-in-action-track-enterprise

Overgrowth is a living, digitally persistent network engineer. It simulates an out-of-band (OOB) mesh with MCP tools, JSON state, and Gradio UI to plan, simulate, triage, and roll back network changes safely.

What Overgrowth simulates:

  • Hardware-like OOB mesh via MCP-style tools (backups, drift, bootstrap, alerts)
  • Persistent state across runs (infra/*.json)
  • Change simulation against the Track 1 MCP server (network-change-simulator)
  • Topology-aware risk and blast radius
  • Rollback planning and troubleshooting flows

High-Level Architecture

[User] | v [Gradio 6 UI: Overgrowth] | v [Agent Pipeline]

  1. Parse free-text change request → hybrid steps (NL + JSON)
  2. For each step, call MCP simulate_network_change (Track 1 server)
  3. Blend MCP risk with topology impact (infra/topology.json)
  4. Generate config-diff summaries and rollback plan
  5. OOB Troubleshooting calls Overgrowth tools (backup, drift, alerts, bootstrap) | v [MCP Servers / Tools]
  • Track 1: simulate_network_change
  • Overgrowth OOB tools: backups, drift, bootstrap, alerts, root-cause triage

MCP Tools Used

  • External MCP server (Track 1): network-change-simulatorsimulate_network_change
  • Overgrowth OOB MCP-style tools (simulated hardware mesh):
    • oob_get_last_backup, oob_perform_backup
    • oob_detect_drift, oob_reset_drift_flag
    • oob_seed_device
    • oob_get_alerts, oob_add_alert

Example Track 1 invocation (conceptual)

{
  "tool_name": "simulate_network_change",
  "arguments": {"preset_id": "leaf_tor_vlan_stage", "mode": "analysis"}
}

User Workflow

  1. Describe a change in the main textbox.
  2. Click Run Analysis to get:
    • Plan tab: Hybrid NL + JSON steps with MCP-friendly change_type + preset_id
    • Risk & Topology: MCP risk plus blast radius from topology.json
    • Diffs: Conceptual before/after
    • Rollback: Ordered rollback plan
    • Tool Calls: Transparent MCP call log
  3. Open OOB Troubleshooting to triage a device:
    • Runs backup/drift/alerts/boot checks (persistent JSON state)
    • Suggests root causes, rollback safety, and next MCP simulations

Configuration

GNS3 Server Setup (Required for Build Network & Lab Management)

The "Build Network" and "Lab Management" features require a running GNS3 server. Configure the server URL using environment variables:

# Copy the example environment file
cp .env.example .env

# Edit .env and set your GNS3 server URL
GNS3_SERVER=http://your-gns3-server:3080
GNS3_PROJECT_NAME=overgrowth

Note: When running on HuggingFace Spaces, you'll need to configure these as Space secrets. For local development with a local GNS3 server, the defaults will work.


How to Use

  1. Open the Space.
  2. Enter a change request, e.g.
    “Add VLAN 120 for tenant Blue on leaf-01 and uplink it to tor-03 (staging only).”
  3. Inspect Plan, Risk, Diffs, Rollback, Tool Calls.
  4. If there’s an issue, go to OOB Troubleshooting, pick a device, describe the symptom, and run triage.

Notes for Judges

  • Persistent state lives in infra/*.json and is updated during user actions (Option C).
  • OOB tools emulate a hardware-backed OOB mesh while remaining pure MCP-style JSON/state.
  • Track 1 MCP server is used for real change simulation; Overgrowth augments it with reliability/triage workflows.

Future Extensions

  • Richer root-cause engine combining MCP results with time-series alerts
  • Multi-step autonomous remediation runs
  • Import real config snippets for diffs
  • CI/CD hooks to gate changes before rollout

What is Overgrowth?

  • A living MCP-powered OOB engineer that plans changes, simulates risk, detects drift, infers root cause, and self-heals.
  • Persistence lives in infra/*.json so the environment evolves across runs (backups, drift, alerts, bootstrap, MCP history, synapse log).

Why this matters for enterprise networks

  • Gives SRE/netops teams a pre-flight simulator + autonomous triage loop without touching production hardware.
  • Blends MCP tool calls (Track 1 server) with OOB state to deliver safety, transparency, and repeatability.
  • Produces audit-ready synapse logs, stability scoring, and after-action narratives.

How Overgrowth works

  • MCP Engine: Calls Track 1 simulate_network_change with structured presets from parsed NL input.
  • OOB Engine: Backup/drift/bootstrap/alerts tools operate on persistent JSON state to mimic a hardware OOB fabric.
  • Topology Model: infra/topology.json informs blast radius and role-aware amplification.
  • Reasoning Layer: Root-cause inference fuses MCP history, alerts, drift, backup age, and topology to rank causes.
  • Recovery Engine: Executes recommended actions (MCP sims, backup, drift reset, bootstrap, alert clear) and logs everything.

Autonomous Root-Cause Engine (Aggressive Mode)

  • Multi-signal fusion (drift + alerts + backups + topology role + last MCP predictions).
  • Cascading-failure inference (leaf→TOR→core amplification).
  • Predictive simulation heuristic (reasons about presets without re-running tools).
  • Recovery sequencing suggestions (rollback, re-bootstrap, re-run MCP full mode, auto-backup).

Autonomous Recovery Engine (Self-Healing Overgrowth)

  • Executes recommended actions via MCP-style calls and updates state.
  • Tracks health with a stability metric (drift/alerts/backup-age/MCP-risk) and reports before/after.
  • Logs every decision in infra/synapse_log.json and displays it in the Synapse Log tab.
  • Provides after-action narratives and recovery execution summaries directly in the Troubleshooting tab.

Architecture (ASCII)

User → Overgrowth UI
      → OOB Engine (backup / drift / bootstrap / alerts)
      → MCP Engine (Track 1 simulate_network_change)
      → Topology Model (blast radius, roles)
      → Synapse Log (state & audit trail)

Demo Script (5 steps)

  1. Input a change request (e.g., VLAN add) and click Run Analysis.
  2. Show MCP risk + topology impact in Plan/Risk tabs.
  3. Go to OOB Troubleshooting, enter “leaf-01 flap”, run troubleshooting to see root cause + stability + actions.
  4. Click Execute Recovery Plan; watch recovery summary/log update and stability improve.
  5. Open Synapse Log to show the audit trail of decisions and health deltas.

Try it live

  • Open the Space, follow the demo script above, then hit Reset Overgrowth State to rerun deterministically.

Demo video: https://youtu.be/YOUR_DEMO_VIDEO
Social post: https://www.linkedin.com/posts/YOUR_POST or https://x.com/YOUR_HANDLE/status/YOUR_TWEET_ID