The Autotask MCP Server provides AI assistants with structured access to Kaseya Autotask PSA data and operations through 35+ tools for comprehensive business management.
Core Capabilities:
Company Management: Search, create, and update companies with detailed contact information, filtering, and active status control
Contact Management: Search and create contacts with company association, personal details, and job titles
Ticket Operations: Search with advanced filters (status, assignment, company, unassigned), retrieve detailed information, create tickets, and manage notes and attachments
Time Tracking: Create time entries for tickets or tasks with hours worked, dates, and detailed notes
Project Management: Search and create projects with status tracking, timelines, estimates, and manager assignments; manage project tasks and notes
Resource Management: Search users/technicians by name, email, type, or active status
Financial Operations: Manage expense reports, quotes, invoices, and contracts with comprehensive search and creation capabilities
Asset Management: Search configuration items (IT assets) by company, product, or active status
Note Management: Create, search, and retrieve notes for tickets, projects, and companies with configurable publish levels
Attachment Handling: Search and retrieve ticket attachments with optional base64 encoded file data
Connectivity Testing: Test API connection to verify credentials
Key Features:
Automatic ID-to-name mapping for enhanced readability
Smart caching with 30-minute TTL for improved performance
Pagination support with complete data retrieval
Dual transport support (stdio for local/desktop, HTTP for remote/server deployments)
Enterprise-grade security with Autotask API credentials
Multiple deployment options including one-click MCPB bundle for Claude Desktop, CLI, Docker, and from-source development
Offers containerized deployment options for the Autotask MCP server with production and development configurations
Provides a Node.js implementation for accessing Autotask PSA data, with support for companies, contacts, tickets, and time entries management
Enables structured access to Kaseya Autotask PSA data and operations, including companies, contacts, tickets, time entries with comprehensive CRUD operations and advanced search capabilities
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Autotask MCP Servershow me open tickets for Acme Corp from this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Autotask MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with structured access to Kaseya Autotask PSA data and operations.
Quick Start
Claude Desktop โ download, open, done:
Download
autotask-mcp.mcpbfrom the latest releaseOpen 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):
See Installation for Docker and from-source methods.
Related MCP server: Tiny TODO MCP
Features
๐ MCP Protocol Compliance: Full support for MCP resources and tools
๐ ๏ธ Comprehensive API Coverage: 35 tools spanning companies, contacts, tickets, projects, 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.mcpbfrom the latest releaseOpen 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:
Option 2: Docker
Local (stdio โ for Claude Desktop or Claude Code):
Remote (HTTP Streamable โ for server deployments):
Clients connect to http://host:8080/mcp using MCP Streamable HTTP transport.
Option 3: From Source (Development)
Then point your MCP client at dist/entry.js:
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:
๐ก Pro Tip: Copy the above content to a .env file in your project root.
Autotask API Setup
Create API User: In Autotask, create a dedicated API user with appropriate permissions
Generate Secret: Generate an API secret for the user
Integration Code: Obtain your integration code from Autotask
Permissions: Ensure the API user has read/write access to required entities
For detailed setup instructions, see the Autotask API documentation.
Usage
Command Line
MCP Client Configuration
See Installation for all setup methods.
API Reference
Resources
Resources provide read-only access to Autotask data:
autotask://companies- List all companiesautotask://companies/{id}- Get specific companyautotask://contacts- List all contactsautotask://contacts/{id}- Get specific contactautotask://tickets- List all ticketsautotask://tickets/{id}- Get specific ticketautotask://time-entries- List time entries
Tools
The server provides 35 tools for interacting with Autotask:
Company Operations
autotask_search_companies- Search companies with filtersautotask_create_company- Create new companyautotask_update_company- Update existing company
Contact Operations
autotask_search_contacts- Search contacts with filtersautotask_create_contact- Create new contact
Ticket Operations
autotask_search_tickets- Search tickets with filtersautotask_get_ticket_details- Get full ticket details by IDautotask_create_ticket- Create new ticket
Time Entry Operations
autotask_create_time_entry- Log time entry
Project Operations
autotask_search_projects- Search projects with filtersautotask_create_project- Create new project
Resource Operations
autotask_search_resources- Search resources (technicians/users)
Note Operations
autotask_get_ticket_note/autotask_search_ticket_notes/autotask_create_ticket_noteautotask_get_project_note/autotask_search_project_notes/autotask_create_project_noteautotask_get_company_note/autotask_search_company_notes/autotask_create_company_note
Attachment Operations
autotask_get_ticket_attachment- Get ticket attachmentautotask_search_ticket_attachments- Search ticket attachments
Financial Operations
autotask_get_expense_report/autotask_search_expense_reports/autotask_create_expense_reportautotask_get_quote/autotask_search_quotes/autotask_create_quoteautotask_search_invoices- Search invoicesautotask_search_contracts- Search contracts
Configuration Items
autotask_search_configuration_items- Search configuration items (assets)
Task Operations
autotask_search_tasks- Search project tasksautotask_create_task- Create project task
Utility Operations
autotask_test_connection- Test API connectivity
Example Tool Usage
ID-to-Name Mapping
The Autotask MCP server includes intelligent ID-to-name mapping that automatically resolves company and resource IDs to human-readable names, making API responses much more useful for AI assistants and human users.
Automatic Enhancement
All search and detail tools automatically include an _enhanced field with resolved names:
How It Works
ID-to-name mapping is applied automatically to all search and detail tool results. No additional tools are needed โ the _enhanced field is added transparently to every response that contains company or resource IDs.
Performance Features
Smart Caching: Names are cached for 30 minutes to reduce API calls
Bulk Operations: Efficient batch lookups for multiple IDs
Graceful Fallback: Returns "Unknown Company (123)" if lookup fails
Parallel Processing: Multiple mappings resolved simultaneously
Testing Mapping
Test the mapping functionality:
For detailed mapping documentation, see docs/mapping.md.
HTTP Transport
The server supports the MCP Streamable HTTP transport for remote deployments (e.g., Docker, cloud hosting). Set MCP_TRANSPORT=http to enable it.
The HTTP transport exposes:
POST /mcpโ MCP Streamable HTTP endpointGET /healthโ Health check (returns{"status":"ok"})
Clients must send requests to /mcp with Accept: application/json, text/event-stream headers per the MCP Streamable HTTP specification.
Docker Deployment
The Docker image uses HTTP transport by default (port 8080) with a built-in health check.
Using Pre-built Image from GitHub Container Registry
The Docker image defaults to HTTP transport on port 8080 โ suitable for remote/server deployments where clients connect over the network.
For stdio usage with Claude Desktop, see Installation Option 2.
Quick Start (From Source)
Production Deployment
Development Mode
Development
Setup
Available Scripts
Project Structure
Testing
Running Tests
Test Categories
Unit Tests: Service layer and utility functions
Integration Tests: MCP protocol compliance
API Tests: Autotask API integration (requires credentials)
Coverage Requirements
Minimum 80% coverage for all metrics
100% coverage for critical paths (authentication, data handling)
Configuration Reference
Environment Variables
Variable | Required | Default | Description |
| โ | - | Autotask API username (email) |
| โ | - | Autotask API secret key |
| โ | - | Autotask integration code |
| โ | Auto-detected | Autotask API endpoint URL |
| โ |
| MCP server name |
| โ |
| Transport type ( |
| โ |
| HTTP transport port |
| โ |
| HTTP transport bind address |
| โ |
| Logging level |
| โ |
| Log output format |
| โ |
| Node.js environment |
Logging Levels
error: Only error messageswarn: Warnings and errorsinfo: General information, warnings, and errorsdebug: Detailed debugging information
Log Formats
simple: Human-readable console outputjson: Structured JSON output (recommended for production)
Troubleshooting
Common Issues
Authentication Errors
Solution: Ensure all required environment variables are set correctly.
Connection Timeouts
Solutions:
Check network connectivity
Verify API endpoint URL
Confirm API user has proper permissions
Permission Denied
Solution: Review Autotask API user permissions and security level settings.
Debug Mode
Enable debug logging for detailed troubleshooting:
Health Checks
Test server connectivity:
MCP Client Issues
Problem: MCP server not appearing in Claude Desktop Solutions:
Check configuration file syntax (valid JSON)
Verify file path in the configuration
Ensure environment variables are set correctly
Restart Claude Desktop completely
Problem: "Invalid JSON-RPC message: [dotenv@...] injecting env" / Server disconnected
Cause: The autotask-node library calls dotenv.config() at module load time. dotenv v17+ writes status messages via console.log to stdout, which corrupts the MCP stdio JSON-RPC channel.
Solution: Ensure you're using dist/entry.js (not dist/index.js) as the entry point. The entry wrapper redirects console.log to stderr before any libraries load.
Problem: Slow responses Solutions:
Check network connectivity to Autotask API
Enable debug logging (
LOG_LEVEL=debug) to identify bottlenecksThe server caches company/resource names for 30 minutes automatically
Security Best Practices
Store credentials in environment variables, not directly in config files
Limit Autotask API user permissions to the minimum required
Rotate API credentials regularly
For Docker deployments, use secrets management rather than plain environment variables
Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Guidelines
Follow TypeScript best practices
Maintain test coverage above 80%
Use conventional commit messages
Update documentation for API changes
Add tests for new features
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributor License Agreement
By submitting a pull request, you agree to the terms of our Contributor License Agreement. This ensures that contributions can be properly licensed and that you have the right to submit the code.
Contributors
Avatar | Name | Contributions |
Maintainer | ||
CLI bin fix |
Support
๐ Documentation
๐ Issue Tracker
๐ฌ Discussions
Acknowledgments
Model Context Protocol by Anthropic
Autotask REST API by Kaseya
autotask-node library
Built with โค๏ธ for the Autotask and AI community