
Gorelo
io.github.WYRE-AI由 GitHub 帳號 WYRE-AI 發布v1.1.1更新於 Oct 29, 2026
MCP server for Gorelo's PSA ticket, client, contact, contract, asset, and time-tracking APIs.
概覽
本機 MCP 伺服器,包裝 Gorelo 的 PSA REST API,讓助理讀寫工單、客戶、聯絡人、資產、專案、文件與帳務資料。
- 可以做什麼
- 查詢、建立與更新工單、留言、簽核與附屬對話
- 管理客戶、聯絡人、地點、技術人員群組與使用者
- 處理資產、自訂資產、可用性檢查與警示
- 瀏覽與編輯專案、區段、任務、留言與簽核
- 讀取與建立文件、表單及表單提交連結
- 讀取合約、發票、目錄項目與工時紀錄,可選擇建立發票、付款與目錄項目
- 適用情境
- 適合以 Gorelo 作為服務台系統的託管服務商或 IT 團隊,讓助理不必切換工具就能查詢工單與客戶、草擬更新、登記工時,或彙整專案與帳務資訊。
- 執行需求
- 以本機程序(stdio)方式執行已發布的容器映像,或以 HTTP 方式供閘道託管。需要 Gorelo 公開 API 金鑰(GORELO_API_KEY,以 X-API-Key 標頭送出)以及正確的 GORELO_REGION(us 或 au)。HTTP 模式另需 CONDUIT_S2S_SECRET。需要能連線至 Gorelo API 的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Gorelo,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Gorelo MCP Server
MCP server for Gorelo's PSA (Professional Services Automation) REST API - full Public API coverage (tickets, clients, contacts, assets, billing, projects, documents, alerts, and more) - for AI assistants and the WYRE Conduit gateway.
Authentication
Generate an API key for your Gorelo organization and send it as the X-API-Key header - this server handles that on every request. There is no token exchange.
Configuration
Copy .env.example and set the variables below.
/health stays unauthenticated, does not call getCredentials(), and does not return the API key. The stdio transport does not use CONDUIT_S2S_SECRET.
HTTP authentication
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S. The value is t=<unix seconds>,v1=<hex hmac-sha256>, where the HMAC is SHA-256 over the literal string t=<unix seconds> using CONDUIT_S2S_SECRET as the key. A missing or invalid header returns 401. The proof is valid for five minutes of clock skew.
In AUTH_MODE=gateway, /mcp also requires X-Gorelo-Api-Key. X-Gorelo-Region is optional; when present it must be exactly us or au, and any other value returns 400. The API key header is the only credential source for the request. A missing key returns 401 and does not fall back to GORELO_API_KEY.
Request limits
- HTTP request bodies are capped at 256 KiB (262144 bytes). After the
X-Gateway-S2Scheck passes, aContent-Lengthabove the cap returns 413 with a JSON-RPC error; bodies withoutContent-Lengthare capped by the MCP SDK transport. Unauthenticated requests still get 401 first. tools/callarguments are capped at 10,000 elements (every array item and object key at any depth). Larger inputs return anisErrortool result and are never dispatched.
These limits address CVE-2026-111768 / GHSA-46jr-4wx8-v453 (memory exhaustion during validation) and GHSA-f897-62hf-6gxq (no request body / batch cap).
Tools
112 tools, generated at build time from Gorelo's OpenAPI spec (spec/gorelo-openapi.json, fetched 2026-10-20: 117 operations, 5 excluded). Names follow gorelo_<verb>_<noun>. The 24 read tools from earlier releases keep their names; their arguments are unchanged (camelCase filters such as pageSize/statusIds as arrays, and id for the get_client/get_contact/get_asset/get_time_entry tools).
Tiers follow the HTTP method:
Write tools marked admin create or change clients, contacts, the item catalog, invoices or payments.
Money is read-only by default: the four billing writes (gorelo_create_invoice, gorelo_create_payment, gorelo_create_item, gorelo_update_item; every non-DELETE write under the Billing tag except time entries) are hidden from tools/list and refused at call time unless GORELO_ENABLE_BILLING_WRITES=true. The readonly preset hides them regardless. Billing DELETEs are ordinary destructive tools. Time entry create/update are unaffected.
The machine-readable classification (read / write / destructive / admin / billing_write / excluded_binary / excluded_sensitive) comes from node scripts/generate-tools.mjs --tiers <file>.
Request bodies are passed under a single body argument (the JSON object Gorelo documents for that endpoint). Multi-value filters (statusIds, clientIds, ...) take an array, which is sent comma-joined.
Alerts
Assets
Billing
Clients
Contacts
Deletions
Documents
Forms
Organization
Projects
Tickets
tools/list size
Measured as the JSON size of the tools/list result (names, descriptions, input schemas, annotations):
Use a preset or GORELO_TOOLS_INCLUDE to shrink the list for clients with tight context budgets.
Tool selection
Presets and filters only narrow the set. A tool hidden from tools/list is also refused if called by name. Selection that leaves zero tools refuses to start.
Exclusions
Five operations are deliberately not exposed. Three because the Conduit gateway has no confirmed binary tool-result or upload path:
The list lives in EXCLUDED_BINARY in scripts/generate-tools.mjs.
Two more are never exposed under any configuration: POST /v1/api-keys and DELETE /v1/api-keys/{apiKeyId} (EXCLUDED_SENSITIVE; credential minting/revocation is out of scope for an AI tool surface). gorelo_list_api_keys stays: it returns key metadata only (id, name, scopes, dates), never the key value.
Behavior
- One generic executor runs every tool: path parameters are URL-encoded, the host is always the region's fixed base URL (
us/au), and redirects are refused. - HTTP 429 is retried up to 3 times (honoring
Retry-After, capped at 15s, else exponential backoff). - Responses over 100KB are truncated with an explicit
[TRUNCATED: ...]marker; narrow with filters orpageSizeand follow the cursor. - 403 returns
The Gorelo API key for this connection doesn't have permission to run <tool> (HTTP 403). An admin can check the key's permissions in Gorelo under Settings → Integrations.401, 404 and 422 have their own messages. The API key is never included in errors or logs.
Regenerating
To pick up a new Gorelo API version, replace spec/gorelo-openapi.json, run npm run generate, review the diff (new operations need no code unless they use a body format other than JSON, which the generator rejects loudly), and commit both files.
Attribution
The operation-to-tool approach, retry/backoff and size-guard logic are adapted from peetinc/gorelo-mcp-all (MIT, Copyright (c) 2026 peetinc). See THIRD_PARTY_NOTICES.md.
Development
Docker
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass a real S2S secret. In gateway mode, the Gorelo API key arrives on each request as X-Gorelo-Api-Key; it is not read from the environment. Do not pass a known placeholder such as your-s2s-secret or changeme. Startup treats those as unset and exits.
Compose refuses to start when CONDUIT_S2S_SECRET is unset, sets AUTH_MODE=gateway, does not pass GORELO_API_KEY, and publishes 127.0.0.1:8080:8080. A project .env is interpolation only. Do not add env_file to the gateway service.
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses GORELO_API_KEY:
Local HTTP without a secret is development-only. It binds 127.0.0.1 even if MCP_HTTP_HOST is 0.0.0.0, and logs a warning:
來源:README.md,提交 bf4e924
工具
0版本歷史
4- v1.1.1最新Oct 22, 2026
- v1.1.0Oct 20, 2026
- v1.0.1Oct 14, 2026
- v1.0.0Sep 20, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。