# gopalrajsuresh/covalent-bond [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/gopalrajsuresh/covalent-bond  
**GitHub Stars:** 0  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gopalrajsuresh-covalent-bond

## Description
Pair two AI coding agents on different machines over an end-to-end-encrypted channel: files and messages travel through a relay that only ever sees ciphertext - it can never read your data - authenticated by a short code shared out-of-band, with human consent before any file is written. Install with npx covalent-bond.

## Tools
Capabilities this server exposes over MCP:

- **bond_connect** — Create a new Covalent Bond session and get a shareable session code. The other agent will use this code to join.
- **bond_join** — Join an existing Covalent Bond session using a session code (format: XXXX-XXXX-XXXX Base58, e.g., "3KPz-QR7m-8WXn"). Call this when the user provides a session code from another agent. The code is a shared secret - it authenticates the encrypted channel and is never sent to the relay.
- **bond_send** — Send a file to the connected agent. File will be encrypted and delivered with an optional message. Subject to 10-second rate limit and security validation (file type whitelist, 256KB default size limit, configurable via COVALENT_MAX_FILE_KB).
- **bond_accept** — Accept a pending file transfer. File will be written to ~/.covalent/incoming/ and its content returned, wrapped in untrusted-data markers.
- **bond_decline** — Decline a pending file transfer. File will be discarded and sender will not be notified.
- **bond_message** — Send a short encrypted text message to the connected agent (no file involved). Use this for agent-to-agent conversation: questions, context, summaries. Requires a confirmed session. Max 4000 characters.
- **bond_wait** — Wait (long-poll) until the next event arrives from the peer (a message, incoming file, or disconnect) or until the timeout passes. Use this in a loop to hold a live conversation with the other agent: call bond_wait, react to what it returns, reply, call bond_wait again. Returns immediately if events are already queued. This costs tokens per call, so loop only during an active conversation; for idle waiting rely on desktop notifications and bond_status.
- **bond_status** — Get current Covalent Bond connection status: session info, handshake state, pending file transfers, and any events (incoming transfers, peer messages) that arrived since the last tool call. Call this periodically while connected to pick up incoming transfers.
- **bond_end** — End the current Covalent Bond session and disconnect from relay. Clears all pending transfers.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "covalent-bond": {
    "command": "npx",
    "args": ["-y","covalent-bond"],
    "env": {
      "COVALENT_RELAY_URL": "",
      "COVALENT_MAX_FILE_KB": ""
    }
  }
}
```

**Requires environment variables:** `COVALENT_RELAY_URL`, `COVALENT_MAX_FILE_KB` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What gopalrajsuresh/covalent-bond MCP server does

The gopalrajsuresh/covalent-bond MCP server gives two MCP-compatible coding agents a shared communication channel across separate machines. It supports encrypted text messages and file transfers, allowing one agent to send context, conventions, or project material to another without requiring inbound network ports between the machines.

A session begins when one side calls `bond_connect` and receives a short session code. A human passes that code to the other operator through a separate channel, such as chat or voice. The second agent calls `bond_join` with the code. The code authenticates the pairing and is not sent to the relay.

## How it works

The agents communicate through a relay that forwards encrypted traffic. The documented design uses X25519 for key exchange and AES-256-GCM for message encryption. The relay receives routing information and ciphertext, but not the session code, encryption keys, or plaintext. Key confirmation is required before application data is exchanged.

After pairing, `bond_status` reports the connection state, handshake state, pending transfers, and events received since the previous status call. `bond_message` handles text communication up to 4,000 characters. `bond_send` encrypts and submits a file with an optional message. The sender is subject to a 10-second rate limit, a file-type whitelist, and a default 256 KB size limit.

The receiver does not write a file automatically. A pending transfer must be approved with `bond_accept`; accepted content is written under `~/.covalent/incoming/` and returned with untrusted-data markers. `bond_decline` discards a transfer without notifying the sender. `bond_wait` long-polls for messages, files, or disconnects during an active conversation, while `bond_end` closes the session and clears pending transfers.

## Setup and configuration

Install the gopalrajsuresh/covalent-bond MCP server through its npm package with `npx -y covalent-bond`. The README provides a standard stdio configuration for MCP clients. Node.js 18 or newer is listed as a requirement.

Set `COVALENT_RELAY_URL` to the public relay URL or to a relay you operate. The project also documents deploying a relay to Cloudflare Workers with Wrangler. Both agents must use a relay that can reach the other participant. After changing configuration, restart the MCP client before checking the connection with `bond_status`.

The documented flow is to configure the server on both machines, create a session on one machine, share the code out-of-band, join from the other machine, and then exchange messages or files. The session ends after inactivity on the public relay according to the documented 30-minute expiry behavior.

## Tools and capabilities

The gopalrajsuresh/covalent-bond MCP server exposes these capabilities:

- Create and join authenticated sessions.
- Send encrypted text messages and files.
- Accept or decline pending file transfers.
- Poll for peer events and inspect connection state.
- End a session and remove pending transfers.

## Limitations and notes

The gopalrajsuresh/covalent-bond MCP server does not automatically copy an entire agent setup or make decisions about which files should be shared. File receipt requires human consent, and received content should be treated as untrusted data. The public relay is rate-limited and described as best-effort; sessions expire after inactivity and data is not retained there. File size, file type, and message-length limits also constrain transfers.

_Full upstream README: https://allmcps.com/mcp/gopalrajsuresh-covalent-bond/readme_

