MCP server for Kaseya BMS PSA — tickets, accounts, time entries, contracts.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Model Context Protocol (MCP) server for the Kaseya BMS PSA API. Exposes tickets, accounts, contacts, contracts, time entries, the service catalog, and the knowledge base to AI assistants.
| Tool | Description |
|---|---|
kaseya_bms_list_tickets | List tickets. Optional $filter; status pick if omitted. |
kaseya_bms_get_ticket | Get a ticket by id. |
kaseya_bms_create_ticket | Create a new ticket (destructive — confirmation required). |
kaseya_bms_add_ticket_note | Append a note to a ticket (destructive — confirmation required). |
kaseya_bms_list_time_entries | Time entries by date range (24h / 7d / 30d / custom / all). |
kaseya_bms_list_accounts | Accounts (clients). |
kaseya_bms_list_contacts | Contacts. |
kaseya_bms_list_contracts | Contracts. |
kaseya_bms_list_service_catalog | Service catalog items. |
kaseya_bms_search_knowledge_base | Knowledge base search. |
When the user omits required filters or runs a destructive action, the server uses MCP elicitation to prompt for choices or confirm.
kaseya_bms_get_ticket renders as an interactive card in MCP Apps hosts
(Claude Desktop/web) with an in-card "Add note" round-trip via
kaseya_bms_add_ticket_note (always posted internal-only); plain-JSON
behavior is unchanged in other hosts. The card is neutral by default and
brandable via window.__BRAND__ injection or MCP_BRAND_* env vars
(MCP_BRAND_NAME, MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR,
MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG, MCP_BRAND_TEXT) — no rebuild
needed. After editing ui/, regenerate the embedded bundle with
npm run build:ui.
| Variable | Required | Description |
|---|---|---|
KASEYA_BMS_TENANT_SUBDOMAIN | yes | Tenant subdomain (e.g. yourcompany) |
KASEYA_BMS_API_TOKEN | one of | BMS API token (secret) |
KASEYA_BMS_K1_TOKEN | one of | Kaseya One SSO token (secret) |
MCP_TRANSPORT | no | stdio (default) or http |
MCP_HTTP_PORT | no | HTTP listen port (default 8080) |
AUTH_MODE | no | env (default) or gateway |
Either KASEYA_BMS_API_TOKEN OR KASEYA_BMS_K1_TOKEN is required.
When deployed behind the WYRE MCP Gateway, set AUTH_MODE=gateway and the
server will read credentials from per-request HTTP headers:
X-Kaseya-BMS-Tenant-Subdomain (required)X-Kaseya-BMS-API-Token (or)X-Kaseya-BMS-K1-TokenEach request creates a fresh server instance with isolated credentials — no
cross-tenant process.env pollution.
Run as HTTP for testing:
Apache-2.0
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kaseya-bms)<a href="https://allmcps.com/mcp/kaseya-bms"><img src="https://allmcps.com/api/badge/kaseya-bms?style=directory" alt="Kaseya BMS on AllMCPs" /></a>