A side-by-side look at the Charmnomicon and Saihm MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Charmnomicon for knowledge & memory work; choose Saihm MCP for knowledge & memory as a local process. You can also run both side by side in one mcpServers block.
SAIHM_ENDPOINT_URL, SAIHM_AUTH_HEADER.saihm_remember, saihm_recall, saihm_forget.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Knowledge & Memory | Knowledge & Memory |
| Quality signal | 33/100 · Emerging | 61/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | Free |
| Required env vars | None listed | SAIHM_ENDPOINT_URLSAIHM_AUTH_HEADER |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 2 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | Not listed | 8 |
| Full listing | View Charmnomicon | View Saihm MCP |
No tool names declared yet. Check the project README from the listing page.
saihm_rememberStore information in SAIHM persistent encrypted memory. Use this when a fact, decision, or piece of context should outlive the current session. Returns the cell id that saihm_forget takes.saihm_recallRetrieve memories from the SAIHM encrypted store; the operator decrypts and returns plaintext, and this client holds no keys. Use at the start of a session, or whenever past context is needed. Pass a keyword to filter, or leave empty to load all.saihm_forgetCryptographically erase one memory by its cell id (GDPR Art. 17). Destroying the key makes the content unreadable to everyone, the operator included. Irreversible: use it when erasure is the intent, not to tidy a working set.saihm_statusShow the current SAIHM session: agent identity, tier, the prs and bfsi scores, storage by tier, and sharing state, as far as the operator reports them — a non-custodial operator cannot see stored-byte totals. Use it to check the agent identity, custody mode, and what the operator reports about storage and sharing.saihm_shareGrant other agents access to specific memory shards. Set type to 'temporary', 'permanent' or 'syndicate', and scope to 'read', 'write' or 'readwrite'. Grantees are hex agent-id hashes, not names, and shardIds lists exactly what is shared: nothing outside it is exposed, and sharing does not copy the memory.saihm_revoke_shareRevoke a sharing contract by its contractId, withdrawing access granted with saihm_share. It applies to future reads and cannot retract what a grantee has already read. Use it to end access; the memory itself remains, and saihm_forget is what erases.saihm_governance_proposeOpen 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 by default. The call is forwarded to the operator endpoint you configured, so expect an error rather than an open vote unless that operator has turned governance on. Where it is enabled it returns a hex proposalId that saihm_governance_vote takes, and it starts a vote rather than changing a setting.saihm_governance_voteCast 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 by default. The call is forwarded to the operator endpoint you configured, so expect an error rather than a recorded vote unless that operator has turned governance on. Where it is enabled, vote weight derives from the governance-token balance held at the proposal snapshot epoch, not the balance at the time of voting.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Charmnomicon yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"saihm-admin-saihm-mcp": {
"command": "npx",
"args": [
"-y",
"@saihm/mcp-server"
],
"env": {
"SAIHM_ENDPOINT_URL": "YOUR_SAIHM_ENDPOINT_URL_HERE",
"SAIHM_AUTH_HEADER": "YOUR_SAIHM_AUTH_HEADER_HERE"
}
}
}
}