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.
- Node.js
- APS application (must be of type Server-to-Server)
- Provisioned access to ACC
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
andemail
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
- 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
- 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 IDAPS_CLIENT_SECRET
- your APS application client secretSSA_ID
- your service account ID (theserviceAccountId
field from earlier)SSA_KEY_ID
- your private key ID (thekid
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"
- Run the Model Context Protocol Inspector:
npx @modelcontextprotocol/inspector
- Hit
Connect
to connect to the MCP server
- 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.
- Make sure you have enabled MCP servers in Visual Studio Code
- Create .vscode/mcp.json file in your workspace, and add the following JSON to it:
{
"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
- 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