
Decisionscope
io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 3, 2026
唯讀決策記錄:查詢決策、排空決策變更、驗證權杖。
AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。
原文描述
Read-only decision record: query decisions, drain decision changes, verify token.
概覽
Decisionscope 的本機 MCP 服務;無需登入;STDIO。
暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Decisionscope,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
decisionscope
decisionscope gives a tool read-only access to a hosted decision record: a system of record for what was actually decided. Before acting, a tool can ask the record a natural-language question — "Are we still shipping the new onboarding flow?" — and get back the current authoritative answer, or an explicit hold when the record has no confident answer. A polling caller can also drain decisions whose state changed since a cursor. The record only answers; it never takes actions in your systems.
decisionscope is a forwarding client. It runs locally as a CLI
and a stdio MCP server, and forwards each call to the hosted
endpoint as a JSON-RPC tools/call request. The endpoint is named
by RITHMO_MCP_URL and defaults to the hosted service at
https://app.rithmo.ai/api/mcp; a self-hosted deployment exposes
the same tools and contract at its own address.
Setup
Every request carries a per-organization service token as a
Bearer token. The token resolves to exactly one organization,
must carry the mcp:read scope, and every result is scoped to
that organization. There is no anonymous access.
Keep the token in a secret store, never in code. With no token
set, every call fails before any request is sent, with an error
naming RITHMO_MCP_TOKEN.
Install
Or run the container image:
The container defaults to the MCP server (see below). Pass CLI
arguments to use it as a CLI instead, and pass the two environment
variables above with -e so the container can reach your record.
CLI
Results print as JSON. Exit codes: 0 on success, 1 on an
operation error (including a missing token), 2 for usage
errors. Arguments are validated before the token is checked, so a
malformed call is always a usage error.
MCP server
One bin serves both faces. The mcp subcommand starts a stdio
MCP server:
MCP client configuration:
Object results are returned as a JSON text block and as
structuredContent, so clients can read
res.structuredContent directly.
Tools
Reading a query_decision result
The result field has three variants, and the distinction
matters:
found— a live answer from the commitment ledger. The answer text is atanswer, alongsidestatus,lifecycle_state,ownerandsource(both discriminated states, never bare nulls),decided_at,due_at,rationale,conditions,director,context, asupersedeschain (newest-first, cycle-guarded, capped at 12 hops), an optionalspine, and aconfidencescore. Apart fromconfidence, afoundresult for the same decision is byte-identical on every call.found_record— a live answer from the subject record. This is an answer, not a refusal. The answer text is atsubject.currentAnswer, notanswer— and it may benull, meaning the subject is on record but there is no answer text to act on.no_record— no confident answer. The bare form is just{ "result": "no_record" }; a typed form adds arecordexplaining why the answer is held (closed,no_record, ornot_observedwhen the asked-about surface is one the record does not observe). Apremise_check, when present, always hassafe_to_proceed: false. Never proceed on ano_record.
Gate on a usable answer, not on the variant name:
One special case: a no_record whose record.reason starts
with record_unavailable: means the record itself could not be
read (a transient failure). That is not "we decided no" — hold
and retry.
Draining changes
list_decision_changes is built for a polling trigger:
- First call (no
since): returns no changes and the current head cursor. You start from now; history is not replayed. Passsince: "0_"to backfill from the start instead. has_moremeans the page was full (changes.length === limit). It can be true on an exactly-full final page, so the next call may legitimately return zero changes — that is how the drain terminates, not an error.- When a page returns no rows, the cursor is echoed back unchanged, so re-polling with it is safe and idempotent.
- Each change carries the same record core as a
foundresult, pluschanged_at— but neversupersedes,spine, orconfidence. Itsstatusis wider: reversals appear asdroppedorsuperseded, values afoundresult never returns.
Development
License
MIT — see LICENSE.
來源:README.md,提交 cb729b1
工具
0版本歷史
1- v0.1.0最新Nov 3, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分