Skip to content
Agentmart
Submit a tool

AgentSUMO

MCP server for LLM-driven SUMO traffic simulation, scenario design, and result analysis.

Connector by mw-jeong · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 11
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/mw-jeong-agentsumo-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for LLM-driven SUMO traffic simulation, scenario design, and result analysis.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
14 read · 5 write · 1 delete · 6 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 26

Read from the source code; the running server may list different tools.

Read 14 · Look things up without changing anything.

  • analyze_road_details_tool
  • get_edge_ids_from_road_name_tool
  • get_road_names_tool
  • net_convert
  • network_summary_tool
  • osm_extract
  • route_analysis_tool
  • validate_od_coordinates_tool
  • visualize_edge_tool
  • visualize_edgedata_tool
  • visualize_net_tool
  • visualize_policy_target_tool
Show 2 more tools
  • web_search_tool
  • xml_to_sqlite_tool

Write 5 · Create, change, send or run things.

  • speed_limit_edit_tool
  • tls_adaptation_tool
  • tls_offset_tool
  • vehicle_generation_tool
  • vehicle_type_edit_tool

Delete 1 · Delete, drop, revoke or wipe things.

  • edge_edit_tool

Not yet classified 6 · We could not tell from the name and description.

  • flow_generation_tool
  • reduce_lanes_tool
  • route_generate
  • simulation_report_tool
  • sumo_runner
  • trip_generate

Secrets and settings it asks for

Other settings (environment variables or headers).

  • AGENTSUMO_MCP_OUTPUT_BASE
  • SUMO_HOME

Files it touches

  • Any path the agent passes to its tools

Tools (26)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_road_details_tool

    Analyze detailed road information (lanes, speed limits, length, etc.). This tool provides comprehensive analysis of road segments including: - Number of lanes per segment - Speed limits (km/h) - Road length and width - Statistical summary (averages, min/max) USE CASES: 1. "Show lane count and speed limit for the 500m segment of Teheran-ro near Gangnam Station" 2. "Analyze current road state to compare before and after policy application" 3. "Road capacity analysis (lane count x length)" Args: net_file: Network file path target_road_name: Road name (e.g., "테헤란로", "Teheran-ro") re…

  • edge_edit_tool

    Delete specific road segments from the network file. ⚠️🚨 CRITICAL: After using this tool, you MUST regenerate trips and routes! Route files contain explicit edge lists - if those edges are deleted, the route file becomes INVALID! Workflow: edge_edit → trip_generate → route_generate → sumo_runner (REQUIRED!) 🌟 REALISTIC USAGE: Specify reference_location + radius_km for partial road closure! Three modes (priority order): 1. edge_ids: Delete exact edges (most precise, but requires knowing edge IDs) 2. target_road_name + reference_location + radius_km: Delete road segments near a location (RE…

  • flow_generation_tool

    Generate a SUMO flow from source to destination. Two ways to specify locations: 1. Place names (source/dest) — uses geocoding to find coordinates 2. Direct coordinates (source_lat/lon, dest_lat/lon) — skips geocoding. Use this when coordinates are already known (e.g., from map O/D selection). Two ways to specify vehicle count (exactly one required): 1. vehs_per_hour — rate-based generation (SUMO <flow vehsPerHour="N">) 2. number — total vehicle count over [begin,end] (SUMO <flow number="N">) Safety parameters applied: departLane="free", departPos="random_free", departSpeed="random" IMPO…

  • get_edge_ids_from_road_name_tool

    Convert road name to SUMO edge IDs using edge.getName(). IMPORTANT: Use this when user asks questions with road names (e.g., "What is the density of Teheran-ro?") This tool maps human-readable road names to SUMO's technical edge IDs, enabling SQL queries based on road names. Args: road_name: Road name (e.g., "테헤란로", "강남대로", "9th Avenue") net_file: Network file path used in simulation. When working with DB data, get this from: SELECT net_file FROM simulations WHERE simulation_id = '<your_sim_id>' Returns: List[str]: List of edge IDs matching the road …

  • get_road_names_tool

    Convert SUMO edge IDs to actual road names using edge.getName(). IMPORTANT: Use this after congestion analysis to show human-readable road names! This tool maps SUMO's technical edge IDs to real-world street names, making analysis results much more understandable and actionable. Args: edge_ids: List of SUMO edge IDs to convert (e.g., ["194926855#1", "420901920#0"]) net_file: Network file path used in simulation. When working with DB data, get this from: SELECT net_file FROM simulations WHERE simulation_id = '<your_sim_id>' Returns: Dict mapping edge_…

  • net_convert

    [Step 2/5] Convert OSM data to SUMO network format (.net.xml). Converts the raw .osm file from osm_extract() into a SUMO-compatible road network using netconvert. Applies road type filtering and UTM projection. Previous step: osm_extract() to get .osm file and bbox. Next step: trip_generate() to create traffic demand on this network. === PARAMETERS === - osm_file (REQUIRED): Path to .osm file (from osm_extract result) - city_en: English name for output file naming (auto-derived from osm_file if omitted) - bbox: Bounding box [west, south, east, north] for boundary trimming. Pass the bbox f…

  • network_summary_tool

    Get a comprehensive summary of a SUMO network. Use when user asks about the network, its size, or what roads are included. Returns edge count, junction count, total road length, bounding box, and road name list. Args: net_file: Path to the SUMO network file (.net.xml) Returns: Dict with network statistics and road names

  • osm_extract

    [Step 1/5] Extract OpenStreetMap (OSM) road network data for a given area. This is the FIRST step in the simulation pipeline. It downloads or extracts raw OSM data (.osm file) for the specified geographic area. Next step: Use net_convert() to convert the .osm file to SUMO .net.xml format. === AREA SPECIFICATION (priority order) === 1. bbox: Direct coordinates [west, south, east, north] Example: [127.015, 37.490, 127.040, 37.506] 2. od_data_file: Auto-compute bbox from OD CSV coordinate columns (use column_mapping if columns are not named O_lon, O_lat, D_lon, D_lat) 3. zone_shp_file: A…

  • reduce_lanes_tool

    Reduce lanes on road segments with two modes. ✅ Trip file can be reused - edges still exist, only lane count changed. Workflow: reduce_lanes → sumo_runner (reuse existing trip file) **MODE 1: Relative Reduction (RECOMMENDED for most policies)** - reduce_by: Reduce N lanes from each segment - Example: reduce_by=1 → 5→4, 3→2, 2→1, 1→1 (balanced reduction) **MODE 2: Absolute Reduction (for special cases)** - remain_lanes: Set all segments to N lanes - Example: remain_lanes=1 → 5→1, 3→1, 2→1, 1→1 (extreme reduction) REALISTIC USAGE: Use reference_location + radius_km for localized lane reducti…

  • route_analysis_tool

    Analyze the optimal route between two locations in the network. Accepts place names (e.g., "강남역", "Gangnam Station") or road names (e.g., "테헤란로"). TWO ROUTING MODES: 1. "distance" (default): Shortest path by edge length. Works without simulation data. 2. "traveltime": Optimal path using actual simulation results (edgedata XML) as edge weights. Requires weight_file (edgedata XML from a previous simulation). Can also use other attributes: "density", "CO2_abs", etc. Use cases: - "What is the shortest path from Gangnam Station to Samseong Station?" -> routing_mode="distance" - "What is th…

  • route_generate

    [Step 4/5] Generate routes from trips using SUMO's duarouter. Assigns shortest-path routes to each trip based on the road network. Converts trips.xml → routes.rou.xml which is required for simulation. Previous step: trip_generate() to get .trips.xml file. Next step: sumo_runner() to run the simulation with net_file and route_file. === PARAMETERS === - net_file (REQUIRED): Path to SUMO network file (.net.xml, from net_convert) - trip_file (REQUIRED): Path to trip file (.trips.xml, from trip_generate) === RETURNS === - route_file: Path to generated .rou.xml file (pass to sumo_runner)

  • simulation_report_tool

    Generate a comprehensive HTML simulation analysis report from SQLite database. This is the FINAL deliverable of a simulation analysis session. It summarizes ALL scenarios in the database with KPIs, comparisons, congestion analysis, and emissions. The report is a standalone dark-themed HTML file that can be: - Viewed in the web interface (click from file tree) - Opened in any browser - Shared as a file IMPORTANT — Before calling this tool: 1. Query the database (read_query) to understand the simulation results 2. Write an executive_summary (1-2 paragraphs, English, professional tone) that co…

  • speed_limit_edit_tool

    Modify speed limits on specific road segments (supports partial application). ✅ Trip file can be reused - edges still exist, only speed limit changed. Workflow: speed_limit_edit → sumo_runner (reuse existing trip file) REALISTIC USAGE: Use reference_location + radius_km for localized speed limit changes! Examples: # REALISTIC: Reduce speed to 40km/h on 500m of Teheran-ro near Gangnam Station speed_limit_edit_tool( net_file="gangnam_station.net.xml", target_road_name="테헤란로", reference_location="강남역", radius_km=0.5, new_speed_kmph=40.0 ) …

  • sumo_runner

    [Step 5/5] Run SUMO traffic simulation using TraCI. Executes the simulation with the generated network and routes. Captures vehicle position frames for post-simulation replay visualization. Previous step: route_generate() to get .rou.xml file. === PARAMETERS === - net_file (REQUIRED): SUMO network file (.net.xml, from net_convert) - route_file: Route file (.rou.xml, from route_generate) — preferred over trip_file - trip_file: Trip file (.trips.xml) — use only if route_file is unavailable - duration: Simulation duration in seconds (default: 3600 = 1 hour) - additional_files: List of addition…

  • tls_adaptation_tool

    Run SUMO tlsCycleAdaptation.py to optimize traffic light cycles and generate an additional XML file. Args: net_file: Network file path (tag will be extracted from filename) route_file: Route file path output_dir: Output directory for results

Show 11 more tools
  • tls_offset_tool

    Run SUMO tlsCoordinator.py to optimize traffic light offsets and generate an additional XML file. Args: net_file: Network file path (tag will be extracted from filename) route_file: Route file path output_dir: Output directory for results

  • trip_generate

    [Step 3/5] Generate trip demand (trips.xml) for SUMO simulation. Creates origin-destination trip definitions. This tool ONLY generates trips — route assignment is done separately by route_generate(). Previous step: net_convert() to get .net.xml file. Next step: route_generate() to assign routes to trips. === THREE MODES === 1. RandomOD — Random trip generation: - trip_type: "RandomOD" - traffic_condition (REQUIRED): "light" | "medium" | "heavy" * light: ~20% of edge count (rural, off-peak) * medium: ~80% of edge count (typical urban) * heavy: ~150% of edge count (rush …

  • validate_od_coordinates_tool

    Validate a list of coordinates against the SUMO network. Use this BEFORE generating flows to check which coordinates are within the network and find the nearest edges. Essential for agentic OD planning — lets you verify destinations are reachable before proposing them to the user. Args: net_file: SUMO network file path (.net.xml) coordinates: List of coordinate dicts, each with: - lat (float): Latitude (WGS84) - lon (float): Longitude (WGS84) - label (str, optional): Human-readable label (e.g., "Lincoln Tunnel") search_radius: Search radius in km for neare…

  • vehicle_generation_tool

    Add vehicles from source to destination with optimal path calculation. SUPPORTS TWO MODES: 1. Road Name Mode: - Use exact road names (e.g., '테헤란로', '강남대로') - Set use_geocoding=False (default) 2. Location Mode (Recommended): - Use any location name or place (e.g., '강남역', '코엑스', 'Gangnam Station, Seoul') - Uses geocoding to find coordinates, then finds nearest edges - Set use_geocoding=True - Automatically validates if location is within network bounds IMPORTANT NOTES: - Location Mode validates coordinates against network bounds (1km buffer) - If location is outside network…

  • vehicle_type_edit_tool

    Reassign vehicle types in the route file according to the electric_ratio. Args: route_file: Route file path electric_ratio: Ratio of electric vehicles (0.0 to 1.0) output_dir: Output directory for results

  • visualize_edge_tool

    Visualize a SUMO network file with selected edges highlighted and save as PNG image. Only use when user EXPLICITLY requests edge visualization! - User says "show edge details", "visualize this road" → Use this - User asks "which road is congested?" → Do NOT use, answer with text Args: net_file: Path to the SUMO network file (.net.xml) road_name: Name of the road to highlight output_dir: Output directory for visualization files

  • visualize_edgedata_tool

    🎨 Visualize SUMO edgedata with flexible scaling modes for comparison. ⚠️ IMPORTANT: Only use when user EXPLICITLY requests heatmap/visualization! - User says "show heatmap", "visualize density", "show congestion map" → Use this - User asks "which road is congested?" -> Do NOT use; answer with text from SQL query **SCALE MODES:** 1. **'auto'** (default): Dynamic scale from current file - Best for: Single simulation analysis - Scale: Optimized for current data range 2. **'unified'**: Consistent scale across multiple files - Best for: Policy comparison (before/after) - Requires: …

  • visualize_net_tool

    Visualize a SUMO network file and save as PNG image. ⚠️ IMPORTANT: Only use when user EXPLICITLY requests visualization! - User says "show network map", "visualize network" → Use this - User asks about simulation results → Do NOT use, answer with text Args: net_file: Path to the SUMO network file (.net.xml) output_dir: Output directory for visualization files

  • visualize_policy_target_tool

    Visualize policy target area using SUMO's built-in visualization. Only use when user EXPLICITLY requests to preview policy area! - User says "show me which roads will be affected" → Use this - User just wants to apply policy → Do NOT use, proceed with policy tool This tool helps visualize which road segments will be affected by a policy before actually applying it. Essential for confirming policy target area! VISUALIZATION: - Shows ONLY the selected road segments within the specified radius - Uses SUMO's standard plot_net_selection.py for consistent styling - Clean, focused view of the poli…

  • web_search_tool

    Search the web using DuckDuckGo. Use this to look up real-world information that helps with simulation scenario design. Useful for: - Venue/facility capacity (e.g., "Madison Square Garden capacity") - Geographic/infrastructure info (e.g., "bridges connecting Manhattan to Brooklyn") - Traffic patterns and event schedules - Road/highway specifications - Any factual information needed to set realistic simulation parameters Args: query: Search query string. Be specific for better results. max_results: Number of results to return (default: 5, max: 10) Returns: List of search results,…

  • xml_to_sqlite_tool

    Convert SUMO XML results to SQLite database for advanced SQL-based analysis. IMPORTANT: This enables detailed queries that summary statistics cannot answer: - Top N queries (e.g., "What are the top 10 roads by density?") - Specific edge analysis (e.g., "What is the congestion level at the Gangnam Station intersection?") - Comparative analysis (e.g., "How did density change before and after the policy?") - Temporal analysis (e.g., "How does speed vary across times of day?") - Road-level aggregation (e.g., "What is the average congestion across all of Teheran-ro?") DATABASE SCHEMA (IMPORTANT):…

Signals

Stars
11
Forks
3
Open issues
0
Weekly downloads
59
Last commit
Jun 17, 2026 (4 months ago)
Last release
Jun 5, 2026 (4 months ago)
Last package publish
Jun 5, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.mw-jeong/agentsumo-mcp
Version
0.1.2
Auth
No auth
Packages
pypi agentsumo-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

AgentSUMO MCP server. Agent Mart. https://agentmart.dev/connectors/mw-jeong-agentsumo-mcp (last updated 2026-10-24)