immybot-mcp
Official@wyre-technology/immybot-mcp
MCP server for ImmyBot - Windows endpoint management and software deployment automation.
Features
🔐 OAuth 2.0 Authentication - Microsoft Entra ID client credentials
🏢 Multi-tenant Support - Per-instance subdomain configuration
🧭 Decision Tree Navigation - Organized tool discovery by domain
💻 Comprehensive Coverage - Computers, software, deployments, scripts, tenants, maintenance sessions, tasks
⚡ Gateway Ready - Stateless per-request operation for WYRE MCP Gateway
🚀 Docker Deployment - Container-ready with health checks
📊 Structured Logging - Detailed operation tracking
Quick Start
Docker (Recommended)
docker run -d \
--name immybot-mcp \
-p 8080:8080 \
-e AUTH_MODE=gateway \
-e MCP_HTTP_PORT=8080 \
-e LOG_LEVEL=info \
ghcr.io/wyre-technology/immybot-mcp:latestDirect Installation
npm install @wyre-technology/immybot-mcp
npx @wyre-technology/immybot-mcpNavigation
The server uses decision-tree navigation to organize tools by domain:
Start →
immybot_navigate→ Choose domainDomain tools → Domain-specific operations
Return →
immybot_back→ Main navigation
Available Domains
computers - Device and endpoint management
software - Application and package management
deployments - Software deployment configuration
scripts - PowerShell script execution and management
tenants - Client organization management
maintenance_sessions - Device maintenance and state reconciliation
tasks - Background operation monitoring
Authentication
ImmyBot uses OAuth 2.0 with Microsoft Entra ID:
Required Configuration
Field | Description | Example |
| ImmyBot instance subdomain |
|
| Microsoft Entra tenant ID |
|
| Application (client) ID |
|
| Client secret value |
|
Setup Steps
Register Enterprise Application in Microsoft Entra ID
Grant ImmyBot API permissions to the application
Create client secret for the application
Configure application in ImmyBot settings
OAuth scope: api://{client_id}/.default
Usage Examples
1. Navigate to Computers Domain
// Start navigation
await callTool('immybot_navigate', { domain: 'computers' });
// List computers
await callTool('immybot_computers_list', {
tenantId: 1,
isOnline: true
});
// Get computer details
await callTool('immybot_computers_get', { computerId: 123 });2. Software Management
// Navigate to software domain
await callTool('immybot_navigate', { domain: 'software' });
// Search for software
await callTool('immybot_software_search', { query: 'Chrome' });
// Install software (stages for maintenance session)
await callTool('immybot_software_install', {
softwareId: 456,
computerIds: [123, 124, 125],
autoUpdate: true
});3. Maintenance Sessions
// Navigate to maintenance sessions
await callTool('immybot_navigate', { domain: 'maintenance_sessions' });
// Start maintenance session (reconciles deployments)
await callTool('immybot_maintenance_sessions_start', {
computerId: 123,
sessionType: 'Manual'
});
// Check session status
await callTool('immybot_maintenance_sessions_get', { sessionId: 789 });Two-Step Deployment Model
⚠️ Important: ImmyBot uses a two-step deployment workflow:
Configure desired state - Software installations create deployments
Reconcile via maintenance session - Sessions apply the desired state
// Step 1: Stage software installation
await callTool('immybot_software_install', {
softwareId: 123,
computerIds: [456]
});
// ↑ This creates a deployment, does NOT install immediately
// Step 2: Reconcile state
await callTool('immybot_maintenance_sessions_start', {
computerId: 456
});
// ↑ This runs the maintenance session to actually install softwareEnvironment Variables
Gateway Mode (Docker)
Variable | Default | Description |
|
| Set to |
|
| Transport mode ( |
|
| HTTP server port |
|
| Logging level ( |
Direct Mode (CLI)
Variable | Required | Description |
| ✅ | ImmyBot instance subdomain |
| ✅ | Microsoft Entra tenant ID |
| ✅ | Application client ID |
| ✅ | Client secret |
Tools Reference
Navigation Tools
Tool | Description |
| Navigate to domain |
| Show current state |
| Return to main menu |
Computers Tools
Tool | Description |
| List computers with filtering |
| Get computer details |
| Search computers by name |
| Get hardware/software inventory |
| Create computer record |
| List computer deployments |
| Force agent check-in |
Software Tools
Tool | Description |
| List global software packages |
| List all software (global + tenant) |
| Get software details |
| Search software by name |
| List software versions |
| Get latest version |
| List categories |
| List publishers |
| Stage software installation |
| Get installation statistics |
Error Handling
The server provides structured error responses:
{
"content": [{"type": "text", "text": "Error: Authentication failed"}],
"isError": true
}Common error types:
Authentication errors - Invalid credentials or expired tokens
Not found errors - Resource doesn't exist
Validation errors - Missing or invalid parameters
Rate limit errors - Too many requests
Server errors - Internal ImmyBot API issues
Development
Build from Source
git clone https://github.com/wyre-technology/immybot-mcp.git
cd immybot-mcp
npm install
npm run build
npm startTesting
npm testDocker Build
docker build -t immybot-mcp --build-arg NODE_AUTH_TOKEN=$GITHUB_TOKEN .Support
License
Apache-2.0 - see LICENSE for details.
This server cannot be installed
Maintenance
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/wyre-technology/immybot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server