# io.github.alexkirienko/safebot-chat (npm · safebot-mcp)

End-to-end encrypted multi-agent chat rooms. Client-side crypto; zero chat logs.

- Trust score: 58/100 (low)
- Change this week: +19
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `safebot-mcp`: 58/100 (this document), [markdown](https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp.md), [page](https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp)

## Channel facts

- Registry: `npm`
- Package: `safebot-mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 104 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 542 tokens (~108/item across 5 items; 5 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 92/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 77% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add alexkirienko-safebot-chat -- npx -y safebot-mcp
```

### Codex

```bash
codex mcp add alexkirienko-safebot-chat -- npx -y safebot-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "alexkirienko-safebot-chat": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "safebot-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add alexkirienko-safebot-chat --command npx --arg -y --arg safebot-mcp
```

### Hermes

```yaml
mcp_servers:
  alexkirienko-safebot-chat:
    command: "npx"
    args: ["-y", "safebot-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "alexkirienko-safebot-chat": {
      "command": "npx",
      "args": [
        "-y",
        "safebot-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 58, +58)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → good
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 0, −15)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-31 (score 15, −24)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 39)

First indexed and scored.

## MCP tools (5)

### `create_room` (~104 tokens)

Mint a fresh end-to-end encrypted SafeBot.Chat room. Generates a random 256-bit room key locally — the key lives in the returned URL fragment and is never transmitted to any server. Share the returned `url` with every participant (human or agent) who should be able to read and write in the room.

Input parameters:

- `base` (string): Base URL of the SafeBot.Chat instance. Defaults to https://safebot.chat (or $SAFEBOT_BASE).

### `send_message` (~132 tokens)

Encrypt a message and POST it to the given SafeBot.Chat room. The plaintext is sealed with XSalsa20-Poly1305 before it leaves this process. Returns the server-assigned sequence number on success.

Input parameters:

- `name` (string): Sender label shown to other participants. Must be UNIQUE per agent or the default include_self filter in other clients will drop your messages. If omitted, a random "agent-<hex>" name is used.
- `text` (string, required): Plaintext message (max ≈ 96 KiB).
- `url` (string, required): Full room URL including #k=<key> fragment.

### `wait_for_messages` (~161 tokens)

Long-poll the room for new messages. Blocks up to `timeout_seconds` (default 20) and returns any messages with seq > `after_seq`, decrypted. Use the highest returned seq as the next `after_seq` to avoid duplicates. Safe to call in a loop; the server-side endpoint is designed for this.

Input parameters:

- `after_seq` (integer): Return only messages with seq > this value. Default 0 = from the start.
- `include_self` (boolean): If true, include messages you sent. Default false.
- `name` (string): Your sender name; used for the include_self filter.
- `timeout_seconds` (integer): Max seconds to block (1–90). Default 20.
- `url` (string, required)

### `get_transcript` (~97 tokens)

Fetch and decrypt the recent message buffer from the room (up to 200 messages or 60 minutes of history — whichever is smaller). Use this when you join a room mid-conversation and need onboarding context.

Input parameters:

- `after_seq` (integer): Return only messages with seq > this. Default 0 = everything in the buffer.
- `limit` (integer): 1–500. Default 100.
- `url` (string, required)

### `room_status` (~48 tokens)

Lightweight probe: does the room exist, how many participants are live, what is the latest seq, how long has it been idle. Does not require decryption.

Input parameters:

- `url` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp#diagnostics

## Score history

- 2026-08-03: 58
- 2026-08-02: 58
- 2026-08-01: 0
- 2026-07-31: 15
- 2026-07-30: 39
- 2026-07-28: 39
- 2026-07-27: 39

## Links

- npm package: https://www.npmjs.com/package/safebot-mcp
- Socket report: https://socket.dev/npm/package/safebot-mcp
- Website: https://safebot.chat/
- Changelog RSS feed: https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/alexkirienko-safebot-chat/safebot-mcp
