🚀 MCP Server with Autodesk Platform Services (APS)
📌 Overview
This project implements a Model Context Protocol (MCP) server with support for:
- Tool exposure for LLM clients (e.g., VS Code Copilot)
- External API integration
- Autodesk Platform Services (APS) connectivity
- Authentication flows (2-legged & 3-legged OAuth)
- Custom client + agent architecture
It represents a production-oriented agentic AI backend system.
🧠 Architecture
🔷 High-Level Flow
+------------------------+
| LLM Client (VSCode) |
| Copilot / Chat UI |
+-----------+------------+
|
v
+------------------------+
| MCP Server |
| (server.js / aps) |
+-----------+------------+
|
------------------------------------------------
| | |
v v v
+-------------+ +-------------+ +----------------+
| External | | APS APIs | | Custom Logic |
| APIs | | (OAuth) | | / Tools |
+-------------+ +-------------+ +----------------+
🔷 Agent Flow
User Prompt
↓
LLM decides tool
↓
MCP Server executes tool
↓
External API / APS call
↓
Structured response → LLM → User
📁 Project Structure
├── .vscode/
│ └── mcp.json # MCP configuration for VS Code client
│
├── node_modules/ # Installed dependencies
│
├── .env # Environment variables (API keys, secrets)
├── .gitignore # Git ignored files
│
├── agent.js # Agent logic (tool orchestration)
├── aps-server.js # APS integration server (OAuth + APIs)
├── client.js # Custom MCP client implementation
├── server.js # Core MCP server (tool definitions)
│
├── package.json # Project metadata & dependencies
├── package-lock.json # Dependency lock file
⚙️ Tech Stack
- Node.js (ES Modules)
- Model Context Protocol (MCP SDK)
- Zod (schema validation)
- HTTP Streaming Transport
- Autodesk Platform Services (APS)
🔑 Key Components
1. server.js
- Core MCP server
- Registers tools
- Handles client requests
2. aps-server.js
- Integrates Autodesk APIs
- Handles OAuth (2L + 3L)
- Secure API communication
3. agent.js
- Implements agentic behavior
- Decides which tools to call
- Enables multi-step workflows
4. client.js
- Custom MCP client
- Can simulate or replace VS Code client
5. .vscode/mcp.json
- Connects VS Code → MCP server
🚀 Getting Started
1️⃣ Install Dependencies
npm install
2️⃣ Setup Environment
Create .env file:
PORT=3000
# APS Credentials
APS_CLIENT_ID=your_client_id
APS_CLIENT_SECRET=your_client_secret
# External APIs
GEMINI_API_KEY=your_key
3️⃣ Run Server
node server.js
Expected output:
MCP server running at http://localhost:3000/mcp
4️⃣ Configure VS Code
Create:
.vscode/mcp.json
{
"servers": {
"devcon-workshop": {
"type": "http",
"url": "http://localhost:3000/mcp"
},
"devcon-aps": {
"type": "http",
"url": "http://localhost:3001/mcp"
}
}
}
5️⃣ Test Tools
In Copilot Chat:
#add 10 and 20
#greet John in spanish
What's the weather in London?
🧩 Tool Design Pattern
server.registerTool(
"tool_name",
{
description: "Tool description",
inputSchema: {
param: z.string()
}
},
async ({ param }) => ({
content: [{ type: "text", text: "Result" }]
})
);
🔐 Authentication
✅ 2-Legged OAuth
Server-to-server
No user interaction
✅ 3-Legged OAuth
User consent required
Fine-grained permissions
Recommended for production
🏗️ Production Considerations
🔹 Scalability
Stateless architecture
Horizontal scaling possible
🔹 Security
Use .env for secrets
Prefer 3LO for user data
🔹 Reliability
Input validation (Zod)
Structured responses
🔹 Observability Add logging for tool execution
Monitor API failures
🎯 Features
✔ MCP-compliant server
✔ External API integration
✔ APS connectivity
✔ Agent-based execution
✔ Custom client support
🔮 Future Enhancements
Dockerize the application
Deploy on Azure / AWS
Add database-backed tools
Implement caching layer
📜 License
MIT License
🙌 Acknowledgements
-
Autodesk Platform Services (APS)
https://autodesk-platform-services.github.io/mcp-devcon2026/ -
Model Context Protocol (MCP)
-
OpenAI / LLM ecosystem