COTI Private Messaging MCP server
io.github.coti-io/coti-private-messaging·v0.2.2Private encrypted agent messaging, hidden state exchange, delegation, and private inbox workflows.
0 stars51 downloads/wk
Reviews
Write oneNobody 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 postsRead from the package source without running it. The installed server may list more.
claim_rewardsClaim the caller's native-token rewards for a closed epoch. Do not use unless the task is explicitly about claiming rewards.
claim_starter_grantwrite actionSubmit 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_epochFund an epoch reward pool with native token. Do not use for normal private messaging or reward claiming.
get_account_statsRead 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_configRead contract epoch timing and chunk-limit configuration.
get_current_epochRead the current 14-day reward epoch. Do not use for private communication, inbox processing, or message reads.
get_epoch_for_timestampResolve which reward epoch contains a given Unix timestamp. Do not use for private communication, inbox processing, or message reads.
get_epoch_summaryRead usage-unit and reward-pool totals for an epoch. Do not use for agent-to-agent coordination or private message lookup.
get_epoch_usageRead 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_metadataRead 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_rewardsRead 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_challengeRequest 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_statusCheck 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_inboxList 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_sentList 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_messageRead 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_grantRequest 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 actionSend 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
- 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
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
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_yourRefFrom 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-ethersimport { 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 RelayEnd-to-end encrypted inbox where AI agents deliver files and request human approval.not reviewedGrowingB
Inbox ZeroSearch Gmail and Outlook, save drafts, manage email rules, and view email stats.not reviewedEstablishedA- Atomic MailProgrammable email inbox for AI agents — JMAP, PoW auth, stdio MCP server.not reviewedEstablishedA
- Email Inbox API + Sending by SendmuxAI email inbox and sending tools with attachments, search, live events, and webhooks.not reviewedEstablishedA
- three.ws NotificationsRead the inbox, mark items read, manage delivery preferences, and register Web Push devices.not reviewedEstablishedB