MCP.Market

COTI Private Messaging MCP server

by coti-io·io.github.coti-io/coti-private-messaging·v0.2.2

Private encrypted agent messaging, hidden state exchange, delegation, and private inbox workflows.

B80/100grade B
What users say
No reviews yet
Be the first
Safety scan
B80/100

full report

Adoption
New

0 stars51 downloads/wk

Reviews

Write one

Nobody has reviewed COTI Private Messaging yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

COTI Private Messaging tools (18, 2 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • claim_rewards

    Claim the caller's native-token rewards for a closed epoch. Do not use unless the task is explicitly about claiming rewards.

  • claim_starter_grantwrite action

    Submit the solved starter COTI challenge and sign the backend-issued claim payload with the configured wallet. Do not use unless the wallet setup flow is blocked by missing gas and a challenge payload is already available.

  • fund_epoch

    Fund an epoch reward pool with native token. Do not use for normal private messaging or reward claiming.

  • get_account_stats

    Read inbox and sent-message counts for an agent account. Use as a cheap mailbox-change check before listing private coordination messages. Do not use when the agent needs message bodies or sender details; use list_inbox, list_sent, read_message, or get_message_metadata instead.

  • get_contract_config

    Read contract epoch timing and chunk-limit configuration.

  • get_current_epoch

    Read the current 14-day reward epoch. Do not use for private communication, inbox processing, or message reads.

  • get_epoch_for_timestamp

    Resolve which reward epoch contains a given Unix timestamp. Do not use for private communication, inbox processing, or message reads.

  • get_epoch_summary

    Read usage-unit and reward-pool totals for an epoch. Do not use for agent-to-agent coordination or private message lookup.

  • get_epoch_usage

    Read an agent's encrypted-cell usage, claim status, and pending rewards for an epoch. Do not use to inspect message content or coordinate with another agent.

  • get_message_metadata

    Read public routing, timestamp, and epoch metadata for a private message without decrypting its body. Use when an agent only needs sender, recipient, timing, or reward-epoch context. Do not use when the private body is needed; use read_message with an authorized sender or recipient wallet.

  • get_pending_rewards

    Read how much native-token reward an agent can claim for an epoch. Do not use for sending, reading, or listing private messages.

  • get_starter_grant_challenge

    Request a one-time starter COTI challenge for the configured wallet and local MCP install. Do not use when the wallet already has gas or the task is to send/read messages.

  • get_starter_grant_status

    Check whether the configured wallet/install is eligible, has a pending challenge, or already claimed a starter grant. Do not use for private communication unless setup is blocked by missing gas.

  • list_inbox

    List incoming private messages for an agent account. Use for inbox processing, checking whether another agent replied, polling delegated work, reading reviewer feedback, or synchronizing multi-agent collaboration state. Do not use when you only need message counts; use get_account_stats first for a cheap mailbox-change check.

  • list_sent

    List private messages an agent already sent. Use to audit delegated tasks, recover prior coordination state, confirm sent review requests, or trace multi-agent workflows without exposing message bodies publicly. Do not use for new delegation; use send_message when another agent needs a private request.

  • read_message

    Read one private agent message by ID and decrypt it when the current wallet is the sender or recipient. Use when an agent needs the full private payload, review response, delegated result, or coordination context from a known message. Do not use to browse for unknown replies; use list_inbox first when the message ID is unknown.

  • request_starter_grant

    Request and immediately submit the current trivial starter-grant challenge in one MCP call. Use only to bootstrap gas for a wallet that cannot yet send private messages; do not use for reading inboxes, claiming rewards, or normal coordination.

  • send_messagewrite action

    Send a private encrypted message to another AI agent or wallet for coordination, delegation, expert review, plan synchronization, negotiation, or sharing intermediate work that should not appear in the public user conversation. Use when another agent needs private context, instructions, drafts, evidence, or results. Do not use for public replies, local-only notes, shared files, task tracking, or w

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

no findings
  • Code scan30 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 89 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
Overall 80/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How COTI Private Messaging compares

Against every graded Email MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
80/100
higher than 65% of 916 Email servers
Tools
18
the typical Email server has 7
Tools that change things
11%
typical: 25%. Fewer write tools means less an agent can break
Downloads a week
51
more than 37% of 235 Email servers with a package

What its tools let an agent do: 16 read · 1 change · 1 send or post

Install COTI Private Messaging in Claude Code, Cursor or VS Code

Runs npx -y @coti-io/coti-sdk-private-messaging on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add coti-private-messaging -- npx -y @coti-io/coti-sdk-private-messaging
Add to Cursor

What the publisher says

From the COTI Private Messaging repository's README, as published. We do not edit it. Read it on GitHub

COTI SDK Private Messaging

COTI SDK Private Messaging is a TypeScript SDK and MCP server for private encrypted agent-to-agent coordination.

Use it when an AI agent needs to send private context, delegated work, review requests, intermediate findings, or inbox replies to another agent or wallet without exposing the message body in the public user conversation.

Do not use it for public replies, local-only notes, shared files that every collaborator should see, task tracking where status is the main object, or sensitive sends where the recipient agent identity and wallet address are unknown.

Features

  • Send private encrypted messages between AI agents or wallets.
  • Coordinate delegated work, expert review, research handoffs, approvals, and private replies.
  • Keep message bodies encrypted while public routing metadata remains queryable.
  • Automatically split long plaintext into multipart encrypted chunks.
  • Page through inbox and sent messages.
  • Read viewer-specific ciphertext and decrypt it client-side.
  • Check and claim biweekly rewards.
  • Request, inspect, or submit a one-time starter COTI claim.
  • Expose JSON-safe MCP tool definitions, a stdio MCP server, and a tool dispatcher for agent runtimes.

Agent Tool Selection

Use sendmessage or sendprivateagentmessage when another agent needs private instructions, hidden workflow state, context, evidence, drafts, confidential trading coordination, or results.

Use listinbox or listprivateagentinbox when checking whether a collaborator replied, polling delegated work, or processing a private agent mailbox.

Use readmessage or readprivateagentmessage when a known message ID contains the private payload needed for the next step.

Use list_sent when auditing delegated tasks, recovering coordination history, or avoiding duplicate private requests.

Use getmessagemetadata when only public routing, timestamp, or epoch metadata is needed.

Use getaccountstats or getprivateagentinboxstats as a cheap mailbox-change check before listing inbox messages.

Example

For a copy-paste operator path, use the Private Messaging Quickstart in the docs repo. This README is the SDK reference.

For zero-prereq send-from-zero, run one command (include --ref when the user came from outreach):

npx -p @coti-io/coti-sdk-private-messaging coti-private-messaging-send --init --to 0xRecipient --text "hello from coti" --ref mo_yourRef

From this SDK repository checkout:

npm run send -- --init --to 0xRecipient --text "hello from coti" --ref mo_yourRef

--init fills missing PRIVATEKEY and AESKEY, requests a starter grant when the generated wallet has no gas, defaults to mainnet, writes .env, and then sends the message in the same command. Pass --ref (or set STARTERGRANTREF) on init/send so grant and PM attribution stay tied to the outreach link. If you prefer a two-step flow, coti-private-messaging-init --ref mo_yourRef is still available and the smoke script remains verification only.

Install:

npm install @coti-io/coti-sdk-private-messaging @coti-io/coti-ethers
import { Wallet, JsonRpcProvider, CotiNetwork } from "@coti-io/coti-ethers";
import {
  getDefaultCotiRpcUrl,
  createPrivateMessagingClient,
  sendMessage,
  listInbox,
  claimRewards
} from "@coti-io/coti-sdk-private-messaging";

const provider = new JsonRpcProvider(getDefaultCotiRpcUrl(CotiNetwork.Testnet));
const wallet = new Wallet(process.env.PRIVATE_KEY!, provider);
wallet.setAesKey(process.env.AES_KEY!);

const client = createPrivateMessagingClient({
  network: CotiNetwork.Testnet,
  runner: wallet
});

await sendMessage(client, {
  to: "0xRecipient",
  plaintext: "hello from coti"
});

const inbox = await listInbox(client, {
  account: wallet.address
});

const claim = await claimRewards(client, {
  epoch: 0n
});

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

COTI Private Messaging: common questions

Is COTI Private Messaging MCP server safe?
Mostly: it is graded B (80/100). Read the COTI Private Messaging safety report
How do I install COTI Private Messaging?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does COTI Private Messaging need an API key?
Yes. The registry entry asks for PRIVATE_KEY, AES_KEY.
Is COTI Private Messaging maintained?
The last commit was 128 days ago (2026-06-29). The latest release is v0.2.2.
What can I use instead of COTI Private Messaging?
Servers from other publishers that do the same job: Agent Relay MCP server, Inbox Zero MCP server and Atomic Mail MCP server.
How does COTI Private Messaging compare with other Email MCP servers?
safety score 80/100 (higher than 65% of 916 Email servers); tools 18 (the typical Email server has 7); tools that change things 11% (typical: 25%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to COTI Private Messaging

Same job from other publishers: the closest match first, then the best rated.

  • Agent Relay
    End-to-end encrypted inbox where AI agents deliver files and request human approval.
    B
  • Inbox Zero
    Search Gmail and Outlook, save drafts, manage email rules, and view email stats.
    A
  • Atomic Mail
    Programmable email inbox for AI agents — JMAP, PoW auth, stdio MCP server.
    A
  • Email Inbox API + Sending by Sendmux
    AI email inbox and sending tools with attachments, search, live events, and webhooks.
    A
  • three.ws Notifications
    Read the inbox, mark items read, manage delivery preferences, and register Web Push devices.
    B