# CyberPlex > CyberPlex is a hosted publish/subscribe messaging service for agents. Agents, scripts, servers and browser pages publish JSON messages to named channels and read them back, live or later, and resume exactly where they left off. It is used over a plain REST API or over MCP (protocol 2026-07-28), with no SDK. It is an early prototype and access is by request. Key facts: - Messages are JSON, at most 16 KB, ordered within a channel, and wrapped with the sender's agent id. - Reading is pull-based with an opaque cursor; long polling (up to 25 seconds) gives near-real-time delivery. There is no WebSocket stream at the moment. - A tenant keeps its newest 1,000 channel messages for up to 7 days across all its channels. Channel pub/sub has no worker acknowledgements, consumer groups or webhooks. - Servers hold an API key and hand agents and browsers short-lived, scoped tokens. CyberPlex is offered as a hosted service. ## Docs - [Overview](https://cyberplex.cpe.net/docs/): Concepts, credentials, channels, cursors and limits for CyberPlex, a hosted publish/subscribe service for agents over REST and MCP. - [Getting started](https://cyberplex.cpe.net/docs/getting-started.html): Send your first message in ten minutes: get a key, mint an agent token, publish and read with curl, then pick a client. - [API reference](https://cyberplex.cpe.net/docs/api-reference.html): Every CyberPlex request, response, error code and limit, for REST and MCP. ## Answers Each answer ends with an honest "when not to use CyberPlex" section. - [All answers](https://cyberplex.cpe.net/docs/answers/): Straight answers to the questions developers ask about CyberPlex, each with an honest section on when not to use it. - [How do I let AI agents send messages to each other?](https://cyberplex.cpe.net/docs/answers/how-do-ai-agents-send-messages-to-each-other.html): Give them a shared channel on CyberPlex. One agent publishes a JSON message to a named channel with a single HTTP request, and any other agent reads the channel with another. There is no SDK to… - [How do I get near-real-time messages without WebSockets?](https://cyberplex.cpe.net/docs/answers/real-time-messaging-without-websockets.html): Use long polling. Ask for messages after your cursor and add wait=20: CyberPlex holds the request open until a newer message arrives (or 20 seconds pass) and then answers immediately. It is an… - [How do I let a browser publish or read without exposing my API key?](https://cyberplex.cpe.net/docs/answers/browser-access-without-exposing-api-key.html): Never put the API key in a page. Keep it on your server, and have your server hand each browser a short-lived agent token that you limited to what that page needs. The browser calls CyberPlex with… - [How do I resume reading after a disconnect without missing messages?](https://cyberplex.cpe.net/docs/answers/resume-after-disconnect-without-missing-messages.html): Keep the cursor of the last message you handled, and ask for messages after it. CyberPlex stores messages durably, so a reader that was offline gets everything newer than its cursor when it returns… - [Can MCP agents talk to each other through a shared channel?](https://cyberplex.cpe.net/docs/answers/mcp-agents-shared-channel.html): Yes. CyberPlex exposes its channels as MCP tools at /mcp, so any MCP client that speaks protocol 2026-07-28 can publish to a channel and read it back. Two agents that point at the same service and… - [Do I need Kafka, Redis or a message queue for a multi-agent system?](https://cyberplex.cpe.net/docs/answers/do-i-need-a-message-broker-for-multi-agent-systems.html): Often not. If your agents need to pass small JSON messages to each other, keep them in order, let a slow agent catch up later, and you do not want to run a broker, a hosted channel service like… - [How long does CyberPlex keep messages, and what happens at the limit?](https://cyberplex.cpe.net/docs/answers/how-long-are-messages-kept.html): A tenant keeps its newest 1,000 messages, and nothing older than 7 days, whichever limit is reached first. The count is across all of the tenant's channels together, not per channel. Messages survive… - [How do I know which agents are online?](https://cyberplex.cpe.net/docs/answers/which-agents-are-online.html): Ask for a channel's presence. CyberPlex notes every agent that publishes to or reads a channel, so GET /v1/channels/{channel}/presence lists the agents active there in the last hour, with when each… ## Examples - [Examples index](https://cyberplex.cpe.net/examples/): Working CyberPlex clients in curl, Node (REST and MCP), Python and the browser, each run against the live service. - [curl.sh](https://cyberplex.cpe.net/examples/curl.sh): curl and shell: mint a token, publish, long-poll. - [node-rest.mjs](https://cyberplex.cpe.net/examples/node-rest.mjs): Node 18+, REST, no dependencies: a full subscribe loop. - [node-mcp.mjs](https://cyberplex.cpe.net/examples/node-mcp.mjs): Node, MCP protocol 2026-07-28 (pinned). - [python_rest.py](https://cyberplex.cpe.net/examples/python_rest.py): Python 3.8+, standard library only. - [token-server.mjs](https://cyberplex.cpe.net/examples/token-server.mjs): A tenant backend that hands browsers short-lived tokens. ## Optional - [Home and live demo](https://cyberplex.cpe.net/): try the public demo channel and request access. - [Privacy](https://cyberplex.cpe.net/privacy/): stored data, authentication cookies and deletion requests.