MCP server for Mighty Spatial's IFC-to-GIS conversion API
Project description
Mighty Spatial MCP Server
An MCP (Model Context Protocol) server that provides tools for converting IFC (BIM) files to GIS formats using the Mighty Spatial API.
Try it in the browser: Web Converter | API Docs | Dashboard
Pricing
| Tier | Conversions | Max File Size | Price |
|---|---|---|---|
| Free | 5/month | 50 MB | Free |
| Pro | Pay-as-you-go | 500 MB | $0.50/conversion |
| Enterprise | Custom | Custom | Contact us |
Get your API key at mightyspatial.com/dashboard.
Python SDK
For programmatic access outside of MCP, install the Python SDK:
pip install mightyspatial
Features
- convert_ifc - Convert IFC files to GeoJSON, GeoPackage, Shapefile, or FileGDB
- list_formats - List supported output formats and tier requirements
- preview_ifc - Upload and preview an IFC file, returning layer summaries
- generate_pipes - Generate 3D pipe geometry from polyline layers
Installation
cd mcp-server
pip install -e .
Or with uv:
cd mcp-server
uv pip install -e .
Configuration
Set these environment variables as needed:
| Variable | Description | Default |
|---|---|---|
MIGHTY_SPATIAL_API_URL |
API base URL | https://mightyspatial.com/api |
MIGHTY_SPATIAL_API_KEY |
API key for authenticated access | (none - uses free tier) |
Claude Desktop Setup
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Using uv (recommended)
{
"mcpServers": {
"mightyspatial": {
"command": "uv",
"args": [
"run",
"--directory", "/path/to/mightyspatial-web/mcp-server",
"mightyspatial-mcp"
],
"env": {
"MIGHTY_SPATIAL_API_KEY": "your-api-key-here"
}
}
}
}
Using pip
{
"mcpServers": {
"mightyspatial": {
"command": "mightyspatial-mcp",
"env": {
"MIGHTY_SPATIAL_API_KEY": "your-api-key-here"
}
}
}
}
Usage Examples
Once configured, you can ask Claude things like:
- "Convert this IFC file to GeoPackage" (provide a URL or local path)
- "Preview the layers in my IFC file at /path/to/building.ifc"
- "What output formats does Mighty Spatial support?"
- "Generate 3D pipe geometry from the polyline layer in my previewed file"
Tool Reference
list_formats
No parameters required. Returns supported formats with tier info.
convert_ifc
| Parameter | Type | Required | Description |
|---|---|---|---|
file_url |
string | one of url/path | URL to download the IFC file from |
file_path |
string | one of url/path | Local path to the IFC file |
output_format |
string | no | geojson (default), geopackage, shapefile, filegdb |
target_epsg |
string | no | EPSG code, e.g. EPSG:28356 |
strip_prefix |
string | no | Prefix to strip from entity names |
strip_suffix |
string | no | Suffix to strip from entity names |
include_csv |
bool | no | Include CSV attribute tables |
preview_ifc
| Parameter | Type | Required | Description |
|---|---|---|---|
file_url |
string | one of url/path | URL to download the IFC file from |
file_path |
string | one of url/path | Local path to the IFC file |
source_crs |
string | no | EPSG code for the source CRS |
generate_pipes
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id |
string | yes | Job ID from a previous preview_ifc call |
source_layer |
string | yes | Name of the polyline layer |
diameter_field |
string | no | Attribute field with pipe diameters |
config_field |
string | no | Attribute field with pipe configuration |
uom |
string | no | Unit of measurement: mm, m, in, ft (default: mm) |
default_diameter |
float | no | Default diameter (default: 300) |
centerline_mode |
string | no | centerline or invert (default: centerline) |
bank_centerline_mode |
string | no | centerline or invert (default: centerline) |
bank_stack_direction |
string | no | bottomUp or topDown (default: bottomUp) |
bank_gap |
float | no | Gap between pipes in a bank (default: 50) |
Development
# Run the server directly
uv run mightyspatial-mcp
# Test with MCP inspector
npx @modelcontextprotocol/inspector uv run mightyspatial-mcp
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mightyspatial_mcp-0.1.0.tar.gz.
File metadata
- Download URL: mightyspatial_mcp-0.1.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e62e2c3e711e01ccc555df64ed0fb08417163e1c54775cc36032914d26c7426
|
|
| MD5 |
0fc29dd39f9e252ec452d3b9e783b3e1
|
|
| BLAKE2b-256 |
c2b6d3f5384676f4323672ada2f5782855ca24106a25b265b8e108b41deac577
|
File details
Details for the file mightyspatial_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mightyspatial_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6f99ef642d7f5eec524bd29e9f374b877090e0f9dec81eda3ccc5aba23ff2d2
|
|
| MD5 |
297dd8b8c5c9e999339da69de6c375ce
|
|
| BLAKE2b-256 |
e0458d73e95dfadff48b74af54a0d710074d3af54da26dc31fb0794c3d764b0c
|