
Simple Support System Mcp
io.github.bitterdev由 GitHub 帳號 bitterdev 發布v1.0.3更新於 Oct 26, 2026
MCP server for the Simple Support System helpdesk API: read, answer and move tickets.
概覽
針對 Concrete CMS 上 Simple Support System 工單 API 的本機 MCP 伺服器,讓助理讀取、回覆、流轉並管理支援工單。
- 可以做什麼
- 查找與閱讀工單:依專案、狀態、類型、優先順序、負責人、文字與變更日期篩選清單,並讀取單一工單及其留言和附件。
- 回覆與流轉工單:張貼會觸發通知信的回覆、切換工作流程狀態、建立、修改與審核通過工單。
- 管理留言:列出、改寫、審核通過或刪除工單留言。
- 管理專案:列出、讀取、建立、修改與刪除支援專案,包括帶存取權杖的私人專案。
- 處理附件:上傳本機檔案、將其連結到工單、解析下載網址並刪除。
- 檢視設定:顯示 API 網址、是否已設定金鑰,以及可用的狀態、類型與優先順序。
- 適用情境
- 適用於支援佇列跑在 Concrete CMS 的 Simple Support System 外掛上,希望助理分流、回覆與流轉工單,或在不開啟後台介面的情況下維護專案與附件。
- 執行需求
- 透過 npm 套件以 stdio 在本機執行,需要 Node.js 啟動。必須設定 SIMPLE_SUPPORT_SYSTEM_BASE_URL 指向 Concrete CMS 網站;管理類呼叫需要 SIMPLE_SUPPORT_SYSTEM_API_KEY。選用:SIMPLE_SUPPORT_SYSTEM_API_PATH、SIMPLE_SUPPORT_SYSTEM_PROJECT_TOKEN、SIMPLE_SUPPORT_SYSTEM_PROJECT_ID 與 SIMPLE_SUPPORT_SYSTEM_TIMEOUT_MS。需要能連線到該網站的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Simple Support System Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
simple-support-system-mcp
Local MCP server (stdio) for the REST API of the Simple Support System add-on for Concrete CMS. It lets an assistant work a support queue the way a human would: find the ticket, read it with its history, write a reply, move it to the next state. Projects, attachments and moderation are covered as well.
The server talks to any site that runs the package. Nothing is hardcoded, the site URL and the API key come from environment variables. It speaks stdio only and never opens a port.
Install
Register the server in Claude Code:
Or in ~/.claude.json / claude_desktop_config.json:
Environment
The API key is generated when the package is installed and lives in the site config under simple_support_system.api_key. Calls without it run as an anonymous visitor: reading public projects and their approved tickets, creating tickets and writing comments still work, everything administrative (state changes, deleting, approving, projects) does not.
Tools
The three everyday tools are list_tickets, get_ticket and reply_to_ticket, plus set_ticket_state to move a ticket along.
Reading tools are annotated as read only, the four delete_ tools as destructive. All of them additionally require confirm: true, so a delete cannot happen as a side effect of a vague instruction. There is no trash and no restore on the API side, a deleted ticket, comment or project is gone.
Working a ticket
list_tickets also takes projectHandle instead of projectId and resolves it through the project list first.
Values the API accepts
- States:
new,open,in_progress,on_hold,resolved,duplicate,invalid,wont_fix,closed.set_ticket_stateaccepts all of them exceptnew, which is only set when a ticket is created. - Types:
bug,enhancement,proposal,task - Priorities:
trivial,minor,major,critical,blocker - Tickets in the state
closedorinvalidare locked: the API refuses edits of the ticket, its comments and its attachments until the state changes.
Attachments
upload_attachment puts the file into the file manager of the site without linking it anywhere, the second call attaches it. create_ticket takes the same ids in attachmentFileIds.
Private projects
A private project is only reachable with its access token. Pass it per call as token, or set SIMPLE_SUPPORT_SYSTEM_PROJECT_TOKEN as the default. With an API key the token is not needed, the key already grants full access.
Limiting the server to one project
Set SIMPLE_SUPPORT_SYSTEM_PROJECT_ID to hand the server to someone who should only work in one project, typically together with that project's access token and without an API key. list_tickets and create_ticket then use this project when none is given, list_projects shows only this project, and every tool that takes a ticket id first checks that the ticket belongs to it. A different project id or handle is rejected. Without an API key the site itself already keeps other private projects closed, the setting additionally keeps the public projects of the installation out of view.
Notes on the API
The package answers in several shapes, the server normalises all of them so tools return the bare resource:
- Collections come back as a plain array, single tickets and comments inside a
ticketorcommentkey, attachments insidedata. - Failures arrive either as
{"errors": [...]}or as a ConcreteEditResponsewith anerrorflag. The second one can come with status 200, so a 200 alone is not treated as success. Every error becomes a tool error with the message the API sent. create_ticketanswers with a status envelope and not with the new record, so the id of a freshly created ticket has to be looked up withlist_tickets.download_attachmentfollows the redirect the API returns and reports the resolved URL.
Verification
The tests run against a stubbed HTTP layer, they never touch a live site and need no credentials. They cover the URL and form encoding the PHP controllers expect (including PHP boolean and array notation), the response envelopes, the error mapping, the filtering and sorting of list_tickets, and the guard rails of the destructive tools.
License
MIT, see LICENSE.
來源:README.md,提交 0b7762e
工具
0版本歷史
1- v1.0.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分