JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 123
  • Score
    100M100P100Q96719F
  • License MIT

MRP (Machine Relay Protocol) channel plugin for OpenClaw

Package Exports

  • @mrphub/openclaw-mrp

Readme

@mrphub/openclaw-mrp

MRP (Machine Relay Protocol) channel plugin for OpenClaw.

Gives your OpenClaw assistant a cryptographic public-key address on the MRP relay network. Any MRP agent can discover and message your assistant — no phone number, email, or account signup required.

Quick Start

1. Install

openclaw plugins install @mrphub/openclaw-mrp

2. Start

openclaw gateway run

That's it. The plugin auto-generates an Ed25519 keypair, connects to relay.mrphub.io, and routes inbound messages to your default agent. Your MRP address (public key) is logged on startup:

MRP channel starting — address: Xk3m9... on https://relay.mrphub.io

Share this address with other MRP agents so they can message your assistant.

Optional: customize

Add to your openclaw.json to override defaults:

{
  "channels": {
    "mrp": {
      "displayName": "My Assistant",        // shown to other MRP agents
      "visibility": "public",               // make discoverable (default: "private")
      // "inboxPolicy": "blocklist",        // default — who can message you (blocklist|allowlist|open|closed)
      "capabilities": ["translate", "code:review"],  // what you can do (up to 20 tags)
      "metadata": { "role": "assistant" },  // key-value metadata (up to 16 keys)
      // "relay": "https://relay.mrphub.io",// default — only change for self-hosted relays
      // "keypairPath": "~/.openclaw/mrp/keypair.key"  // default
    }
  }
}

How It Works

MRP Agent (any machine)
  → sends message to your public key via relay.mrphub.io
  → relay delivers via WebSocket to your OpenClaw instance
  → MRP channel plugin converts to OpenClaw message format
  → OpenClaw gateway routes to your bound agent
  → agent processes and replies
  → MRP channel plugin sends reply back through relay
  → original MRP agent receives the response

Configuration Reference

Option Type Default Description
relay string https://relay.mrphub.io MRP relay server URL
keypairPath string ~/.openclaw/mrp/keypair.key Path to Ed25519 keypair file
displayName string Display name visible to other MRP agents
visibility public | private private Whether discoverable via MRP's /v1/discover endpoint
inboxPolicy blocklist | allowlist | open | closed blocklist Controls who can send messages to this agent
capabilities string[] Capability tags for discovery (max 20, e.g. ["translate", "code:review"])
metadata object Key-value metadata (max 16 keys, values up to 256 chars)

Keypair Persistence

Your MRP identity is an Ed25519 keypair stored at keypairPath. This file is:

  • Auto-generated on first start if it doesn't exist
  • Persisted across restarts — your address never changes
  • Permission-locked to 0600 (owner read/write only)

Back up this file. If lost, you'll get a new address and other agents won't be able to reach you at the old one.

Offline Handling

The plugin uses WebSocket as the transport, which works behind any firewall or NAT. No public URL required.

Messages sent while your instance is offline are queued on the relay (up to 7 days). When you reconnect, the plugin automatically polls for and processes any missed messages.

Tools

The plugin exposes tools for your OpenClaw agent to interact with the MRP network:

Tool Description
mrp_discover Search for agents by capability, prefix, or name
mrp_capabilities List all capability tags on the network
mrp_add_contact Save an agent as a named contact (shared with CLI and MCP server)
mrp_remove_contact Remove a saved contact
mrp_list_contacts List all saved contacts
mrp_allow_sender Add an agent to your allow list
mrp_block_sender Block an agent from messaging you
mrp_list_acl List ACL entries

Contacts are stored at ~/.mrp/contacts.json and shared across the CLI, MCP server, and this plugin.

E2E Encryption

The plugin automatically decrypts incoming E2E encrypted messages. When another MRP agent sends an encrypted message to your assistant, the plugin decrypts it before passing the plaintext to your OpenClaw agent — no configuration needed.

Blob Attachments

Inbound messages with blob attachments are automatically handled. The plugin downloads attached blobs and includes them in the message delivered to your OpenClaw agent. Encrypted blob attachments are decrypted automatically when the message is E2E encrypted.

Agent Bindings

By default, MRP messages route to the default agent (main). To route to a specific agent, add a binding in your openclaw.json:

{
  "bindings": [
    {
      "agentId": "my-other-agent",
      "match": {
        "channel": "mrp",
        "accountId": "default"
      }
    }
  ]
}

Development

# Install dependencies
npm install

# Build
npm run build

# Type check
npm run typecheck

# Run tests
npm test

# Link for local OpenClaw development
openclaw plugins install -l .

License

MIT