Glyt
Human-in-the-loop approval for agent actions, with verifiable action-bound receipts.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 check_approval 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"glyt": {
"url": "https://glyt.net/mcp"
}
}
}遠端端點
https://glyt.net/mcpstreamable-http它能做什麼
工具清單
工具(6)
⚪discovery
Glyt service discovery: issuer did:key, receipt schema version, and how to verify receipts offline.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢verify_receipt(action, receipt, required_acr, expected_agent_sub)
Verify a Glyt receipt against the exact action you are about to run. Returns {valid, decision, acr, not_after, reasons}. The authoritative check is offline against the issuer did:key; this is a convenience.
輸入結構描述
{
"type": "object",
"properties": {
"action": {
"type": "object",
"additionalProperties": true
},
"receipt": {
"description": "The receipt envelope object or its JSON string."
},
"required_acr": {
"type": "string",
"enum": [
"single",
"mfa"
]
},
"expected_agent_sub": {
"type": "string"
}
},
"required": [
"action",
"receipt"
]
}🟢get_receipt(receipt_id)
Fetch a signed receipt envelope by id.
輸入結構描述
{
"type": "object",
"properties": {
"receipt_id": {
"type": "string"
}
},
"required": [
"receipt_id"
]
}🟢request_approval(id_token, action, stake_tier, summary, callback_url)
Ask the operator behind this agent to approve a specific action. Requires a Colony token-exchange id_token (colony:operator) as `id_token`. Returns the request view; poll with check_approval. Nothing is approved without the human's decision.
輸入結構描述
{
"type": "object",
"properties": {
"id_token": {
"type": "string",
"description": "A Colony token-exchange id_token audienced to Glyt."
},
"action": {
"type": "object",
"additionalProperties": true
},
"stake_tier": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"summary": {
"type": "string"
},
"callback_url": {
"type": "string"
}
},
"required": [
"id_token",
"action"
]
}🟢check_approval(id_token, request_id)
Poll one of your approval requests. Requires the same `id_token`. Returns the request view, including the signed receipt once decided.
輸入結構描述
{
"type": "object",
"properties": {
"id_token": {
"type": "string"
},
"request_id": {
"type": "string"
}
},
"required": [
"id_token",
"request_id"
]
}⚪file_contest(id_token, receipt_id, touchstone_id_token, contestant_pubkey, contestant_sig, ...)
As the SUBJECT of an approval, file a Bitcoin-anchored, self-signed objection into that receipt's declared contest channel (the §12.3 upper bound). You sign the contest with your OWN ed25519 key and supply your OWN Touchstone-audience id_token — Glyt writes it AS you, holding no secret. Sign JCS{v:1,recorder_id:<standing.anchor.contest.recorder>,event_type:"touchstone.contest",actor_sub:<your sub>,counterparty_sub:null,payload_hash:<target_digest>,client_ts:null}; target_digest is standing.anchor.attestation entry's payload_hash (from the inclusion endpoint). contestant_pubkey/contestant_sig are standard base64.
輸入結構描述
{
"type": "object",
"properties": {
"id_token": {
"type": "string",
"description": "Your Glyt-audience Colony id_token (authenticates you as the subject)."
},
"receipt_id": {
"type": "string"
},
"touchstone_id_token": {
"type": "string",
"description": "Your Touchstone-audience Colony id_token (authenticates the contest write as you)."
},
"contestant_pubkey": {
"type": "string",
"description": "Your ed25519 public key, standard base64."
},
"contestant_sig": {
"type": "string",
"description": "Your signature over the contest signed_content, standard base64."
},
"reason": {
"type": "string"
}
},
"required": [
"id_token",
"receipt_id",
"touchstone_id_token",
"contestant_pubkey",
"contestant_sig",
"reason"
]
}社群
證據