Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for Gorelo's PSA ticket, client, contact, contract, asset, and time-tracking APIs.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GORELO_API_KEY, GORELO_REGION, MCP_TRANSPORT, AUTH_MODE, LOG_LEVELค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"gorelo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GORELO_API_KEY",
"-e",
"GORELO_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/gorelo-mcp:v1.1.1"
],
"env": {
"GORELO_API_KEY": "ใส่ค่าของคุณ",
"GORELO_REGION": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"AUTH_MODE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add gorelo --env GORELO_API_KEY='ใส่ค่าของคุณ' --env GORELO_REGION='ใส่ค่าของคุณ' --env MCP_TRANSPORT='ใส่ค่าของคุณ' --env AUTH_MODE='ใส่ค่าของคุณ' --env LOG_LEVEL='ใส่ค่าของคุณ' -- docker run -i --rm -e GORELO_API_KEY -e GORELO_REGION -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/gorelo-mcp:v1.1.1เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"gorelo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GORELO_API_KEY",
"-e",
"GORELO_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/gorelo-mcp:v1.1.1"
],
"env": {
"GORELO_API_KEY": "ใส่ค่าของคุณ",
"GORELO_REGION": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"AUTH_MODE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"gorelo": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GORELO_API_KEY",
"-e",
"GORELO_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/gorelo-mcp:v1.1.1"
],
"env": {
"GORELO_API_KEY": "ใส่ค่าของคุณ",
"GORELO_REGION": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"AUTH_MODE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
GORELO_REGION envMCP_TRANSPORT envAUTH_MODE envLOG_LEVEL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 10 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub WYRE-AI ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GORELO_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.1) เข้า registry 18 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Beefi
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
US public company data from SEC EDGAR: financials, insider trades, 13F holdings, filings and macro.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
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.
Copy .env.example and set the variables below.
| Env var | Description | |||
|---|---|---|---|---|
GORELO_API_KEY | Gorelo Public API key for stdio and AUTH_MODE=env. Not read by the gateway Compose service. | |||
GORELO_REGION | us (default) or au - your account's regional API host. Not a credential. | |||
MCP_TRANSPORT | stdio (default) or http. | |||
AUTH_MODE | env (default, reads the vars above) or gateway (credentials arrive per-request via X-Gorelo-* headers, injected by the Conduit gateway). Gateway mode never falls back to GORELO_API_KEY. The container image and Compose default to gateway. | |||
CONDUIT_S2S_SECRET | Required to start the HTTP transport. The process logs an error and exits non-zero when this is empty or a known placeholder (changeme, change-me, secret, example, placeholder, replace-me, your-secret, your-s2s-secret, s2s-secret, replace-with-a-real-secret). Compose will not start without it. Never commit a real value. The value is never logged. | |||
MCP_ALLOW_INSECURE_DEV | Set to exactly 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 is overridden and logged. A placeholder secret still refuses to start. | |||
MCP_HTTP_HOST | Bind address when a secret is configured. Unset means 0.0.0.0. The container image sets 0.0.0.0. Ignored in favor of 127.0.0.1 when there is no secret. | |||
MCP_HTTP_PORT | HTTP port. Defaults to 8080. | |||
GORELO_PRESET, GORELO_ENABLE_DESTRUCTIVE, GORELO_ENABLE_BILLING_WRITES, GORELO_TOOLS_INCLUDE, GORELO_TOOLS_EXCLUDE | Tool selection; see Tool selection. | |||
LOG_LEVEL | debug \ | info (default) \ | warn \ | error. |
/health stays unauthenticated, does not call getCredentials(), and does not return the API key. 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 the HMAC is SHA-256 over the literal string t= 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.
POST /mcp HTTP/1.1
X-Gateway-S2S: t=1710000000,v1= X-Gorelo-Api-Key: X-Gorelo-Region: us
X-Gateway-S2S check passes, a Content-Length above the cap returns 413 with a JSON-RPC error; bodies without Content-Length are capped by the MCP SDK transport. Unauthenticated requests still get 401 first.tools/call arguments are capped at 10,000 elements (every array item and object key at any depth). Larger inputs return an isError tool 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).
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_ _ . 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:
| Tier | Methods | Count | Annotations | Default |
|---|---|---|---|---|
| read | GET | 58 | readOnlyHint: true | on |
| write | POST / PUT / PATCH | 36 | readOnlyHint: false, destructiveHint: false | on (the gateway gates writes), except billing writes (below) |
| destructive | DELETE | 18 | readOnlyHint: false, destructiveHint: true | off; set GORELO_ENABLE_DESTRUCTIVE=true |
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 .
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.
| Tool | Tier | Description |
|---|---|---|
gorelo_list_alerts | read | Lists alerts in Gorelo across all your clients. |
gorelo_create_alert | write | Raises a new alert against one of your clients in Gorelo, such as an alert from an outside monitoring tool. |
| Tool | Tier | Description |
|---|---|---|
gorelo_get_asset | read | Gets a single agent (managed device) asset by id. |
gorelo_get_custom_asset | read | Gets a single custom asset by id. |
gorelo_get_uptime_check | read | Gets a single uptime check by id. |
gorelo_list_assets | read | Lists agent (managed device) assets for the service provider using cursor pagination. Results are sorted by createdOn descending (newest first). |
gorelo_list_custom_asset_hardware_types | read | Lists the hardware types a custom asset can be given. |
gorelo_list_custom_assets | read | Lists custom (non-agent) assets for the service provider using cursor pagination. Results are sorted by createdOn descending (newest first). |
gorelo_list_uptime_checks | read | Lists uptime checks for the service provider using cursor pagination. Results are sorted by createdOn descending (newest first). |
gorelo_create_custom_asset | write | Creates a custom asset, meaning a device without the Gorelo agent, such as a printer or firewall. Use gorelo_list_custom_asset_hardware_types for valid hardware types. |
gorelo_create_uptime_check | write | Creates an uptime check that pings a host, requests a web address or connects to a TCP port on a schedule. |
gorelo_update_custom_asset | write | Updates a custom asset. Send only the fields you want to change. |
gorelo_update_uptime_check | write | Updates an uptime check. Send only the fields you want to change. |
gorelo_delete_asset | destructive | Deletes a managed device (agent asset) from Gorelo. This is destructive and can't be undone from Conduit. |
gorelo_delete_custom_asset | destructive | Deletes a custom asset from Gorelo. This is destructive and can't be undone from Conduit. |
gorelo_delete_uptime_check | destructive | Deletes an uptime check, which stops that monitoring. This is destructive and can't be undone from Conduit. |
| Tool | Tier | Description |
|---|---|---|
gorelo_get_contract | read | Gets one contract, including the products and labor in each service line. |
gorelo_get_invoice | read | Gets one invoice, with its attachments and line items. |
gorelo_get_item | read | Gets one catalog item (a product or a bundle) by ID. |
gorelo_get_time_entry | read | Gets a single time entry by id. |
gorelo_list_billing_roles | read | Lists the billing roles configured for the service provider. Use a role's Id as BillingRoleId when logging time against a ticket. |
gorelo_list_contracts | read | Lists billing contracts, each with the service lines it is made of. |
gorelo_list_invoices | read | Lists the service provider's invoices, filtered and sorted. |
gorelo_list_item_categories | read | Lists the categories products are organised under, each with its subcategories. |
gorelo_list_items | read | Lists the service provider's item catalog: products and bundles. |
gorelo_list_taxes | read | Lists the tax rates configured for the service provider. |
gorelo_list_time_entries | read | Lists logged time across every ticket and task, narrowed by any of the filters. |
gorelo_list_work_types | read | Lists the work types configured for the service provider. Use a work type's Id as WorkTypeId when logging time against a ticket. |
gorelo_create_invoice | write (admin, billing) | Raises a manual invoice against a client, with line items. |
gorelo_create_item | write (admin, billing) | Creates a product or a bundle in the item catalog. |
gorelo_create_payment | write (admin, billing) | Records a payment received outside Gorelo against an approved invoice. |
gorelo_create_time_entry | write | Logs time against a ticket. |
gorelo_update_item | write (admin, billing) | Partially updates an item. Send only the fields you want to change. |
gorelo_update_time_entry | write | Partially updates a time entry. Send only the fields you want to change. |
gorelo_delete_contract | destructive | Deletes a billing contract from Gorelo. This is destructive and can't be undone from Conduit. |
gorelo_delete_invoice | destructive | Deletes or voids an invoice, depending on its status. This is destructive and can't be undone from Conduit. |
gorelo_delete_item | destructive | Deletes a product or bundle from the item catalog. This is destructive and can't be undone from Conduit. |
gorelo_delete_payment | destructive | Deletes a payment that was recorded through the Gorelo API, for example with gorelo_create_payment. This is destructive and can't be undone from Conduit. |
gorelo_delete_time_entry | destructive | Deletes a logged time entry. This is destructive and can't be undone from Conduit. |
| Tool | Tier | Description |
|---|---|---|
gorelo_get_client | read | Gets a single client by id. |
gorelo_list_client_locations | read | Lists the locations for a given client. |
gorelo_list_clients | read | Lists clients for the service provider using cursor pagination. Results are sorted by client id ascending (oldest first). |
gorelo_create_client | write (admin) | Creates a client (and its default location) for the service provider. |
gorelo_update_client | write (admin) | Updates an existing client. Only supplied (non-null) fields are changed. |
gorelo_delete_client | destructive | Deletes a client from Gorelo. This is destructive and can't be undone from Conduit. |
| Tool | Tier | Description |
|---|---|---|
gorelo_get_contact | read | Gets a single contact by id. |
gorelo_list_contacts | read | Lists contacts for the service provider using cursor pagination, optionally filtered by client. Results are sorted by contact id ascending (oldest first). |
gorelo_create_contact | write (admin) | Creates a contact under a client, or a temporary contact when no client is given. |
| gorelo_update_contact | write (admin) | Updates a contact
ตัดมาแค่ช่วงต้น อ่านต่อใน repo