SkillAgentSearch skills...

aps-sample-mcp-server-revit-automation

Sample MCP server to automate Revit via Automation API using SSA

Install / Use

claude mcp add autodesk-platform-services -- npx -y github:autodesk-platform-services/aps-sample-mcp-server-revit-automation

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

75/100

Category

Automation

Supported Platforms

Claude Code
Claude Desktop

Our assessment of aps-sample-mcp-server-revit-automation

aps-sample-mcp-server-revit-automation scores 75/100 on our quality scale, 2613th of 2,883 Automation skills we index.

Its MCP Server is 8.6 KB long, well organised into 18 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
20/20
Description
12/15
Adoption
4/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 7 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 86/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

aps-sample-mcp-server-revit-automation compared with similar skills

All 4 of these similar skills score higher than aps-sample-mcp-server-revit-automation; compare them before choosing.

SkillScoreStarsUpdatedFormat
aps-sample-mcp-server-revit-automation (this skill)by autodesk-platform-services75107mo agoMCP Server
Agent-Reachby Panniantong10093.0k22d agoCLAUDE.md
headroomby headroomlabs-ai10074.6ktodayCLAUDE.md
CowAgentby zhayujie10047.3ktodayCLAUDE.md
Scraplingby D4Vinci10086.1ktodayMCP Server

Frequently asked questions

How do I install aps-sample-mcp-server-revit-automation?
Run claude mcp add autodesk-platform-services -- npx -y github:autodesk-platform-services/aps-sample-mcp-server-revit-automation. The install tabs above show the steps for each supported agent.
Which AI agents does aps-sample-mcp-server-revit-automation work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is aps-sample-mcp-server-revit-automation safe to use?
It is MIT-licensed and scores 86/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is aps-sample-mcp-server-revit-automation still maintained?
The repository was last updated about 7 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

Sample MCP Server for Revit Automation

Automation API Revit-2026 .NET C# MCP

A sample Model Context Protocol (MCP) remote server (HTTP) that enables AI assistants like Claude to automate Autodesk Revit operations via Automation API using Service-to-Service Authentication (SSA).

https://github.com/user-attachments/assets/43a5aabc-d2a3-47ff-a9e1-8bd61d24a81e


⚠️ Disclaimer
This is a vibe-coded sample solution - an exploratory proof-of-concept developed iteratively. It demonstrates patterns and possibilities but may not follow all production-grade practices. This README was generated by GitHub Copilot based on analyzing the actual codebase, ensuring documentation matches implementation.

🔗 Companion Repository
This MCP server works with the APS Automation API Revit MCP Tools Sample - the Revit AppBundle that executes the actual tools in Automation API. Deploy that AppBundle to use this MCP server.


🎯 Overview

MCP Revit Automation bridges AI assistants with Autodesk Revit through the Model Context Protocol. It enables headless, scalable automation of Revit operations on cloud-hosted models (ACC/BIM360) without manual interaction.

Target Audience: AEC Firms, BIM Managers, BIM Coordinators, Developers building AI-powered BIM workflows

Key Features

  • 🔐 SSA Authentication - JWT bearer tokens with RSA signing for service-to-service auth
  • 🏗️ Fluent API - Type-safe model configuration with compile-time validation
  • 📦 Dual JSON Architecture - Separates model context from tool inputs
  • 🤖 MCP Integration - Exposes tools to AI assistants naturally
  • ☁️ Cloud-Native - Works with Autodesk Cloud Models

🔧 Extensible Tool System

  • Easy to add new Revit automation tools
  • Consistent pattern for all operations
  • No core service changes required

🤖 MCP Protocol Support

  • Exposes tools to AI assistants like Claude or VS Code Copilot
  • Natural language to Revit automation
  • HTTP transport for broad compatibility

☁️ Cloud-Native

  • Works with Autodesk Cloud Models (ACC/BIM360) - Workshared and Non-Workshared
  • Scalable workitem submission
  • Automation API for Revit integration

🏛️ Architecture

MCP Client (Claude/VS Code) 
    ↓ MCP Protocol
MCP Server (This Project)
    ├─ RevitAutomationTools (MCP tool definitions)
    ├─ RevitAutomationService (Workitem submission)
    └─ SsaTokenService
    ↓ HTTPS + Bearer Token
Autodesk Automation API for Revit (Cloud execution)

Dual JSON Pattern:

  • revitmodel.json - Model context (region, project, model GUIDs, tool name)
  • toolinputs.json - Tool-specific parameters

📦 Prerequisites


🚀 Installation

git clone https://github.com/autodesk-platform-services/aps-sample-mcp-server-revit-automation.git
cd mcp-revit-automation
dotnet restore
dotnet build --configuration Release

Create appsettings.json:

{
  "Forge": {
    "ClientId": "your-client-id",
    "ClientSecret": "your-client-secret",
    "ServiceAccountId": "your-service-account-id",
    "KeyId": "your-key-id",
    "PrivateKeyPath": "path/to/private-key.pem"
  }
}

Run (http): dotnet run


⚙️ Configuration

Obtain credentials from APS Developer Portal:

  1. Create APS application with Automation API enabled → Get ClientId & ClientSecret
  2. Create Service Account → Generate RSA key pair → Get ServiceAccountId & KeyId
  3. Download private key as .pem file → Set path in PrivateKeyPath

📘 Usage

MCP Client Configuration

Visual Studio Code: See how to configure an MCP Server here

{
 "inputs": [],
  "servers": {
    "revit-automation-mcp": {
      "url": "http://localhost:6223",
      "type": "http"
    }
  }
}

Fluent API Example

// Model configuration (type-safe, compile-time validated)
var modelConfig = ModelConfiguration.Create()
    .WithRegion("US")
    .WithProject("project-guid")
    .WithModelGuid("model-guid")
    .WithToolName("link_models")
    .Save(true)
    .Configure();

// Tool-specific inputs (flexible dictionary)
var toolInputs = new Dictionary<string, object>
{
    { "modelName", "My Model" },
    { "linksToAdd", new[] { new { modelName = "Link1", modelGuid = "guid1" } } },
    { "linksToRemove", Array.Empty<object>() }
};

var result = await service.SubmitWorkItemAsync(modelConfig, toolInputs);

🛠️ Available Tools

| Tool | Description | |------|-------------| | create_model | Creates a new Revit model from template | | link_models | Adds/removes Revit model links |

Creating a Revit Model

revitmodel.json

{
  "region": "US",
  "projectGuid": "00000000-0000-0000-0000-000000000000",
  "modelGuid": "11111111-1111-1111-1111-111111111111",
  "toolName": "create_model",
  "save": false
}

toolinputs.json

{
  "enableWorksharing": true,
  "accountId": "00000000-0000-0000-0000-000000000000",
  "projectId": "00000000-0000-0000-0000-000000000000",
  "folderId": "urn:adsk.wipprod:fs.folder:co.example",
  "modelName": "NewModel.rvt"
}

Managing Model Links

revitmodel.json

{
  "region": "US",
  "projectGuid": "00000000-0000-0000-0000-000000000000",
  "modelGuid": "00000000-0000-0000-0000-000000000000",
  "toolName": "link_models",
  "save": true
}

toolinputs.json

{
  "region": "US",
  "projectGuid": "00000000-0000-0000-0000-000000000000",
  "linksToAdd": [
    {
      "modelName": "Architectural_Link.rvt",
      "modelGuid": "11111111-1111-1111-1111-111111111111"
    },
    {
      "modelName": "Structural_Link.rvt",
      "modelGuid": "22222222-2222-2222-2222-222222222222"
    }
  ],
  "linksToRemove": [
    {
      "modelName": "Old_Link.rvt",
      "modelGuid": "99999999-9999-9999-9999-999999999999"
    }
  ]
}

➕ Adding New Tools

1. In Tools/RevitAutomationTools.cs

[McpServerTool(Name = "my_tool")]
public async Task<WorkItemSubmissionResult> MyTool(...)
{
    var modelConfig = ModelConfiguration.Create()
        .WithRegion(region)
        .WithProject(projectGuid)
        .WithModelGuid(modelGuid)
        .WithToolName("my_tool")
        .Configure();
    
    var toolInputs = new Dictionary<string, object> { /* tool params */ };
    return await revitAutomationService.SubmitWorkItemAsync(modelConfig, toolInputs);
}

2. In your Revit AppBundle: add case for "my_tool". See how to add new tools here


Resources


License

This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.


Made with ❤️ for the AEC community | Vibe-coded with GitHub Copilot

Related Skills

View on GitHub
GitHub Stars10
CategoryAutomation
Updated7mo ago
Forks8

Languages

C#

Trust signals

86/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 low1 info
aps-sample-mcp-server-revit-automation — MCP Server: Install & Safety Check | SkillAgent