Skip to main content
Glama
razbakov

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.