HaloPSA

io.github.wyre-technology由 GitHub 帳號 wyre-technology 發布v1.7.11更新於 Oct 24, 2026

MCP server for HaloPSA — clients, tickets, and PSA workflows via the HaloPSA REST API.

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

針對 HaloPSA 的本機 MCP 伺服器,讓助理透過 HaloPSA REST API 瀏覽與管理工單、客戶、資產、技術人員和發票。

可以做什麼
在 HaloPSA 各領域(工單、客戶、資產、技術人員、發票、分類)之間切換導覽,並查看目前狀態與憑證狀態,工具依領域按需載入。列出、檢視、建立和更新支援工單,並為工單新增備註或處理記錄。分頁或依 ID 查詢工單分類,方便在分流時指定分類層級。列出、檢視、建立和搜尋客戶,以及列出、檢視和搜尋資產與資產類型。列出技術人員、團隊和發票,並檢視發票明細。
適用情境
適合讓助理直接在 HaloPSA 服務台內工作:分流與更新工單、新增備註、查詢客戶及其資產,或查看帳務與團隊資訊,而不必切換到 HaloPSA 網頁介面。
執行需求
以本機程序方式執行(npx 套件或容器映像),使用 stdio 傳輸。需要 HaloPSA OAuth 憑證 HALOPSA_CLIENT_ID 與 HALOPSA_CLIENT_SECRET,以及 HALOPSA_TENANT 或 HALOPSA_BASE_URL 其中之一。安裝 npm 套件需要具備 read:packages 權限的 GitHub 權杖,透過 NODE_AUTH_TOKEN 提供。需要能連線至 HaloPSA 執行個體的網路。
安裝前請注意
HALOPSA_CLIENT_SECRET 是敏感的 OAuth 密鑰,請勿放入共用設定或日誌。多個工具會寫入 HaloPSA:建立與更新工單、新增工單處理記錄或備註、建立客戶。AUTH_MODE=gateway 時憑證由閘道注入,而非本機讀取。HaloPSA 限制每 3 分鐘 500 次請求。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 HaloPSA,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

HaloPSA MCP Server

A Model Context Protocol (MCP) server for interacting with HaloPSA, featuring a decision tree architecture for efficient tool loading.

One-Click Deployment

[!IMPORTANT] Before you click: this server depends on @wyre-technology/node-halopsa, which is hosted on the GitHub Packages npm registry. GitHub Packages has no anonymous access — even though the package is public, every npm install needs a token. The cloud builder runs npm install for you, so you must give it one, or the build fails with npm error 401 Unauthorized ... npm.pkg.github.com.

  1. Create a GitHub Personal Access Token with the read:packages scope (classic token). Any GitHub account works — you do not need to be a member of the wyre-technology org to read its public packages.
  2. Add it as a build variable when prompted by the deploy flow:
    • Cloudflare Workers → set a build variable named NODE_AUTH_TOKEN to your PAT (Workers → Settings → Build → Variables and Secrets).
    • DigitalOcean App Platform → set an encrypted env var named GITHUB_TOKEN with scope Build Time to your PAT (the .do/app.yaml already declares it).

[Deploy to DO]

[Deploy to Cloudflare Workers]

[!NOTE] The DigitalOcean target builds the full Docker image and runs the complete MCP server over HTTP — this is the recommended path for operators. The Cloudflare Workers target is currently a thin entrypoint (the /mcp route returns 501 until the Workers transport adapter lands) and is best suited to gateway-style deployments; for a full self-hosted server prefer DigitalOcean or the prebuilt container image (ghcr.io/wyre-ai/halopsa-mcp).

Architecture

This MCP server uses a hierarchical tool loading approach instead of exposing all tools upfront:

  1. Navigation Phase: Initially exposes only a navigation tool (halopsa_navigate)
  2. Domain Selection: User selects a domain (tickets, clients, assets, agents, invoices, categories)
  3. Domain Tools: Server exposes domain-specific tools after selection
  4. Lazy Loading: Domain handlers and the HaloPSA client are loaded on-demand

This architecture provides:

  • Reduced cognitive load (fewer tools to choose from)
  • Faster initial load times
  • Better organization of related operations
  • Clear navigation state

Interactive Ticket Card (MCP Apps)

halopsa_tickets_get renders as an interactive card in MCP Apps hosts (Claude Desktop/web) with an in-card "Add note" round-trip via halopsa_tickets_add_action; 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.

Installation

This package is published to the GitHub Packages npm registry, which requires a token even for public packages. Authenticate once, then install:

bash
# Authenticate npm to GitHub Packages (token needs the read:packages scope)export NODE_AUTH_TOKEN=$(gh auth token)   # or a PAT with read:packages
npm install @wyre-ai/halopsa-mcp

The repo's .npmrc already points the @wyre-technology scope at GitHub Packages and reads the token from NODE_AUTH_TOKEN, so no further config is needed.

Configuration

Set the following environment variables:

VariableRequiredDescription
HALOPSA_CLIENT_IDYesOAuth 2.0 Client ID
HALOPSA_CLIENT_SECRETYesOAuth 2.0 Client Secret
HALOPSA_TENANTOne ofTenant name (e.g., yourcompany)
HALOPSA_BASE_URLtheseExplicit base URL (e.g., https://yourcompany.halopsa.com)

Usage

Running Standalone

bash
# Set credentialsexport HALOPSA_CLIENT_ID="your-client-id"export HALOPSA_CLIENT_SECRET="your-client-secret"export HALOPSA_TENANT="yourcompany"
# Run the servernpx @wyre-ai/halopsa-mcp

Claude Desktop Configuration

Add to your Claude Desktop claude_desktop_config.json:

json
{  "mcpServers": {    "halopsa": {      "command": "npx",      "args": ["@wyre-ai/halopsa-mcp"],      "env": {        "HALOPSA_CLIENT_ID": "your-client-id",        "HALOPSA_CLIENT_SECRET": "your-client-secret",        "HALOPSA_TENANT": "yourcompany"      }    }  }}

Docker

bash
docker build -t halopsa-mcp .docker run -e HALOPSA_CLIENT_ID=xxx -e HALOPSA_CLIENT_SECRET=xxx -e HALOPSA_TENANT=yourcompany halopsa-mcp

Available Domains

Tickets

Manage support tickets, create new tickets, update status, add actions/notes.

Tools:

  • halopsa_tickets_list - List tickets with filters (category_1 only; category_2–category_4 are rejected)
  • halopsa_tickets_get - Get ticket details
  • halopsa_tickets_create - Create a new ticket (optional category_1–category_4)
  • halopsa_tickets_update - Update an existing ticket (optional category_1–category_4)
  • halopsa_tickets_add_action - Add a note/action to a ticket

Categories

Look up Halo ticket categories so triage can assign category_1–category_4 (the category name, matched to its level).

Tools:

  • halopsa_categories_list - List one page of ticket categories (limit defaults to 50; page_no starts at 1)
  • halopsa_categories_get - Get a category by ID

Clients

Manage companies/clients in HaloPSA.

Tools:

  • halopsa_clients_list - List clients
  • halopsa_clients_get - Get client details
  • halopsa_clients_create - Create a new client
  • halopsa_clients_search - Search clients by name

Assets

Manage configuration items/assets.

Tools:

  • halopsa_assets_list - List assets with filters
  • halopsa_assets_get - Get asset details
  • halopsa_assets_search - Search assets
  • halopsa_assets_list_types - List available asset types

Agents

View technicians and teams.

Tools:

  • halopsa_agents_list - List agents/technicians
  • halopsa_agents_get - Get agent details
  • halopsa_teams_list - List teams

Invoices

View billing and invoices.

Tools:

  • halopsa_invoices_list - List invoices with filters
  • halopsa_invoices_get - Get invoice details

Navigation Tools

Always available:

  • halopsa_navigate - Select a domain to work with
  • halopsa_status - Show current state and credential status
  • halopsa_back - Return to main menu (when in a domain)

Example Workflow

User: Check my ticketsClaude: [calls halopsa_navigate with domain="tickets"]       -> Navigated to tickets domain. Available tools: ...
User: List open ticketsClaude: [calls halopsa_tickets_list with open_only=true]       -> [ticket list results]
User: Now show me clientsClaude: [calls halopsa_back]       -> Navigated back to main menu.       [calls halopsa_navigate with domain="clients"]       -> Navigated to clients domain.

Rate Limiting

HaloPSA has a rate limit of 500 requests per 3-minute window. The underlying @asachs01/node-halopsa client handles this automatically with request throttling.

License

Apache-2.0

來源:README.md,提交 9a99f35

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.7.11最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分