Server data from the Official MCP Registry
MCP server for Kaseya BMS PSA — tickets, accounts, time entries, contracts.
MCP server for Kaseya BMS PSA — tickets, accounts, time entries, contracts.
This Kaseya BMS MCP server implements proper authentication and credential handling through environment variables and gateway headers, with appropriate tool scoping and destructive action protections. However, there are moderate concerns around input validation practices and potential information disclosure through error messages. The permissions align well with the server's purpose (API integration for PSA/ticketing system). Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 3 high severity).
3 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: KASEYA_BMS_TENANT_SUBDOMAIN
Environment variable: KASEYA_BMS_API_TOKEN
Environment variable: KASEYA_BMS_K1_TOKEN
Environment variable: MCP_TRANSPORT
Environment variable: AUTH_MODE
Environment variable: LOG_LEVEL
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-wyre-technology-kaseya-bms-mcp": {
"env": {
"AUTH_MODE": "your-auth-mode-here",
"LOG_LEVEL": "your-log-level-here",
"MCP_TRANSPORT": "your-mcp-transport-here",
"KASEYA_BMS_K1_TOKEN": "your-kaseya-bms-k1-token-here",
"KASEYA_BMS_API_TOKEN": "your-kaseya-bms-api-token-here",
"KASEYA_BMS_TENANT_SUBDOMAIN": "your-kaseya-bms-tenant-subdomain-here"
},
"args": [
"-y",
"@wyre-technology/kaseya-bms-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
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.
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 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
Apache-2.0
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.