Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者による説明(英語の原文)
MCP server for Kaseya BMS PSA — tickets, accounts, time entries, contracts.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
KASEYA_BMS_TENANT_SUBDOMAIN, KASEYA_BMS_API_TOKEN, KASEYA_BMS_K1_TOKEN, MCP_TRANSPORT, AUTH_MODE, LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"kaseya-bms": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KASEYA_BMS_TENANT_SUBDOMAIN",
"-e",
"KASEYA_BMS_API_TOKEN",
"-e",
"KASEYA_BMS_K1_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/kaseya-bms-mcp:v1.1.4"
],
"env": {
"KASEYA_BMS_TENANT_SUBDOMAIN": "your-value",
"KASEYA_BMS_API_TOKEN": "your-value",
"KASEYA_BMS_K1_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add kaseya-bms --env KASEYA_BMS_TENANT_SUBDOMAIN=your-value --env KASEYA_BMS_API_TOKEN=your-value --env KASEYA_BMS_K1_TOKEN=your-value --env MCP_TRANSPORT=your-value --env AUTH_MODE=your-value --env LOG_LEVEL=your-value -- docker run -i --rm -e KASEYA_BMS_TENANT_SUBDOMAIN -e KASEYA_BMS_API_TOKEN -e KASEYA_BMS_K1_TOKEN -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/kaseya-bms-mcp:v1.1.4動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"kaseya-bms": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KASEYA_BMS_TENANT_SUBDOMAIN",
"-e",
"KASEYA_BMS_API_TOKEN",
"-e",
"KASEYA_BMS_K1_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/kaseya-bms-mcp:v1.1.4"
],
"env": {
"KASEYA_BMS_TENANT_SUBDOMAIN": "your-value",
"KASEYA_BMS_API_TOKEN": "your-value",
"KASEYA_BMS_K1_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"kaseya-bms": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KASEYA_BMS_TENANT_SUBDOMAIN",
"-e",
"KASEYA_BMS_API_TOKEN",
"-e",
"KASEYA_BMS_K1_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/kaseya-bms-mcp:v1.1.4"
],
"env": {
"KASEYA_BMS_TENANT_SUBDOMAIN": "your-value",
"KASEYA_BMS_API_TOKEN": "your-value",
"KASEYA_BMS_K1_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MCP_TRANSPORT envAUTH_MODE envLOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント wyre-technology で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:KASEYA_BMS_TENANT_SUBDOMAIN, KASEYA_BMS_API_TOKEN, KASEYA_BMS_K1_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.4)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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.
Copy .env.example. Stdio and AUTH_MODE=env read the Kaseya BMS variables. Gateway mode does not.
| Variable | Required | Description |
|---|---|---|
KASEYA_BMS_TENANT_SUBDOMAIN | For stdio and AUTH_MODE=env | Tenant subdomain (e.g. yourcompany) |
KASEYA_BMS_API_TOKEN | One of, for stdio and AUTH_MODE=env | BMS API token |
KASEYA_BMS_K1_TOKEN | One of, for stdio and AUTH_MODE=env | Kaseya One SSO token |
MCP_TRANSPORT | No | stdio (default) or http |
AUTH_MODE | No | env (default) or gateway. Gateway mode requires X-Kaseya-BMS-Tenant-Subdomain plus X-Kaseya-BMS-API-Token or X-Kaseya-BMS-K1-Token on each /mcp request and never falls back to KASEYA_BMS_*. |
CONDUIT_S2S_SECRET | Yes for HTTP | Service-to-service secret. The HTTP server logs an error and exits non-zero when this is empty or a known placeholder. Compose will not start without it. Never commit a real value. Generate one with openssl rand -hex 32. |
MCP_ALLOW_INSECURE_DEV | No | Set to 1 only for local development to start HTTP without CONDUIT_S2S_SECRET. The process logs a warning, does not enforce X-Gateway-S2S, and binds 127.0.0.1 only. A non-loopback MCP_HTTP_HOST refuses startup. A known placeholder secret is still refused. |
MCP_HTTP_HOST | No | Bind address when a real CONDUIT_S2S_SECRET is set. Unset keeps 0.0.0.0, which is what the container image sets, so container deploys stay on every interface inside the container. Without a secret the dev bypass binds 127.0.0.1 instead. |
MCP_HTTP_PORT | No | HTTP port. Defaults to 8080. |
/health stays unauthenticated and does not read credentials. The stdio transport does not use CONDUIT_S2S_SECRET.
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S. The value is t= ,v1= , where v1 is HMAC-SHA256 of the exact string t= keyed by CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header returns 401. The secret is never written to logs.
import { createHmac } from "node:crypto";
const t = Math.floor(Date.now() / 1000); const v1 = createHmac("sha256", process.env.CONDUIT_S2S_SECRET) .update(t=${t}) .digest("hex"); const xGatewayS2s = t=${t},v1=${v1};
In AUTH_MODE=gateway, /mcp also requires X-Kaseya-BMS-Tenant-Subdomain and either X-Kaseya-BMS-API-Token or X-Kaseya-BMS-K1-Token. Those headers are the only credential source for that request. A request missing them returns 401 and does not read KASEYA_BMS_* from the environment. Each request creates a fresh server instance with isolated credentials.
The checked-in Compose service is gateway mode. It publishes 127.0.0.1:8080:8080, requires CONDUIT_S2S_SECRET, and does not set KASEYA_BMS_TENANT_SUBDOMAIN, KASEYA_BMS_API_TOKEN, KASEYA_BMS_K1_TOKEN, or env_file. The image build reads GitHub Packages credentials from the npmrc build secret (the repo .npmrc only sets the registry).
CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" docker compose up --build
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses KASEYA_BMS_*:
docker build -t kaseya-bms-mcp .
docker run --rm \ -e CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" \ -e AUTH_MODE=env \ -e KASEYA_BMS_TENANT_SUBDOMAIN=yourcompany \ -e KASEYA_BMS_API_TOKEN=... \ -p 127.0.0.1:8080:8080 \ kaseya-bms-mcp
npm install
npm run build KASEYA_BMS_TENANT_SUBDOMAIN=yourcompany \ KASEYA_BMS_API_TOKEN=... \ npm start
HTTP refuses to start until CONDUIT_S2S_SECRET is a real secret:
MCP_TRANSPORT=http CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" npm start
curl http://127.0.0.1:8080/health
Local HTTP without a secret is development-only. It binds 127.0.0.1 and logs a warning:
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start
Apache-2.0