# Kaseya BMS [Health: Active]

**Category:** 🎧 Support & Service Management  
**Repository:** https://github.com/WYRE-AI/kaseya-bms-mcp  
**GitHub Stars:** 0  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/kaseya-bms

## Description
MCP server for Kaseya BMS PSA — tickets, accounts, time entries, contracts.

## Tools
Capabilities this server exposes over MCP:

- **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.

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What Kaseya BMS MCP server does

The Kaseya BMS MCP server exposes selected Kaseya BMS PSA data and actions through MCP. Agents can retrieve tickets, accounts, contacts, contracts, time entries, service catalog items, and knowledge-base results. Ticket retrieval is available by ID, while ticket listing accepts an optional `$filter` and can prompt for a status selection when no filter is supplied.

The server also includes two write operations: creating a ticket and appending a note to an existing ticket. Both are treated as destructive actions and require confirmation. The available ticket-note action appends a note; the interactive ticket card’s note flow posts notes as internal-only.

## How it works

MCP clients invoke named tools rather than calling the Kaseya API directly. The server translates those requests to the Kaseya BMS PSA API and returns the resulting data to the client. Time-entry queries support predefined ranges of 24 hours, 7 days, or 30 days, as well as custom ranges and an all-records option.

If required choices or filters are missing, the Kaseya BMS MCP server uses MCP elicitation to ask the user for them. The same mechanism is used to confirm destructive operations before they run.

The `kaseya_bms_get_ticket` tool can render an interactive ticket card in MCP Apps hosts, including Claude Desktop and Claude web. Other hosts retain plain-JSON behavior. The card can be branded through runtime environment variables or `window.__BRAND__` injection, without rebuilding for a branding change. Changes to the UI source require regenerating the embedded bundle with `npm run build:ui`.

## Setup and configuration

Install dependencies with `npm install`, build with `npm run build`, and start the server with `npm start`. Set `KASEYA_BMS_TENANT_SUBDOMAIN` to the BMS tenant subdomain. Authentication requires either `KASEYA_BMS_API_TOKEN` or `KASEYA_BMS_K1_TOKEN`; both are secrets.

The default transport is stdio. Set `MCP_TRANSPORT=http` to run an HTTP server, and use `MCP_HTTP_PORT` to change the default port of 8080. A health endpoint is available at `/health` when running over HTTP. Docker deployment is also documented using port 8080 and the same tenant and credential variables.

For deployment behind the WYRE MCP Gateway, set `AUTH_MODE=gateway`. In that mode, credentials arrive in per-request HTTP headers for the tenant subdomain and either token. Each request receives an isolated server instance, preventing credentials from different tenants from being shared through process environment state.

## Tools and capabilities

- List tickets with an optional filter or selected status.
- Retrieve an individual ticket by ID.
- Create tickets after confirmation.
- Append notes to tickets after confirmation.
- List time entries for supported date ranges.
- List accounts, contacts, contracts, and service catalog items.
- Search the Kaseya knowledge base.

## Limitations and notes

The Kaseya BMS MCP server requires a tenant subdomain and one supported credential type. Write operations are not silent: ticket creation and note addition require confirmation. Interactive ticket cards are limited to MCP Apps hosts that support them; other clients receive the regular JSON result. The README specifically identifies Claude Desktop and Claude web as card-capable hosts, while client-specific setup for other applications is not described.

The server is licensed under Apache-2.0.

_Full upstream README: https://allmcps.com/mcp/kaseya-bms/readme_

