BIM Portal MCP Server
by razbakov
README.md
# BIM MCP Server
A comprehensive Model Context Protocol (MCP) server implemented in TypeScript that provides access to the German BIM Portal REST API.
## Features
- **Organizations**: Manage and query organizations
- **Properties**: Search and retrieve building properties and property groups
- **LOINs**: Access Level of Information Need definitions
- **Domain Models**: Work with domain-specific models
- **Context Information**: Retrieve construction context data
- **AIA Templates & Projects**: Access AIA (Auftraggeber-Informations-Anforderungen) resources
- **Filters**: Global filtering capabilities
- **Export Capabilities**: PDF, XML, OpenOffice, OKSTRA formats
## Setup
### Prerequisites
1. Get your BIM Portal credentials by registering at [https://via.bund.de/bim](https://via.bund.de/bim)
2. Install Node.js and npm
### Adding to Cursor
1. Open Cursor Settings (Cmd/Ctrl + ,)
2. Search for "MCP" in settings
3. Click "Edit in settings.json" next to "Mcp: Servers"
4. Add the BIM Portal MCP server configuration:
```json
{
"mcpServers": {
"bim-portal": {
"command": "npx",
"args": ["-y", "bim-portal-mcp"],
"env": {
"BIM_EMAIL": "your-bim-portal-email@example.com",
"BIM_PASSWORD": "your-bim-portal-password"
}
}
}
}
```
5. Save the settings file
6. The BIM Portal tools will now be available in your AI conversations
### Adding to Claude Desktop
1. Locate your Claude Desktop configuration file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
2. Edit the configuration file and add the MCP server:
```json
{
"mcpServers": {
"bim-portal": {
"command": "npx",
"args": ["-y", "bim-portal-mcp"],
"env": {
"BIM_EMAIL": "your-bim-portal-email@example.com",
"BIM_PASSWORD": "your-bim-portal-password"
}
}
}
}
```
3. Save the file
4. Restart Claude Desktop
5. The BIM Portal tools will be available in your conversations
## Available Tools
#### Organization Tools
- **bim_get_organizations**: Get all available organizations
- **bim_get_my_organizations**: Get user's organizations
#### Property Tools
- **bim_search_properties**: Search for properties with filters
- **bim_get_property**: Get specific property by GUID
- **bim_search_property_groups**: Search for property groups
- **bim_get_property_group**: Get specific property group by GUID
- **bim_get_global_filters**: Get all global property filters
#### LOIN Tools
- **bim_search_loins**: Search for LOINs (Level of Information Need)
- **bim_get_loin**: Get specific LOIN by GUID
- **bim_get_loin_pdf**: Export LOIN as PDF
- **bim_get_loin_xml**: Export LOIN as XML
#### Domain Model Tools
- **bim_search_domain_models**: Search for domain-specific models
- **bim_get_domain_model**: Get specific domain model by GUID
#### Context Information Tools
- **bim_search_context_info**: Search for context information
- **bim_get_context_info**: Get specific context info by GUID
#### AIA Template Tools
- **bim_search_aia_templates**: Search for AIA templates
- **bim_get_aia_template**: Get specific AIA template by GUID
#### AIA Project Tools
- **bim_search_aia_projects**: Search for AIA projects
- **bim_get_aia_project**: Get specific AIA project by GUID
#### Filter Tools
- **bim_get_aia_filters**: Get all global AIA filters
## Development
### Installation
1. Install dependencies:
```bash
npm install
```
2. Build the TypeScript code:
```bash
npm run build
```
### Running the Server Locally
Start the MCP server:
```bash
npm start
```
### Development Mode (with watch)
```bash
npm run dev
```
## Project Structure
```
bim-mcp-server/
├── src/
│ ├── index.ts # Main server implementation
│ └── bim-api-client.ts # BIM Portal API client
├── dist/ # Compiled JavaScript (generated)
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
```
## BIM Portal API
This server connects to the German Federal BIM Portal at `https://via.bund.de/bim` and provides access to:
- Infrastructure elements and properties
- Building Information Modeling data
- Level of Information Need (LOIN) specifications
- Domain-specific models
- AIA (Client Information Requirements) templates and projects
- Construction context information
## MCP Protocol
This server implements the Model Context Protocol (MCP) and communicates via stdio. It can be used with any MCP-compatible client to provide comprehensive access to the BIM Portal API functionality.
## Error Handling
All API errors are properly caught and returned as error responses with descriptive messages. The server maintains authentication state and handles token refresh automatically.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues