Skip to main content
Glama
latesh-munde

Devcon MCP Workshop 2026

by latesh-munde
README.md
# šŸš€ MCP Server with Autodesk Platform Services (APS)

![Node.js](https://img.shields.io/badge/Node.js-18+-green)
![MCP](https://img.shields.io/badge/Protocol-MCP-blue)
![License](https://img.shields.io/badge/License-MIT-yellow)
![Status](https://img.shields.io/badge/Status-Active-success)

---

## šŸ“Œ 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

```bash
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

Maintenance

ActivityInactive
ResponsivenessNo issues