Skip to main content
Glama
SAIHM-Admin

@saihm/mcp-server-pro

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SAIHM_HOMENoBase directory for self-join identity file. Defaults to ~/.saihm
SAIHM_TIERNoTier label (e.g., 'FREE', 'PRO'). Required when self-onboarding.
SAIHM_SELF_JOINNoControls the saihm_join onboarding tool. On by default; set to '0' to suppress.
SAIHM_ENDPOINT_URLNoURL of the MCP endpoint. Defaults to https://saihm.coti.global/mcp
SAIHM_PAYMENT_METHODNoPayment method for paid self-onboard (e.g., 'stripe'). Not used for FREE tier.
SAIHM_SEQ_STATE_PATHNoPath to persist sequence state.
SAIHM_MASTER_SECRET_HEXNoMaster secret as a hex string (at least 64 hex chars). Provide this or SAIHM_MASTER_SECRET_FILE.
SAIHM_MASTER_SECRET_FILENoPath to a mode-600 file containing the hex master secret. Takes precedence over SAIHM_MASTER_SECRET_HEX if both set.

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
saihm_rememberA

Store information in SAIHM persistent memory. Encryption happens in this process and the key never leaves it, so the server holds ciphertext it cannot read. Use this when a fact, decision, or piece of context should outlive the current session. Pass an existing cellId to update that cell instead of adding a new one; when the endpoint reports that the update left shares of the cell on the previous version, they are re-issued for the new version and the result counts them, and a share that was not re-issued needs saihm_share again. Returns the cell id that saihm_forget takes. With warmStart "put", it instead stores an encrypted warm-start snapshot of the payload file named by token.

saihm_recallA

Retrieve your memories from SAIHM and decrypt them in this process; the server never sees plaintext. Use this at the start of a session, or whenever past context is needed. Pass query to filter by keyword, or leave it out to load everything. Pass cellId alone to read one of your own cells. To read a single cell another agent shared with you, pass their sharerPinnedAgentIdHashHex and sharerRecord together with the cellId; that path is read-only. Pass listOnly to list your cells' versions without their content. Pass sharesOnly to list every pointer shared with you, a page at a time, where the endpoint offers it. With warmStart "latest", it instead restores the newest encrypted warm-start snapshot into the payload file named by token; "list" lists them.

saihm_forgetA

Cryptographically erase one memory by its cell id (GDPR Art. 17). Destroying the wrapped key leaves the content unreadable to everyone, the operator included. Irreversible: use it when erasure is the intent, not to tidy a working set. With warmStart "delete", it instead destroys one encrypted warm-start snapshot, its key first.

saihm_statusA

Show the current SAIHM session: the agent identity, which this client derives locally, plus the tier, custody mode, shard and sharing counts, and bfsi score the server reports. No plaintext appears, because the server holds none. Use it to check which identity is active and what is stored and shared.

saihm_shareA

Grant one other agent access to a single memory cell, named by cellId. Identify the recipient by their recipientPinnedAgentIdHashHex, pinned out-of-band, and their recipientRecord. Set scope to 'read', 'write' or 'readwrite'. Only that one cell is exposed, and sharing re-wraps its key rather than copying the memory.

saihm_revoke_shareA

Withdraw a grant made with saihm_share, naming the same cellId and the recipient's recipientHex. It applies to future reads and cannot retract what the recipient has already read. Use it to end access; the memory itself remains, and saihm_forget is what erases.

saihm_governance_proposeA

Open a protocol governance proposal: set scope to 'emission_param' or 'protocol_upgrade', and for 'emission_param' also pass paramKey and proposedValue. Protocol governance is not enabled for this client yet — the tool is present so the surface stays stable, and calling it returns a 'governance unavailable' error rather than opening a vote.

saihm_governance_voteA

Cast a vote on an open protocol governance proposal by its proposalId, with approve set to true to approve or false to reject. Protocol governance is not enabled for this client yet — the tool is present so the surface stays stable, and calling it returns a 'governance unavailable' error rather than recording a vote.

saihm_joinA

Activate free SAIHM persistent memory for this agent. Call this when the user asks to join, sign up for, or set up SAIHM. Where no identity is configured, a join creates a NEW, EMPTY memory: first ask whether they already have a SAIHM identity (from another machine or an earlier session) - if so, do not join; they bring it with export-identity instead. In a hosted or cloud session that starts fresh each time, do not join there either: they join on a machine they keep, then bring that identity in the same way. Pass newIdentity: true once they confirm they want a new one here. It self-generates a sovereign memory key on this device and starts a one-time human approval — the tool returns a URL and short code for the user to open and enter. After the user approves, the join finishes by itself and the memory tools work; there is no need to call saihm_join again. No payment.

Prompts

Interactive templates invoked by user choice

NameDescription
saihm_session_bootstrapLoad your SAIHM persistent memory at the start of a session, before other work.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

Core memory operations (remember/recall/forget) and access operations (share/revoke_share) have clearly distinct purposes with no real overlap. The main wrinkle is that remember, recall, and forget each overload a warmStart parameter for snapshot management, muddying their boundaries, and the two governance stubs are present but always error.

Naming Consistency4/5

All tools share a predictable saihm_ prefix, which aids grouping. However, the convention is slightly mixed: most are simple verbs (remember, recall, forget, share, join) or verb_noun (revoke_share), while the governance tools flip to noun_verb (governance_propose, governance_vote).

Tool Count5/5

Nine tools is well-scoped for a memory-plus-sharing-plus-governance domain, with each tool covering a distinct capability. Nothing feels redundant or padded aside from two intentionally inert governance stubs.

Completeness3/5

CRUD for memory cells (remember/recall/forget), sharing (share/revoke_share), status, and onboarding (join) are covered. But the join description references an 'export-identity' flow that has no corresponding tool, and the two governance tools are non-functional stubs, leaving notable gaps in the advertised surface.

Maintenance

ActivityActive
ResponsivenessNo issues