Autotask MCP Server

Give your AI assistant direct access to Autotask. Search tickets, create time entries, look up companies, manage projects β all through natural language. No more copy-pasting between browser tabs and chat windows.
This is a Model Context Protocol (MCP) server that connects Claude (or any MCP-compatible AI) to your Autotask PSA environment. Your AI assistant gets 101 tools covering the operations MSP teams use daily: ticket triage, time logging, company lookups, project management, billing review, and more.
If you run an MSP on Autotask and you're tired of the context-switching tax, this is for you.
Part of the MSP Claude Plugins ecosystem β a growing suite of AI integrations for the MSP stack including Datto RMM, IT Glue, HaloPSA, ConnectWise Automate, NinjaOne, Huntress, and more. Built by MSPs, for MSPs.
One-Click Deployment


Note β no GitHub Packages token required. Unlike most WYRE MCP servers,
autotask-mcp does not depend on a private @wyre-ai/* package on
GitHub Packages. Its only WYRE dependency is the autotask-node SDK, declared
as a git dependency on the public WYRE-AI/autotask-node repo, which
npm install resolves anonymously. The DigitalOcean one-click deploy therefore
works without any NODE_AUTH_TOKEN/GITHUB_TOKEN build variable.
Quick Start
Claude Desktop β download, open, done:
- Download
autotask-mcp.mcpb from the latest release
- Open the file (double-click or drag into Claude Desktop)
- Enter your Autotask credentials when prompted (Username, Secret, Integration Code)
No terminal, no JSON editing, no Node.js install required.
Claude Code (CLI):
claude mcp add autotask-mcp \
-e AUTOTASK_USERNAME=your-user@company.com \
-e AUTOTASK_SECRET=your-secret \
-e AUTOTASK_INTEGRATION_CODE=your-code \
-- npx -y github:WYRE-AI/autotask-mcp
See Installation for Docker and from-source methods.
Features
- π MCP Protocol Compliance: Full support for MCP resources and tools
- π΄ Interactive Ticket Card (MCP Apps):
autotask_get_ticket_details renders as an interactive card in MCP Apps hosts (Claude Desktop/web) with an in-card "Add note" round-trip; neutral theme by default, brandable via MCP_BRAND_* env vars; plain-JSON behavior is unchanged in other hosts
- π οΈ Comprehensive API Coverage: 101 tools spanning companies, contacts, tickets, projects, billing items, time entries, notes, attachments, and more
- π Advanced Search: Powerful search capabilities with filters across all entities
- π CRUD Operations: Create, read, update operations for core Autotask entities
- π ID-to-Name Mapping: Automatic resolution of company and resource IDs to human-readable names
- β‘ Intelligent Caching: Smart caching system for improved performance and reduced API calls
- π Secure Authentication: Enterprise-grade API security with Autotask credentials
- π Dual Transport: Supports both stdio (local) and HTTP Streamable (remote/Docker) transports
- π¦ MCPB Packaging: One-click installation via MCP Bundle for desktop clients
- π³ Docker Ready: Containerized deployment with HTTP transport and health checks
- π Structured Logging: Comprehensive logging with configurable levels and formats
- π§ͺ Test Coverage: Comprehensive test suite with 80%+ coverage
Table of Contents
Installation
Option 1: MCPB Bundle (Claude Desktop)
The simplest method β no terminal, no JSON editing, no Node.js install required.
- Download
autotask-mcp.mcpb from the latest release
- Open the file (double-click or drag into Claude Desktop)
- Enter your Autotask credentials when prompted (Username, Secret, Integration Code)
For Claude Code (CLI), one command:
claude mcp add autotask-mcp \
-e AUTOTASK_USERNAME=your-user@company.com \
-e AUTOTASK_SECRET=your-secret \
-e AUTOTASK_INTEGRATION_CODE=your-code \
-- npx -y github:WYRE-AI/autotask-mcp
Option 2: Docker
Local (stdio β for Claude Desktop or Claude Code):
{
"mcpServers": {
"autotask": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "MCP_TRANSPORT=stdio",
"-e", "AUTOTASK_USERNAME=your-user@company.com",
"-e", "AUTOTASK_SECRET=your-secret",
"-e", "AUTOTASK_INTEGRATION_CODE=your-code",
"--entrypoint", "node",
"ghcr.io/wyre-ai/autotask-mcp:latest",
"dist/entry.js"
]
}
}
}
Remote (HTTP Streamable β for server deployments):
docker run -d \
--name autotask-mcp \
-p 8080:8080 \
-e AUTOTASK_USERNAME="your-user@company.com" \
-e AUTOTASK_SECRET="your-secret" \
-e AUTOTASK_INTEGRATION_CODE="your-code" \
--restart unless-stopped \
ghcr.io/wyre-ai/autotask-mcp:latest
# Verify
curl http://localhost:8080/health
Clients connect to http://host:8080/mcp using MCP Streamable HTTP transport.
Gateway Mode (for MCP Gateway deployments):
When deploying behind an MCP Gateway that injects credentials via HTTP headers:
docker run -d \
--name autotask-mcp \
-p 8080:8080 \
-e AUTH_MODE=gateway \
--restart unless-stopped \
ghcr.io/wyre-ai/autotask-mcp:latest
The gateway injects credentials via headers:
X-API-Key: Autotask username
X-API-Secret: Autotask secret
X-Integration-Code: Autotask integration code
X-Impersonation-Resource-Id: (optional) Autotask resource ID to act on behalf of
See Gateway Mode for details.
Option 3: From Source (Development)
git clone https://github.com/WYRE-AI/autotask-mcp.git
cd autotask-mcp
npm ci && npm run build
Then point your MCP client at dist/entry.js:
{
"mcpServers": {
"autotask": {
"command": "node",
"args": ["/path/to/autotask-mcp/dist/entry.js"],
"env": {
"AUTOTASK_USERNAME": "your-user@company.com",
"AUTOTASK_SECRET": "your-secret",
"AUTOTASK_INTEGRATION_CODE": "your-code"
}
}
}
}
Prerequisites
- Valid Autotask API credentials (API user email, secret, integration code)
- MCP-compatible client (Claude Desktop, Claude Code, etc.)
- Docker (for Option 2) or Node.js 18+ (for Option 3)
Configuration
Environment Variables
Create a .env file with your configuration:
# Required Autotask API credentials (Local Mode)
AUTOTASK_USERNAME=your-api-user@example.com
AUTOTASK_SECRET=your-secret-key
AUTOTASK_INTEGRATION_CODE=your-integration-code
# Optional configuration
# AUTOTASK_API_URL is auto-detected from AUTOTASK_USERNAME via Autotask's
# unauthenticated zoneInformation endpoint on first connect. Only set this
# explicitly to override auto-detection (e.g. for an on-prem proxy).
# AUTOTASK_API_URL=https://webservices2.autotask.net/atservicesrest/
MCP_SERVER_NAME=autotask-mcp
# Authentication mode
AUTH_MODE=env # env (local), gateway (hosted)
# Transport (stdio for local/desktop, http for remote/Docker)
MCP_TRANSPORT=stdio # stdio, http
MCP_HTTP_PORT=8080 # HTTP transport port (only used when MCP_TRANSPORT=http)
MCP_HTTP_HOST=0.0.0.0 # HTTP transport bind address
# Logging
LOG_LEVEL=info # error, warn, info, debug
LOG_FORMAT=simple # simple, json
# Search-result name enrichment
# Max concurrent Autotask API calls used to resolve company/resource names on
# search results. Kept low to stay under Autotask's per-integration
# concurrent-thread limit (raising it risks HTTP 429 "thread threshold").
AUTOTASK_ENHANCE_CONCURRENCY=3
# Environment
NODE_ENV=production
Gateway Mode
When deployed behind an MCP Gateway (e.g., mcp.wyre.ai), the server operates in gateway mode where credentials are injected via HTTP headers on each request.
Enable Gateway Mode:
AUTH_MODE=gateway
MCP_TRANSPORT=http
Expected Headers: