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
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.
About
Reviews
Write a reviewNo 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_toolget_edge_ids_from_road_name_toolget_road_names_toolnet_convertnetwork_summary_toolosm_extractroute_analysis_toolvalidate_od_coordinates_toolvisualize_edge_toolvisualize_edgedata_toolvisualize_net_toolvisualize_policy_target_tool
Show 2 more tools
web_search_toolxml_to_sqlite_tool
Write 5 · Create, change, send or run things.
speed_limit_edit_tooltls_adaptation_tooltls_offset_toolvehicle_generation_toolvehicle_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_toolreduce_lanes_toolroute_generatesimulation_report_toolsumo_runnertrip_generate
Secrets and settings it asks for
Other settings (environment variables or headers).
AGENTSUMO_MCP_OUTPUT_BASESUMO_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_toolAnalyze 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_toolDelete 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_toolGenerate 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_toolConvert 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_toolConvert 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_toolGet 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_toolReduce 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_toolAnalyze 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_toolGenerate 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_toolModify 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_toolRun 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_toolRun 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_toolValidate 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_toolAdd 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_toolReassign 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_toolVisualize 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_toolVisualize 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_toolVisualize 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_toolSearch 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_toolConvert 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
- Repository
- github.com/mw-jeong/AgentSUMO
- 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)