13 May 2025

Talk to Your BIM: Exploring the AEC Data Model with MCP Server + Claude

This post is divided into three sections, all centered around using MCP Servers with Claude Desktop. We’ll start with a minimal example, then build up to an ACC Dashboard, and finally explore an AEC Data Model query system—progressing through three stages of increasing complexity.


 

Stage 1: Getting Started with MCP – "Count R's"

This is the easiest way to get an MCP Server up and running.  Claude Desktop and a localhost MCP server that exposes one basic tool — "counting how many times the letter 'r' appears in a string".

na

Inspired by this YouTube tutorial, this example is a great first step. It demonstrates how Claude can detect tasks it cannot reliably solve (like character counting), and route them to your custom code.

Key Concepts Introduced

  • Use Claude Desktop for your prompt input

  • your MCP tools are exposed via HTTP interface on a locally run server 

  • Tool discovery via schema metadata

  • Claude chooses when to delegate tasks

This example forms the starter template whenever you want to build a node.js based MCP Server.

 


 

Stage 2: Real API Usage with APS + Node.js

Next, Petr Broz leveraged this same Node.js-based MCP server and re-wired it to expose ACC APIs as a bunch of useful tools within the AI prompt system.  For example :

"Give me a visual dashboard of all ACC issues" ...

 

*Click image for full video

💻 GitHub repository

Note: AI assistants like Claude, ChatGPT, or Gemini can often remember recent inputs—such as Hub ID, Project ID, or Folder ID—within a single conversation. This lets your server remain largely stateless, as the AI will continue passing these inputs along with each tool invocation throughout the prompt.

This version includes:


 

Stage 3: Viewer Integration with .NET

In the final phase, Joao extended the MCP concept further with a .NET-based implementation built during the Sydney Accelerator.  Special thanks to Mirco Bianchini for presenting this challenge and helping to find the solutions outlined in this blog post.

🔗 GitHub: .NET MCP Viewer

Details

This integration lets you interact with your design data using natural language, connected to Autodesk's AEC Data Model and the APS Viewer.

The core tools introduced in this MCP Server are:

  • Authenticate via PKCE 

  • Connect with the AEC Data Model to list ElementGroups, Elements, Projects, and Hubs (refer here)

  • Match and highlight elements in the Viewer via HttpListener and Websockets

  • Launch a separate Viewer tab 

 

The end result, is an interactive 3D view of your Revit/BIM models, thanks to the AEC Data Model APIs under the hood. 

Prerequisites

To try this locally:

Architecture Diagram

The structure is similar to the diagram below:

diagram

 

Note: This is still experimental and not production-ready. Future versions may move to a hosted deployment model.


 

Conclusion

We began with a simple language puzzle (the famous Strawberry problem) and ended up with a complete natural language interface for BIM data — featuring real API access, chart generation, and even viewer control.

If you're working with LLMs and domain-specific APIs, MCP offers a powerful local-first approach to bridging prompts with functionality.

More updates, code walkthroughs, and advanced demos coming soon.

Related Article