npx skills add ...
npx skills add autodesk-platform-services/skills --skill aps-mcp-server-gen
Scaffold a custom MCP (Model Context Protocol) server that integrates with Autodesk Platform Services (APS). Use this skill when the user wants to build, create, generate, or set up an MCP server for APS, Autodesk, Forma, or any Autodesk cloud API. Supports Node.js/TypeScript, .NET/C#, and Python. Handles STDIO (local) and Streamable HTTP (cloud) transport, and various APS auth patterns: 2-legged OAuth, Secure Service Accounts, and 3-legged OAuth.
npx skills add autodesk-platform-services/skills --skill aps-mcp-server-gen
This skill creates a fully working MCP server project that connects to Autodesk Platform Services (APS). Follow the steps below exactly.
Ask the user all three questions at once if they have not already answered:
If the user's request already makes one of the choices clear (e.g., "Python FastMCP server"), skip that question.
Before writing any files, load the appropriate references:
references/nodejs.mdreferences/dotnet.mdreferences/python.mdreferences/auth-2lo.mdreferences/auth-ssa.mdreferences/auth-3lo.mdreferences/transport-stdio.mdreferences/transport-http.mdreferences/testing.mdAsk or confirm where to create the project (default: ./aps-mcp-server in the current directory).
Create every file needed for a working project. Do not leave placeholder TODOs — generate complete, runnable code. Use the patterns from the reference files exactly.
| File | Purpose |
|---|---|
.env.example | All required env vars with placeholder values and comments |
README.md | Setup, run, MCP client config, and test instructions |
| Main server file | Language-specific entry point |
| Tool file(s) | At least one example APS tool (e.g., list OSS buckets) |
| Auth helper | Token acquisition logic for the chosen auth type |
| Test file(s) | Unit tests with mocked APS calls (see testing.md) |
package.json, tsconfig.json (if TypeScript), vitest dev dependency.csproj, appsettings.json, *.Tests project with xUnit + NSubstitutepyproject.toml (uv-managed), pytest + pytest-asyncio dev dependenciesAfter creating files, tell the user:
.env (which APS portal pages to visit for each credential)content and structuredContent in Node.js tools when the data could be consumed programmatically (e.g., by a UI component). Python FastMCP infers structured output automatically from return types.