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, 2026NoiseModelling 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
| Requirement | Version |
|---|---|
| Python | >= 3.13 |
| NoiseModelling | 5.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:
get_noisemodelling_release_info- get download URLdownload_noisemodelling- save ZIPinstall_noisemodelling- extractstart_noisemodelling_server- launchcheck_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
| Variable | Default | Description |
|---|---|---|
NOISEMODELLING_URL | http://127.0.0.1:9580 | Override NoiseModelling server URL |
Copy .env.example to .env and edit as needed.
Tools reference
Setup tools
| Tool | Description |
|---|---|
get_noisemodelling_release_info | Fetch latest release info + download URLs from GitHub |
download_noisemodelling | Download ZIP to disk |
install_noisemodelling | Extract ZIP to install directory |
start_noisemodelling_server | Launch server process in background |
check_server_status | Verify server is reachable, list WPS processes |
Static noise mapping
| Tool | Output tables |
|---|---|
import_osm | BUILDINGS, GROUND, ROADS |
generate_receiver_grid | RECEIVERS, TRIANGLES |
compute_road_emission | LW_ROADS |
compute_noise_propagation | RECEIVERS_LEVEL |
create_isosurface | CONTOURING_NOISE_MAP |
export_table | file on disk |
run_full_noise_map_pipeline | all of the above in one call |
Dynamic noise mapping - Case 1 (single traffic flow)
| Tool | Output tables |
|---|---|
generate_regular_receiver_grid | RECEIVERS, TRIANGLES |
flow_to_noisy_vehicles | SOURCES_GEOM, SOURCES_EMISSION |
compute_dynamic_noise_propagation | RECEIVERS_LEVEL |
compute_dynamic_indicators | RECEIVERS_LEVEL_DYN_IND (LA10/50/90) |
run_dynamic_noise_pipeline_case1 | all Case 1 steps in one call |
Dynamic noise mapping - Case 2 (traffic at regular intervals)
| Tool | Output tables |
|---|---|
import_file | any table from GeoJSON/SHP/CSV |
split_sources_period | SOURCES_GEOM, SOURCES_EMISSION |
run_dynamic_noise_pipeline_case2 | all Case 2 steps in one call |
Database management
| Tool | Description |
|---|---|
list_database_tables | List all tables (optionally with columns) |
export_all_tables | Export every table to a directory |
drop_table | Remove one table |
clean_database | Remove 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.