🚀 MCP Server for SEED Internet Emulator#449
Closed
zzw4257 wants to merge 161 commits intoseed-labs:masterfrom
Closed
🚀 MCP Server for SEED Internet Emulator#449zzw4257 wants to merge 161 commits intoseed-labs:masterfrom
zzw4257 wants to merge 161 commits intoseed-labs:masterfrom
Conversation
…to : BruceJqs ) I rebased so I had to do this commit again by myself
…m2025_2 Ethereum2025 2
update: add new features of Y03-Mirai example
…m2025_2 updated example to add any number of eth nodes
Merge Emulator-API branch
… into yesterdayoncemore
Merge master into yom
… into yesterdayoncemore
PR for rearranging files in BGP_Hijacking_Attack
update: add VM support to Y03_mirai and modify the file structure
Some update for MoneroService
fix: Demosystem 02_morris_worm conf
fix: home bashboard && docker compose
fix: docker ps|grep as11
Sprint 1 (Email Service): - Add install_email_service tool for deploying mail servers - Add list_email_providers tool - Integrate EmailService with compile_simulation - Add LLM integration test (verify_email_service.py) Docker/Dynamic Tools (Phase 1 completion): - Add docker-compose v1/v2 compatibility - Add unit tests for Docker and Dynamic tools - Add E2E Docker workflow verification Tests: 28 unit tests passing
Sprint 2: - Add configure_link_properties for latency/bandwidth/packet loss - Add add_static_route for static routing configuration - Add get_node_interfaces for interface inspection - Add 6 unit tests for network config tools Note: Interface configuration works after render() due to SEED's lazy interface creation model. Tests: 34 unit tests passing
Sprint 3: - Add export_topology for JSON, Mermaid, Graphviz formats - Add export_python_script for reproducing topology - Add get_topology_summary for human-readable summary - Add get_code_log to runtime - Add 7 unit tests and LLM integration test
Sprint 4: - Add traceroute tool - Add capture_traffic tool (tcpdump wrapper with timeout) - Add get_interface_stats tool - Update test_dynamic_tools.py with new tests Phase 2 Complete!
Phase 3: - Add bgp_announce_prefix tool for injecting routes - Add get_looking_glass tool for route inspection - Add unit tests (3 new tests) - Add verify_bgp_hijack.py demo script
- Add 20+ dynamic tools for Ops phase (attack, forensics, diagnostics) - Network: capture_traffic, inject_fault (packet_loss, latency) - Security: bgp_announce_prefix, start_attack_scenario - System: exec_command, capture_evidence - Enhance runtime to support dynamic container discovery - Implement hybrid tool loading architecture
- Add verify_operations.py for dynamic tool testing - Add verify_agent_robustness.py for self-correction testing - Add demo_bgp_hijack_lab.py for reference topology - Add unit tests for dynamic operations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 MCP Server for SEED Internet Emulator
📋 Overview
The MCP Server acts as a bridge between LLM-based agents (like
seed-agent) and the SEED Emulator. It enables agents to:🏗️ Architecture
I use a Layered Hybrid Architecture to ensure both high-performance static tool access and flexible dynamic operation discovery.
🛠️ Tool Inventory (Highlight)
I've implemented 53 tools categorized by their lifecycle stage.
🔹 1. Infrastructure (Static & High-Frequency)
create_asasn: intcreate_routerasn, namecreate_networkasn, name, prefixconnect_to_ixasn, router_name, ix_id🔹 2. Routing & Compilation
configure_ospfasnset_as_relationshipasn1, asn2, relrender_simulationstart_simulation🔹 3. Dynamic Operations (Runtime Discovery)
exec_commandcontainer, commandinject_faultcontainer, fault_typestart_attackscenario, targetcapture_trafficcontainer, interface📐 Key Design Decisions
Important
Stateful Singleton Runtime: The
EmulatorRuntime(inruntime.py) manages the emulator state (designing → rendered → running). This ensures that an LLM can perform multi-turn operations (e.g., "Add a router" then "Start it") without losing context.create_as(100)twice returns the existing object instead of an error.📂 Reviewer's Guide
mcp-server/server.pymcp-server/runtime.pymcp-server/verify_operations.pymcp-server/tests/🧪 Verification Plan
1. Automated Tests
2. Manual Integration Demo
Verify tool discovery and execution:
# Verify dynamic tool discovery and basic topology build python3 mcp-server/verify_operations.py🔮 Future Roadmap
iperf3andhping3tools.Reviewers: | Labels:
feature,mcp,emulatorReady for Review. 🚀