APS MCP Server

import { z } from "zod"; import { DataManagementClient } from "@aps_sdk/data-management"; import { getAccessToken } from "./common.js"; import type { Tool } from "./common.js"; const schema = { projectId: z.string().nonempty(), itemId: z.string().nonempty() }; export const getItemVersions: Tool<typeof schema> = { title: "get-item-versions", description: "List all versions of a document in Autodesk Construction Cloud", schema, callback: async ({ projectId, itemId }) => { // TODO: add pagination support const accessToken = await getAccessToken(["data:read"]); const dataManagementClient = new DataManagementClient(); const versions = await dataManagementClient.getItemVersions(projectId, itemId, { accessToken }); if (!versions.data) { throw new Error("No versions found"); } return { content: versions.data.map((version) => ({ type: "text", text: JSON.stringify(version) })) }; } };