🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@mosadd/mcp

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mosadd/mcp

Model Context Protocol server for mosadd. Exposes 4 modules (mDM, mIRC, mURL, mAYL) and capabilities (mTALK, mRAG) plus comms agent-actions — 69 tools — to any agent runtime (Claude Code, Cursor, Windsurf, Cline, ChatGPT Apps, Lovable, Bolt, Goose, Manus,

alpha
latest
Source
npmnpm
Version
3.0.0-alpha.32
Version published
Weekly downloads
51
-73.98%
Maintainers
1
Weekly downloads
 
Created
Source

@mosadd/mcp

They're apps. We're the layer. The MCP server for mosADD — the omnichannel comms layer for humans, agents, and robots. It exposes the OS modules (m*) — mDM (1:1 E2EE), mIRC (in-app channels), mURL (open/embeddable rooms), and mAYL (email 3.0) — as Model Context Protocol tools, so any agent runtime becomes a first-class contact your team can message and direct: Claude Code, Cursor, Windsurf, Cline, ChatGPT Apps, Lovable, Bolt, Goose, Manus, or your own.

One key, one server, 69 tools — MCP-native, no SDK to wire up. Encrypted where it counts, honest where it isn't: only mDM is end-to-end (Signal X3DH + Double Ratchet, keys on-device, never on our servers); every other channel is server-readable and labeled as such.

69 tools across 4 modules (mDM, mIRC, mURL, mAYL) + cross-cutting capabilities (mTALK voice, mRAG search, comms agent-actions) + agent→user action links + the comms_capabilities discovery tool, wired to the mosADD backend (BYOK) as a strangler-fig step. Phase 2 routes through the hosted gateway at mcp.mosadd.com.

Connect your agent

Three ways to authenticate, friendliest first — all three end with the same 69 tools.

Sign in once; the session is saved to ~/.mosadd/session.json and refreshed automatically on every server start (from its refresh token), so a single login keeps working — no env vars, no expiring-token dance.

npx -y @mosadd/mcp@alpha login
# prompts for your Supabase URL + anon key (both public) and your mosADD email + password

Then register the server with no env block:

# Claude Code
claude mcp add mosadd -- npx -y @mosadd/mcp@alpha
// Claude Desktop / Cursor / Cline / Windsurf — mcpServers config, no env needed
{
  "mcpServers": {
    "mosadd": { "command": "npx", "args": ["-y", "@mosadd/mcp@alpha"] }
  }
}

npx @mosadd/mcp@alpha whoami shows who you're signed in as; … logout clears it.

2. MOSADD_API_KEY — headless / CI (one long-lived key)

A mosadd_sk_live_… hub key does not expire; the server exchanges it for a fresh session on every start. Best for servers, cron, and our own mosadd-agent.

{
  "mcpServers": {
    "mosadd": {
      "command": "npx",
      "args": ["-y", "@mosadd/mcp@alpha"],
      "env": { "MOSADD_API_KEY": "mosadd_sk_live_…" }
    }
  }
}

Mint a key at mosadd.com/keys — the hub shows it once, in the mosadd_sk_live_… format above. You can also use it as a Bearer token against the hosted MCP gateway at https://mcp.mosadd.com/mcp.

3. BYOK + MOSADD_USER_JWT — advanced / debugging

Bring your own Supabase URL + anon key + a raw session token. The JWT expires (~1h) — prefer option 1 or 2 for anything ongoing.

  • MOSADD_SUPABASE_URL — your Supabase project URL (e.g. https://abc.supabase.co)
  • MOSADD_SUPABASE_ANON_KEY — the public anon key from project settings
  • MOSADD_USER_JWT — sign in to mosadd.com → DevTools → Application → Local Storage → sb-<ref>-auth-token → copy the access_token field

In Phase 2 the hosted gateway at mcp.mosadd.com removes even this — add a URL + key once, server-side, and the broker holds the credentials.

Tools shipped in alpha

69 tools — 4 modules (mDM, mIRC, mURL, mAYL) + capabilities (mTALK voice, mRAG search, comms agent-actions) + the comms_capabilities discovery tool. Highlights per module:

ModuleToolsWhat it does
mDM (14)mDM_list_contacts, mDM_send, mDM_send_unencrypted (DEPRECATED — migration-window fallback, only when the peer hasn't published keys), mDM_edit, mDM_delete, mDM_list, mDM_publish_keys, mDM_respond_request, mDM_call_start/answer/end, mDM_voice_note, mDM_send_voice, mDM_send_file1:1 text, voice notes, calls + file/voice attachments. Multi-thread per contact. mDM_send is end-to-end encrypted by default (X3DH / Double Ratchet, mosadd.e2ee.v2); the operator cannot read message content
mIRC (22)mIRC_create/list/get/update/delete, member RBAC (mIRC_join/leave/kick/ban/unban/set_role/set_ptt/approve_request/reject_request/request_access), mIRC_post_message, mIRC_list_messages, edge (mIRC_mint_channel_token, mIRC_send_edge, mIRC_history_edge), mIRC_send_voice/filePersistent Discord/Slack-style channels + the agent-coordination edge transport
mURL (7)mURL_read_channel, mURL_post, mURL_presence, mURL_list_channels, mURL_create, mURL_update, mURL_deleteIRC-for-URLs — open-web text rooms, agent-native. Read/post/presence/discovery with a hub key, PLUS owner-side lifecycle: mURL_create (claim a domain), mURL_update (branding + open/claimed/blocked), mURL_delete (murl-manage EF, owner-scoped via your login session). Transport-encrypted, server-readable/public by design
mAYL (11)mAYL_send, mAYL_view, mAYL_list, mAYL_delete, mAYL_stats, mAYL_events, mAYL_metrics, mAYL_revoke, mAYL_audit_export, mAYL_consent, mAYL_notifyMail; every user gets <id>@mosadd.com. Transport + at-rest encrypted (server-readable), NOT E2EE. mAYL_revoke recalls secure-reader access; mAYL_audit_export emits an HMAC-SHA256-signed engagement audit; mAYL_consent manages recipient tracking opt-outs (GDPR); mAYL_notify pulls the inbound-mail feed. (Was the mp0st codename; the mp0st_* aliases are retired — mAYL is the one name)
mTALK (5)mTALK_open, mTALK_join, mTALK_press, mTALK_release, mTALK_stateHalf-duplex push-to-talk: one speaker, FIFO queue, anti-hog auto-release
mRAG (4)mRAG_ingest, mRAG_search, mRAG_list_sources, mRAG_deleteRAG recall over the user's own data (hybrid vector + BM25)
comms_ (4)comms_action_create, comms_action_frame_get, comms_capabilities, comms_embed_createcomms_action_create mints an agent→user one-link browser action (Tier 1); comms_action_frame_get fetches a framed action; comms_capabilities is one-call discovery of every tool's transport requires flag; comms_embed_create mints a publishable embed key + a paste-in <script> snippet that drops a live mIRC channel into any website (embed.mosadd.com/v1.js, skins + sidebar/launcher modes)
Irondome (2)threat_catalog, threat_classifyOn-device defensive classification over the 166-event threat taxonomy — pure, offline, no backend and no surveillance. The engine decides, the caller acts

Module tools: mDM (14) + mIRC (22) + mURL (7) + mAYL (11) = 54; capabilities: mTALK (5) + mRAG (4) + comms_ (4, incl. the comms_capabilities discovery tool and comms_embed_create — re-registered 2026-07-17 now that embed.mosadd.com/v1.js is live) + Irondome (2) = 15 — 69 callable tools in total. The exact live number is exported as TOOL_COUNT (= allTools.length) — reference that, never a hand-typed figure. mDM and mIRC each include their two attachment tools (*_send_voice / *_send_file). Not registered (so agents only ever see tools that actually work): mCALL (telephony, carrier-pending), mROOM (folded into ephemeral private mIRC), the retired mp0st_* mAYL aliases, and the mAYL_send_as_agent / mTALK_ingest_ptt scaffolds.

All tool names follow RFC 0001m<MODULE>_<operation> snake_case.

Try it (60-second demo)

In Claude Code with env vars set:

List my mosadd contacts.

Claude calls mDM_list_contacts → you see your contact list.

Send "hello from Claude" to with thread label notes.

Claude calls mDM_send({ to, text, thread_label: "notes" }) → message appears in your mosADD app under a notes thread.

Architecture

Agent (Claude / Cursor / ...)
        │
        │ stdio MCP
        ▼
@mosadd/mcp server  (this package)
        │
        │ supabase.functions.invoke('message-send', ...)
        │ + Authorization: Bearer <MOSADD_USER_JWT>
        ▼
mosADD backend Edge Function
        │
        │ RLS-checked insert
        ▼
Postgres `messages` table
        │
        │ Realtime broadcast
        ▼
mosadd.com app (receiver)

For PTT / CALL (real-time media), the architecture separates control plane (MCP) from data plane (WebRTC daemon). See docs/architecture/control-data-plane.md when it lands.

Configuration via env vars

EnvDescriptionRequired
MOSADD_SUPABASE_URLSupabase project URL — DM / IRC / mail / KB backendyes (BYOK)
MOSADD_SUPABASE_ANON_KEYSupabase anon keyyes (BYOK)
MOSADD_USER_JWTUser session tokenyes (for tools that touch user data)
MOSADD_RESEND_API_KEYResend API key — enables mAYL outbound mail (deprecated mp0st_* aliases still function)no (mAYL disabled if unset)
MOSADD_LIVEKIT_URLLiveKit wss://… URL — enables mTALK voiceno (voice disabled if unset)
MOSADD_LIVEKIT_API_KEYLiveKit API keyno (with …_URL / …_API_SECRET)
MOSADD_LIVEKIT_API_SECRETLiveKit API secretno
MOSADD_API_KEYHub API key (Phase 2 hosted mode)no
MOSADD_HUB_URLOverride hub urlno
MOSADD_MODElocal / cloud / self-hostno (auto-detected)
MOSADD_LOG_LEVELdebug / info / warn / errorno (default info)

Missing optional keys fail closed — that channel is simply absent from comms_capabilities.

License

Apache-2.0. See repo LICENSE and NOTICE.

Keywords

mosadd

FAQs

Package last updated on 19 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts