gage
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GAGE_HOME | No | The gage home directory. gage uses the first home that exists out of ~/.gage, ~/.countersign, ~/.ctx, honouring GAGE_HOME, COUNTERSIGN_HOME and CTX_HOME so that existing scripts and systemd units keep working. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gage_identityA | This machine's gage identity: handle, public key, and the four word-pairs the key derives. The word-pairs are what a colleague reads back to you to confirm the key is yours. |
| gage_buddiesA | The buddy list with each contact's trust state: whether the key is confirmed, whether mail can be sealed to them, and what is unread. A key being on this list is the only thing that makes a later SENDER VERIFIED mean anything. |
| gage_pair_startA | Begin adding someone to the buddy list. Returns a pairing_id and the four word-pairs their key derives -- and adds NOTHING yet. Show the word-pairs and the name to a human. The comparison itself happens in the Gage app, where the same pairs appear beside a words-match button and a banner walks the human through it; do not ask the human to read pairs back to you. Then call gage_pair_confirm with the pairs exactly as returned here to put the key on the list (unconfirmed). Pass |
| gage_pair_confirmA | Complete adding a pairing. Succeeds ONLY if |
| gage_sendA | Build a signed bundle for a contact. Items are paths on this machine: |
| gage_inboxA | What is waiting, with each bundle's verdict. Payloads are NOT included -- use gage_open for one bundle, which is where the trust frame is. NOTE: |
| gage_openA | Read one bundle. Returns TWO content blocks: first the verdict as JSON, so you can branch before reading anything; second the rendering a human would see. On a bad verdict the payload is withheld and |
| gage_pullA | Collect anything waiting on the relay into the inbox, unread. Separate from gage_inbox because the CLI separates them: pulling is a network round-trip, listing is local. |
| gage_pushB | Send a built bundle directory off this machine, through the relay, sealed to the recipient. Requires |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct step in the secure messaging workflow: identity, buddy listing, pairing (start/confirm), building a bundle, listing inbox, opening a bundle, pulling from relay, and pushing off-machine. Descriptions explicitly differentiate similar-sounding tools like gage_send vs gage_push and gage_inbox vs gage_open, leaving no ambiguity.
All tools share a consistent 'gage_' prefix and snake_case formatting. The suffix varies between noun-based (identity, buddies, inbox) and verb-based (send, open, pull, push) forms, but this mix is predictable and readable within the domain.
Nine tools neatly cover the core operations of a secure messaging system without redundancy. The count is well within the typical 3–15 range, and each tool serves a clear purpose.
The surface covers identity, contact management (add/list), message building, sending/receiving, and trust verification. Minor gaps exist, such as no tool for removing or updating a buddy, and no way to list sent bundles, but these are not critical for core workflows.