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
Metadata
Release files for mightyspatial-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mightyspatial_mcp-0.1.0.tar.gz | 7.0 kB | Without provenance | Details for mightyspatial_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mightyspatial_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for mightyspatial_mcp-0.1.0-py3-none-any.whl |
Total release size: 15.0 kB
Release files / mightyspatial_mcp-0.1.0.tar.gz
| Download URL | mightyspatial_mcp-0.1.0.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e62e2c3e711e01ccc555df64ed0fb08417163e1c54775cc36032914d26c7426
|
|
BLAKE2b-256 checksum How to use checksums |
c2b6d3f5384676f4323672ada2f5782855ca24106a25b265b8e108b41deac577
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / mightyspatial_mcp-0.1.0-py3-none-any.whl
| Download URL | mightyspatial_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e6f99ef642d7f5eec524bd29e9f374b877090e0f9dec81eda3ccc5aba23ff2d2
|
|
BLAKE2b-256 checksum How to use checksums |
e0458d73e95dfadff48b74af54a0d710074d3af54da26dc31fb0794c3d764b0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for mightyspatial-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.