Back to Discover

kaseya-bms-mcp

connector

wyre-technology

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

View on GitHub
0 starsSynced Aug 13, 2026

Install to Claude Code

/plugin marketplace add wyre-technology/kaseya-bms-mcp

README

Kaseya BMS MCP Server

Release License: Apache 2.0

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.

Tools

ToolDescription
kaseya_bms_list_ticketsList tickets. Optional $filter; status pick if omitted.
kaseya_bms_get_ticketGet a ticket by id.
kaseya_bms_create_ticketCreate a new ticket (destructive — confirmation required).
kaseya_bms_add_ticket_noteAppend a note to a ticket (destructive — confirmation required).
kaseya_bms_list_time_entriesTime entries by date range (24h / 7d / 30d / custom / all).
kaseya_bms_list_accountsAccounts (clients).
kaseya_bms_list_contactsContacts.
kaseya_bms_list_contractsContracts.
kaseya_bms_list_service_catalogService catalog items.
kaseya_bms_search_knowledge_baseKnowledge base search.

When the user omits required filters or runs a destructive action, the server uses MCP elicitation to prompt for choices or confirm.

Interactive Ticket Card (MCP Apps)

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.

Configuration

Environment-variable mode (default)

VariableRequiredDescription
KASEYA_BMS_TENANT_SUBDOMAINyesTenant subdomain (e.g. yourcompany)
KASEYA_BMS_API_TOKENone ofBMS API token (secret)
KASEYA_BMS_K1_TOKENone ofKaseya One SSO token (secret)
MCP_TRANSPORTnostdio (default) or http
MCP_HTTP_PORTnoHTTP listen port (default 8080)
AUTH_MODEnoenv (default) or gateway

Either KASEYA_BMS_API_TOKEN OR KASEYA_BMS_K1_TOKEN is required.

Gateway mode

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-Token

Each request creates a fresh server instance with isolated credentials — no cross-tenant process.env pollution.

Local development

npm install
npm run build
KASEYA_BMS_TENANT_SUBDOMAIN=yourcompany \
  KASEYA_BMS_API_TOKEN=... \
  npm start

Run as HTTP for testing:

MCP_TRANSPORT=http npm start
curl http://localhost:8080/health

Docker

docker build -t kaseya-bms-mcp .
docker run --rm -p 8080:8080 \
  -e KASEYA_BMS_TENANT_SUBDOMAIN=yourcompany \
  -e KASEYA_BMS_API_TOKEN=... \
  kaseya-bms-mcp

License

Apache-2.0

Rendered live from wyre-technology/kaseya-bms-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
oci packageInstall via oci (stdio transport)mcp-serverghcr.io/wyre-technology/kaseya-bms-mcp:v1.1.3

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.