Skip to content
Conduit

mcp server

Noisemodelling-mcp

YuGaobjtu/Noisemodelling-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 23, 2026

NoiseModelling MCP Server

An MCP (Model Context Protocol) server that exposes NoiseModelling as AI-callable tools. Lets AI agents (Claude, etc.) run full urban noise mapping pipelines from raw OSM data to GeoJSON noise contour maps.

What it does

Wraps the NoiseModelling WPS API into ~25 structured MCP tools covering:

  • Setup - download, install, and start NoiseModelling automatically
  • Static noise maps - OSM import -> receiver grid -> CNOSSOS-EU propagation -> isosurface -> GeoJSON export
  • Dynamic noise maps - per-timestep vehicle trajectories -> LA10/LA50/LA90 indicators -> QGIS temporal animation
  • Database management - list, drop, and clean tables

Prerequisites

RequirementVersion
Python>= 3.13
NoiseModelling5.x or 6.x
Java>= 11 (bundled with NoiseModelling 5.x)

NoiseModelling must be running before any analysis tool is called. Use the setup tools (below) to install and start it, or start it manually.

Installation

# Clone
git clone https://github.com/YuGaobjtu/Noisemodelling-mcp
cd Noisemodelling-mcp

# Install dependencies (uv recommended)
uv sync
# or: pip install -e .

Quick start

1 - Start the MCP server

uv run main.py
# Server listens on http://127.0.0.1:8000 (streamable-http transport)

2 - Configure your MCP client

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "noisemodelling": {
      "command": "uv",
      "args": ["run", "/path/to/Noisemodelling-mcp/main.py"]
    }
  }
}

Claude Code (.claude/settings.json):

{
  "mcpServers": {
    "noisemodelling": {
      "command": "uv",
      "args": ["run", "/path/to/Noisemodelling-mcp/main.py"]
    }
  }
}

3 - Install & start NoiseModelling (first time)

Ask your AI agent:

"Get the latest NoiseModelling release, download it, install it, and start the server."

Or call tools directly in order:

  1. get_noisemodelling_release_info - get download URL
  2. download_noisemodelling - save ZIP
  3. install_noisemodelling - extract
  4. start_noisemodelling_server - launch
  5. check_server_status - verify

4 - Run a noise map

Run a full noise map pipeline for my_city.osm or demo data like:(NoiseModelling\NoiseModelling_5.0.1\data_dir\data\wpsdata\map.osm.pbf), SRID 2154,
output to /tmp/noise_output/noise_map.geojson

The agent calls run_full_noise_map_pipeline - one tool that runs all 6 steps.

Environment variables

VariableDefaultDescription
NOISEMODELLING_URLhttp://127.0.0.1:9580Override NoiseModelling server URL

Copy .env.example to .env and edit as needed.

Tools reference

Setup tools

ToolDescription
get_noisemodelling_release_infoFetch latest release info + download URLs from GitHub
download_noisemodellingDownload ZIP to disk
install_noisemodellingExtract ZIP to install directory
start_noisemodelling_serverLaunch server process in background
check_server_statusVerify server is reachable, list WPS processes

Static noise mapping

ToolOutput tables
import_osmBUILDINGS, GROUND, ROADS
generate_receiver_gridRECEIVERS, TRIANGLES
compute_road_emissionLW_ROADS
compute_noise_propagationRECEIVERS_LEVEL
create_isosurfaceCONTOURING_NOISE_MAP
export_tablefile on disk
run_full_noise_map_pipelineall of the above in one call

Dynamic noise mapping - Case 1 (single traffic flow)

ToolOutput tables
generate_regular_receiver_gridRECEIVERS, TRIANGLES
flow_to_noisy_vehiclesSOURCES_GEOM, SOURCES_EMISSION
compute_dynamic_noise_propagationRECEIVERS_LEVEL
compute_dynamic_indicatorsRECEIVERS_LEVEL_DYN_IND (LA10/50/90)
run_dynamic_noise_pipeline_case1all Case 1 steps in one call

Dynamic noise mapping - Case 2 (traffic at regular intervals)

ToolOutput tables
import_fileany table from GeoJSON/SHP/CSV
split_sources_periodSOURCES_GEOM, SOURCES_EMISSION
run_dynamic_noise_pipeline_case2all Case 2 steps in one call

Database management

ToolDescription
list_database_tablesList all tables (optionally with columns)
export_all_tablesExport every table to a directory
drop_tableRemove one table
clean_databaseRemove all tables

Platform support

Tested on Windows. Linux/macOS paths use ~/NoiseModelling as default root. NoiseModelling itself runs on all platforms with Java 11+.

License

MIT - see LICENSE.

Acknowledgements

Built on NoiseModelling by Universite Gustave Eiffel / UMRAE. Implements CNOSSOS-EU road noise model per EU END Directive 2002/49/EC.

↑↓ navigate openesc close