Skip to main content
Glama

manage_intune_windows_apps

Deploy and manage Windows applications in Intune, including Win32, Microsoft Store, and Office 365 apps. Control app assignments, versions, and installation settings for enterprise devices.

Instructions

Manage Windows application deployment including Win32 apps, Microsoft Store apps, and Office 365 assignments.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesIntune Windows app management action
appIdNoApp ID for app-specific operations
appTypeNoWindows app type
nameNoApplication name
versionNoApplication version
assignmentGroupsNoTarget groups for app deployment
assignmentNoApp assignment configuration
appInfoNoApplication information

Implementation Reference

  • Core execution logic for the 'manage_intune_windows_apps' tool. Handles CRUD operations and deployments for Windows apps (Win32, Store, Office) in Microsoft Intune via Graph API endpoints under /deviceAppManagement/mobileApps.
    export async function handleIntuneWindowsApps( graphClient: Client, args: IntuneWindowsAppArgs ): Promise<{ content: { type: string; text: string }[] }> { let apiPath = ''; let result: any; switch (args.action) { case 'list': apiPath = '/deviceAppManagement/mobileApps'; let filter = ''; if (args.appType) { const odataType = args.appType === 'win32LobApp' ? '#microsoft.graph.win32LobApp' : args.appType === 'microsoftStoreForBusinessApp' ? '#microsoft.graph.microsoftStoreForBusinessApp' : args.appType === 'officeSuiteApp' ? '#microsoft.graph.officeSuiteApp' : args.appType === 'webApp' ? '#microsoft.graph.webApp' : args.appType === 'microsoftEdgeApp' ? '#microsoft.graph.microsoftEdgeApp' : ''; if (odataType) { filter = `@odata.type eq '${odataType}'`; } } if (filter) { apiPath += `?$filter=${filter}`; } result = await graphClient.api(apiPath).get(); break; case 'get': if (!args.appId) { throw new McpError(ErrorCode.InvalidParams, 'appId is required for get action'); } apiPath = `/deviceAppManagement/mobileApps/${args.appId}`; result = await graphClient.api(apiPath).get(); break; case 'deploy': if (!args.appId || !args.assignmentGroups) { throw new McpError(ErrorCode.InvalidParams, 'appId and assignmentGroups are required for deploy action'); } const assignments = args.assignmentGroups.map(groupId => ({ target: { '@odata.type': '#microsoft.graph.groupAssignmentTarget', groupId: groupId }, intent: args.assignment?.installIntent || 'available', settings: { '@odata.type': '#microsoft.graph.win32LobAppAssignmentSettings', notifications: 'showAll', restartSettings: null, installTimeSettings: null } })); apiPath = `/deviceAppManagement/mobileApps/${args.appId}/assign`; result = await graphClient.api(apiPath).post({ mobileAppAssignments: assignments }); break; case 'update': if (!args.appId) { throw new McpError(ErrorCode.InvalidParams, 'appId is required for update action'); } const updatePayload: any = {}; if (args.name) updatePayload.displayName = args.name; if (args.version) updatePayload.displayVersion = args.version; apiPath = `/deviceAppManagement/mobileApps/${args.appId}`; result = await graphClient.api(apiPath).patch(updatePayload); break; case 'remove': if (!args.appId) { throw new McpError(ErrorCode.InvalidParams, 'appId is required for remove action'); } apiPath = `/deviceAppManagement/mobileApps/${args.appId}`; result = await graphClient.api(apiPath).delete(); break; case 'sync_status': if (!args.appId) { throw new McpError(ErrorCode.InvalidParams, 'appId is required for sync_status action'); } // Get app installation status across devices apiPath = `/deviceAppManagement/mobileApps/${args.appId}/deviceStatuses`; result = await graphClient.api(apiPath).get(); break; default: throw new McpError(ErrorCode.InvalidParams, `Unknown action: ${args.action}`); } return { content: [ { type: 'text', text: `Windows App Management Result:\n${JSON.stringify(result, null, 2)}` } ] }; }
  • Type definition for tool input parameters (IntuneWindowsAppArgs), including action types and app deployment configurations.
    export interface IntuneWindowsAppArgs { action: 'list' | 'get' | 'deploy' | 'update' | 'remove' | 'sync_status'; appId?: string; appType?: 'win32LobApp' | 'microsoftStoreForBusinessApp' | 'webApp' | 'officeSuiteApp' | 'microsoftEdgeApp'; name?: string; version?: string; assignmentGroups?: string[]; assignment?: { groupIds: string[]; installIntent: 'available' | 'required' | 'uninstall' | 'availableWithoutEnrollment'; deliveryOptimizationPriority?: 'notConfigured' | 'foreground'; }; appInfo?: { displayName: string; description?: string; publisher: string; fileName?: string; setupFilePath?: string; installCommandLine?: string; uninstallCommandLine?: string; minimumSupportedOperatingSystem?: string; packageFilePath?: string; }; }
  • Tool metadata with description, title, and operational hints (annotations) for UI/tool integration.
    manage_intune_windows_apps: { description: "Manage Windows application deployment including Win32 apps, Microsoft Store apps, and Office 365 assignments.", title: "Intune Windows App Manager", annotations: { title: "Intune Windows App Manager", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DynamicEndpoints/m365-core-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server