Glyt

Human-in-the-loop approval for agent actions, with verifiable action-bound receipts.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
75%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'check_approval' description lacks action verbin check_approval

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~744Tokens (tool definitions)
~772 BTypical response size
Moderate attention impact (0.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "glyt": {
      "url": "https://glyt.net/mcp"
    }
  }
}

Remote endpoints

https://glyt.net/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
โšชdiscovery

Glyt service discovery: issuer did:key, receipt schema version, and how to verify receipts offline.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools