Skip to content

Simple Model Context Protocol server built with Node.js, providing access to Autodesk Platform Services API, with fine-grained access control using Secure Service Accounts.

License

Notifications You must be signed in to change notification settings

autodesk-platform-services/aps-mcp-server-nodejs

Repository files navigation

aps-mcp-server-nodejs

Simple Model Context Protocol server built with Node.js, providing access to Autodesk Platform Services API, with fine-grained access control using Secure Service Accounts.

Screenshot

YouTube Video

Development

Prerequisites

Setup

Secure Service Account

Our MCP server will need a secure service account and a private key. Instead of implementing the logic in this code sample, we will use https://ssa-manager.autodesk.io:

  • Go to https://ssa-manager.autodesk.io, and log in with your APS client ID and secret
  • Create a new secure service account using the Create Account With Name: button; don't forget to specify the first name and last name
  • Make sure the new account is selected in the Accounts list
  • Make note of the serviceAccountId and email values under Account Details
  • Create a new private key using the Create Key button; a *.pem file will be automatically downloaded to your machine
  • Make sure the new private key is selected in the Keys list
  • Make note of the kid value under Key Details

Autodesk Construction Cloud

  • Make sure you've provisioned access to ACC for your APS application
  • Invite the secure service account (the email value from earlier) as a new member to your selected ACC projects

Server

  • Clone this repository
  • Install dependencies: yarn install
  • Create a .env file in the root folder of this project, and define the following environment variables:
    • APS_CLIENT_ID - your APS application client ID
    • APS_CLIENT_SECRET - your APS application client secret
    • SSA_ID - your service account ID (the serviceAccountId field from earlier)
    • SSA_KEY_ID - your private key ID (the kid field from earlier)
    • SSA_KEY_PATH - full path to your downloaded *.pem file
  • The .env file might look something like this:
APS_CLIENT_ID="AhH9..."
APS_CLIENT_SECRET="1FS4..."
SSA_ID="ZCU2TJH5PK8A5KQ9"
SSA_KEY_ID="8a4ee790-3378-44f3-bbab-5acb35ec35ce"
SSA_KEY_PATH="/Users/brozp/aps-mcp-server-nodejs/8a4ee790-3378-44f3-bbab-5acb35ec35ce.pem"

Usage

MCP Inspector

Claude Desktop

  • Make sure you have Claude Desktop installed
  • Create a Claude Desktop config file if you don't have one yet:
    • On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Add this MCP server to the config, using the absolute path of the server.js file on your system, for example:
{
    "mcpServers": {
        "aps-mcp-server-nodejs": {
            "command": "node",
            "args": [
                "/path/to/aps-mcp-server-nodejs/server.js"
            ]
        }
    }
}
  • Open Claude Desktop, and try some of the following test prompt:
    • What ACC projects do I have access to?
    • Give me a visual dashboard of all issues in project XYZ

For more details on how to add MCP servers to Claude Desktop, see the official documentation.

Visual Studio Code & GitHub Copilot

{
    "servers": {
        "aps-mcp-server-nodejs": {
            "type": "stdio",
            "command": "node",
            "args": [
                "/path/to/aps-mcp-server-nodejs/server.js"
            ]
        }
    }
}

For more details on how to add MCP servers to Visual Studio Code, see the documentation

Cursor

  • Create .cursor/mcp.json file in your workspace, and add the following JSON to it:
{
  "mcpServers": {
    "aps-mcp-server-nodejs": {
      "command": "node",
      "args": [
        "/path/to/aps-mcp-server-nodejs/server.js"
      ]
    }
  }
}

For more details on how to add MCP servers to Cursor, see the documentation

About

Simple Model Context Protocol server built with Node.js, providing access to Autodesk Platform Services API, with fine-grained access control using Secure Service Accounts.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published