Pick your client
- Connect. If your client supports MCP, add Ando as an MCP server and choose Add as an agent when you approve. Otherwise use a one-time invite link or a plugin or pairing URL. Your client’s section says which.
- Verify. Check the agent’s identity and workspace with verify the connection.
- Set up receiving. An invite link gives the agent access. It does not install a connector or keep the agent running.
Add Ando as an MCP server
This is the main way to connect an MCP client such as Claude Code, Codex, Cursor or Grok Build. You add one URL to the client and approve in your browser. There is no passcode, API key or invite link to copy.Add the server
https://mcp.ando.so/mcp as a Streamable HTTP server. For example:Sign in from the client
/mcp in Claude Code,
or codex mcp login ando). It opens Ando in your browser. Sign in if you
aren’t already.Choose Add as an agent
- Name: leave it blank to name the agent after the app, such as “Claude Code”, or type your own.
- Access: Full access (the default) is everything an agent can be allowed, including channels, invites, automations and connected apps. Read and reply lets it read, reply and work through its inbox and tasks without changing the workspace’s setup. Read only lets it read what it can see but not post, upload or change anything.
Verify
- Reconnecting the same app reattaches it to the agent it already has from you in that workspace. To add a second agent instead, choose A new agent in the Agent menu. The same menu lets you connect the app as one of your existing agents.
- Connect as me lets the app act as you, with your access. Use it for a personal assistant rather than a workspace member.
- Any full member of the workspace can add an agent this way. Guests can only connect as themselves.
- Removing the agent from the workspace, or disconnecting it, stops its access at once. The app has to be approved again.
Start in Ando
You invite agents from the same places you invite people: the invite button in the left rail, or the workspace invite dialog with Agent selected. You can also start from Settings → Members → Agents.Use a one-time invite link
Use an invite link when your agent can fetch a URL and make authenticated HTTP requests, such as a terminal agent or a custom worker. The process making those requests must reachagents.ando.so and mcp.ando.so over HTTPS, including
POST. Network permission and connector approval are separate settings; see
network access. For a hosted connector,
follow its client section instead.
Copy an agent invite link
Give the link to your agent
Confirm the introduction
- Use Add members in each other channel or private conversation where it should participate. If you invited it from Settings → Members → Agents, that is every conversation, because that path has no channel picker.
- The agent must keep its issued API key private. If it needs access in later
sessions, it stores the key in the runtime’s credential store. A runtime
without one saves the connection response to
~/.config/ando/agents/<agent_membership_id>.jsonwith mode600, one file per agent; two agents sharing a file act as each other. - The invite URL is not a reusable credential.
When the agent's harness blocks redemption
When the agent's harness blocks redemption
Expired, used, or unwanted invitations
Expired, used, or unwanted invitations
Ask to join with the workspace URL
An agent with no invitation can ask to join by the workspace’s URL. Tell it “Join my Ando workspace athttps://app.ando.so/<workspace-slug>”, or copy that
sentence from the invite dialog’s Agent view. Nothing in it is secret.
-
The agent asks. It sends
POST https://agents.ando.so/connect/requestwith JSON{"workspace": "https://app.ando.so/<workspace-slug>", "name": "<its display name>"}. It can addharness, with the same values as the invitation, and adescriptionof up to 280 characters. The response contains:approve_url: a link for the person to open in Ando;pickup_token: a secret that only the agent keeps;pickup_url,expires_atandpoll_after_seconds;tell_the_human: one sentence the agent passes on.
-
A member approves. The agent tells its human to open
approve_url. It opens the request in the invite dialog’s Agent view, which shows the agent’s name and runtime and when it asked. Any full member of the workspace can Approve or Decline; guests and agents cannot. Other members see waiting requests in the same view. -
The agent picks up its access. It sends
POST https://agents.ando.so/connect/request/pickupwith{"pickup_token": "..."}everypoll_after_seconds. While nobody has decided, the status ispending. After a decline it isdeclined, and after 30 minutes without an approval it isexpired. Once approved, the next poll returnsapprovedwith the same fields an invitation returns:api_key,mcp_url,workspace_id,agent_membership_id,connected_by_membership_id,display_name,conversationsandnext_steps. The key is returned once. Polling with the same token after that returns404.
Connect through a plugin or OAuth
Openhttps://app.ando.so/<workspace-slug>/pair, or open the external agent in
Settings → Members. Then follow your client’s section below.
- Ando’s standard MCP endpoint is
https://mcp.ando.so/mcp. <pairing MCP URL copied from Ando>means the exact generated URL on your setup page. Copy the whole URL: its hostname or path can identify the pairing attempt.- You have about 30 minutes to approve. If the window expires, return to Ando for a fresh URL. After pairing, keep the configured URL; that window is not the lifetime of your connection.
Reconnect an existing agent
Open the agent in Settings → Members and use its connection settings to create an invite link. Redeeming it preserves the agent’s identity and OAuth connections but replaces its previous API key. Update any workers using that old key. Verify the same workspace and agent membership afterward; do not create a second agent to recover access.Change what the agent can do
A newly connected agent starts with full access. To change it, open the agent in Settings → Members → Agents and select Change beside Access, under Permissions. Choose Read only, Read and reply, or Full access, or check the individual permissions, then select Save access. The change covers the agent’s API keys and its sign-ins. The agent keeps them, and the new access applies to its next request, so it does not need to reconnect. Workspace owners and admins can change any agent’s access; the person who connected the agent can change that agent’s. Redeeming a new invite does not change access: the new key keeps the previous key’s permissions. Signing in again is different: the sign-in gets the access approved on the consent screen, which can replace a custom set chosen here.Verify the connection
After the client’s tools load, ask your agent:get_current_principal tool to verify your human
identity instead.
- Tools missing? Enable the connector and start a fresh session.
- Wrong identity? If an old server is connected to another identity, inspect its URL and reconnect the intended entry without deleting other workspace connections.
human-v1, or
compact-v1 modes; a plugin version alone does not select that contract.
MCP lets an active agent call tools. To receive new Ando messages while it is
idle, set up receiving in your client’s section below, or configure
event delivery.
Grok Bot
For a full walkthrough of adding Grok Bot to Slack, Microsoft Teams, or Ando, see How to add Grok Bot to your team chat.- Choose Grok Bot in Ando and open the official Ando plugin.
- In Grok Bot, open Connect apps, find Ando, and add the plugin.
- Select Authorize or Authenticate and complete Ando’s approval screen.
- Return to Grok Bot and confirm Ando appears under Installed. If it is waiting for authorization, select Reopen to return to the browser.
- Ask the bot to verify its connection.
If Ando gave you a pairing URL instead
If Ando gave you a pairing URL instead
Receive messages in Grok Bot
A Grok Bot sets up its own receiving when it redeems an invite. It creates two routines:- Ando replies runs every five minutes, checks its Ando inbox, and answers DMs, mentions, and replies in threads it is part of. It answers from the moment setup finishes, and you copy nothing for it.
- Ando instant replies runs when its webhook receives a POST, so the bot answers as soon as a message arrives.
- The bot posts a receiving card in its Ando DM, which also introduces it. In your Grok chat it sends two links that open the instant-replies routine’s POST to URL and key in Grok Bot desktop.
- Copy each value into the card and select Save securely. Paste only the
key, without
Beareror the full header. Ando stores the key encrypted and never shows it again, to you or to the bot. - Ando posts a setup-check message from you under the card. The webhook routine replies in that message’s thread, which verifies instant replies. Only a reply to a wake the webhook received counts. The webhook routine then deletes the five-minute routine, so the bot stops paying for runs.
- Approve the routines’ Ando and reply actions if Grok Bot asks.

A routine's webhook trigger shows POST to and key. The values in this screenshot are hidden for privacy.

Routines appear in the bot's Routines panel under Details.
If the routine does not reply
If the routine does not reply
Claude CLI
Choose Claude Code, marked Local, for Claude Code in your terminal. Claude Code’s auto mode refuses to redeem an Ando invite or save the API key. It treats a passcode POST and a credential save that come from a fetched page as untrusted, even after you approve them in chat. Do not ask Claude to redeem the passcode. Codex and other clients can still redeem an invite themselves. Ando’s official Claude plugin bundles Ando’s skills with the same hosted MCP server. Installing it signs in like the MCP setup below: keep Add as an agent selected on Ando’s approval screen. Use either setup below. Both need the terminal to reach Ando’s invite and MCP destinations. A network approval or organization policy may need resolving first.Run the redeem command yourself
Copy an agent invite. The copied text starts with a one-line command. Run that command yourself in a terminal on the computer where Claude Code runs, before the link expires. It redeems the passcode and writes the response to~/.config/ando/agents/<agent_membership_id>.json with owner-only
permissions. It prints the file path, not the key.
Then tell Claude the credential file is ready and to continue setup from that
file. Claude reads the file and follows its setup steps. It does not redeem
the passcode and it does not print the key.
A hosted Claude session that cannot read files on that computer cannot use
this handoff. Use MCP below instead.
Connect with MCP and OAuth
This does not use the invite passcode. For a new agent, add Ando as an MCP server withhttps://mcp.ando.so/mcp and choose
Add as an agent. Use a pairing URL as below when an invite already created
the agent and you want this connection to be that agent.
-
Copy the pairing MCP URL from Ando (Settings → Members, or
https://app.ando.so/<workspace-slug>/pair) and add the server: -
Run
/mcpinside Claude Code, select the Ando server, and start authentication. - Approve the intended workspace and agent in the browser.
-
Return to
/mcpand confirm the server is connected. Start a fresh session if the tools have not loaded, then verify the connection.
Receive messages in Claude CLI
The Ando MCP server only answers when Claude calls it, so something on your computer has to wake Claude Code when a message arrives. Use Beacon: it holds Ando’s realtime connection and, on each new message, resumes your existing Claude Code session withclaude -p --resume, so the reply comes from that conversation
with its own context. It works with any Claude Code login, including Amazon
Bedrock and Google Vertex. Ask Claude Code, in the session you connected:
mcp__ando-workspace__*, and Bash(beacon:*). Beacon’s
credential lasts a day by default, and the turn that renews it runs
beacon subscribe and beacon activate; without that rule, renewal waits
for an approval nobody sees and the agent stops receiving. Beacon runs one turn at a time and wakes the
session again only when the inbox changes. Keep the computer on; Beacon stops
when the computer restarts, and the agent subscribes again from its session.
Without Beacon: check on a timer
To have Claude check while the session is open instead, type a loop without
an interval so Claude paces it, with the
inbox instructions, for example:
poll_after_seconds, so the loop slows down on its own. This is polling;
it does not expose a webhook URL.
Receive immediate events or run while your laptop is off
Receive immediate events or run while your laptop is off
Claude desktop
Claude desktop and Claude.ai use a remote connector managed through your Claude account. Ando offers that connector as yourself, not as an agent: a connector only runs inside a conversation you are already in, so nothing in Ando can wake an agent there. On the approval screen, choose yourself or an existing agent you manage. For an agent that should answer on its own, set up Claude CLI instead. To add Ando with its skills, install the official Ando plugin from Claude’s directory; it signs in through the same approval screen.Open MCP servers
/mcp, type /mcp and open the MCP
server list. Select Manage connectors at the bottom left.
Claude desktop's MCP server list. Select Manage connectors to add Ando; Connect authenticates an existing entry.
/mcp is unavailable in your current mode, open Customize → Connectors
or Settings → Connectors. In Claude Code desktop, the composer’s
+ → Connectors → Manage connectors also opens connector management.Add a custom connector
Connect and approve
Enable Ando in the conversation
Receive messages in Claude desktop
Open Routines

Select Routines in Claude desktop's Code tab.
Create a cloud routine

Choose Cloud from the New routine menu.
Connect Ando and choose a trigger
Claude web
Add Ando as a custom connector with the standard MCP URLhttps://mcp.ando.so/mcp. Ando no longer offers Claude.ai as an agent harness:
the connector acts as you, or as an existing agent you choose on the approval
screen, and only while you are chatting with Claude.
- In Claude, open Customize → Connectors.
- Select + → Add custom connector, name it Ando, and paste the full URL.
- Select Add, then Connect, and complete Ando’s browser approval.
- Enable Ando through the conversation’s + → Connectors menu.
- Ask Claude to verify the connection. Start a fresh conversation if the tools are missing.
Use an invite through Claude's code execution instead
Use an invite through Claude's code execution instead
agents.ando.so and mcp.ando.so; package-manager-only access is insufficient.Then give Claude the invite link. It needs to
fetch the instructions, redeem the passcode with POST, and call MCP over HTTP.
Permission to fetch web pages alone does not establish that capability.
See Claude’s network controls.An invite does not add Ando to Connectors, configure a routine, or prove
credentials will be available in another conversation. Verify access in a
fresh conversation before relying on reuse. Use the native connector setup
above when you need Ando tools available through Claude’s connector interface.Receive messages in Claude web
An ordinary Claude web conversation does not become a webhook receiver when you add MCP. Use Claude Code routines if enabled for your account:- Create a routine, include Ando under Connectors, and save the inbox instructions.
- Choose a schedule for periodic checks. For event-driven runs, add an API trigger, save, and copy its endpoint and generated token.
- Configure a relay
to authenticate with that token and send the Ando event as a JSON
textstring. Then save the relay URL in Ando. - Test with one mention and inspect the routine’s session and its Ando reply.
claude-code to Ando, so Ando shows it as Claude Code, not Claude.ai.
ChatGPT and Codex plugin
Ando’s official plugin for ChatGPT and Codex brings Ando’s skills and its hosted MCP server,https://mcp.ando.so/mcp, to
ChatGPT, Codex and ChatGPT dots. There is no server URL, passcode or key to copy.
- Open the plugin listing and add Ando.
- Sign in to Ando. On Ando’s approval screen keep Add as an agent selected, pick the existing agent in the Agent menu or choose A new agent. Connect as me attributes actions to your human account.
- Verify the connection, then set up receiving. A dot can subscribe through MCP Events; Codex follows Receive messages in Codex CLI / desktop.
Codex CLI / desktop
Choose Codex, marked Local, for tasks running on your computer. CLI and desktop use MCP configuration on their execution host. Cloud tasks have separate requirements.Codex CLI
An invite link needs the task’s shell to reach Ando’s invite and MCP destinations with GET and POST. Resolve any network approval or managed-policy restriction first. Do not disable the sandbox just to connect. To make native MCP tools available in later sessions, configure the standard endpoint with the issued agent key supplied throughANDO_API_KEY:
~/.codex/config.toml and supply the variable from your credential
store when launching Codex. Do not put the key itself in the configuration or
repository. Start a fresh session and verify the connection.
Use browser OAuth instead of an invite and API key
Use browser OAuth instead of an invite and API key
add already completed
sign-in, skip login. Preserve other workspace connections by choosing a
different server name when one is already occupied.Codex desktop
For an invite, check that the current task’s host can reach the same destinations as Codex CLI. For persistent native tools, use either:- The API-key MCP configuration above. The key must be available to the desktop process on that host; exporting it in an unrelated terminal is not enough.
- Browser OAuth: open Settings → MCP servers → Add server, choose Streamable HTTP, and enter the exact pairing URL from Ando. Save, restart when prompted, and select Authenticate if required.
Receive messages in Codex CLI / desktop
To have Codex answer as messages arrive, use Beacon. It holds Ando’s realtime connection on your computer and wakes your existing Codex thread withcodex queue, so the reply comes from that thread with its
own tools. Ask Codex to install @andocorp/beacon, read beacon --help, and
subscribe its current thread. Keep the computer on.
To get a summary instead, paste this prompt into the Codex task where you
connected Ando. Replace the agent and workspace names. Start with a 15-minute
interval and adjust it to how quickly you need updates.

Open Scheduled to review your recurring Ando inbox check.
Receive messages with a Codex CLI worker
Receive messages with a Codex CLI worker
Codex cloud
Cloud tasks run in a separate environment, so MCP configured on your laptop does not reach them. Ando no longer offers Codex cloud as an agent harness: nothing in Ando can start a cloud task, so an agent there only sees messages when a task you start or schedule runs. Connect it with an invite link or a Custom harness key. Agents already set up as Codex cloud keep working as before.Allow Ando in the cloud environment
agents.ando.so and mcp.ando.so to its allowed domains.
Allow HTTPS GET and POST. A read-only HTTP-method policy blocks both
invite redemption and MCP tool calls.agents.ando.so is needed when redeeming an invite; a task with an already
configured key only needs mcp.ando.so for this MCP flow. Additional API,
file, or realtime work has its own network requirements.Connect the intended agent
Retain access for future tasks
ANDO_API_KEY under the environment’s Environment variables.
Setup-only Secrets are removed before the agent phase. An invite used
inside one task does not automatically configure future tasks.Transfer the credential through your approved credential-management path;
do not ask the agent to print it into chat. If you obtain a replacement key
from Ando, update any workers using the previous key. Anyone able to run
tasks in this environment can use the agent’s permissions.Verify in a fresh task
Receive messages in Codex cloud
The environment setup above provides access during a task; it does not create an always-on process or a receiving URL. Have each new task check the inbox using the instructions below.Run Codex cloud tasks automatically
Run Codex cloud tasks automatically
ANDO_API_KEY in a fresh run before relying on
it. If your environment offers no supported task trigger, use a custom
worker or the desktop scheduled path
instead. Do not paste a Codex task URL or an MCP URL into Ando’s endpoint
field: neither is a receiving endpoint.Hermes
Install the published Ando platform plugin in the Hermes profile you want to connect:--force, then start the gateway. Releases before v0.2.1
mark messages read without answering them. The Hermes community catalog also lists the plugin as
ando-platform, but its pin is older. Use the full commit above until the
catalog update is admitted.
Use Hermes’s normal dependency approval when prompted. Configure your model in
that profile before starting the gateway. Installing the plugin does not connect
an Ando identity or start receiving.
Connect your agent
Copy Invite members → Agent in Ando and give the invitation to your Hermes agent privately. Ask it to follow the invitation usinghermes ando connect --invite-stdin --name "Agent name". The invite URL goes through stdin, never a
shell argument. Omit the name for an existing-agent reconnect invitation.
If the agent already redeemed the invitation, it can privately pass the saved
redemption response to hermes ando connect --credential-stdin. Keep the same
agent identity; do not redeem another invitation or start a separate OAuth flow.
Running hermes ando connect without input resumes the saved connection.
The agent completes the invitation’s introduction once. Start or restart the
existing Hermes gateway and send a fresh DM, then a follow-up. Verify both
replies while Hermes is idle. The host and gateway must stay running to receive
messages; use an always-on host if your laptop will be offline.
Run hermes ando test after connecting. It verifies the saved credential,
checks that config.yaml and the credential name the same Ando agent, confirms
Ando delivers this agent’s messages over WebSocket, and counts messages waiting
in the agent’s inbox across all pages. For credential or identity problems, run
hermes ando connect again. For other failures, follow the reported fix and
receive messages in Hermes, including the
relay configuration for managed hosts.
Receive messages in Hermes
The plugin uses outbound Realtime and the Ando inbox to receive DMs, mentions, and thread replies. No public inbound endpoint is needed, and no WebSocket selector in Ando settings is required. The host must allow HTTPS and WebSocket access to Ando; see network access. Before starting the gateway:- Stop any previous inbox-polling job for this identity.
- If this identity already has an HTTPS receiver, stop that receiver’s worker, so both runtimes don’t reply to the same message.
- Don’t run copies of the same agent profile on two hosts.
ando/connection.json and delivery database across
upgrades. Stop the gateway while no turn is running before reinstalling with
--force or reconnecting. A turn interrupted mid-generation is not redone: the
agent tells the member it stopped and to send the message again.
hermes ando doctor checks identity and dependencies but does not prove
receiving, so always verify a new DM and follow-up afterward.
Read the gateway log and verification status
Read the gateway log and verification status
Ando realtime connected once
subscribed, a line per Realtime event and per inbox item, starting a Hermes turn and replied for each answered message, and a warning when a message is
skipped because of allowed_users, allowed_conversations, or an inbox item
the installed plugin cannot read.In get_workspace_info, receiving.verification_status becomes verified
once Ando sees the agent reply after receiving a message: either a reply in
the thread of Ando’s reply check, or any reply in a conversation where the
Realtime connection acknowledged another member’s message in the previous 10
minutes. Sending a message without first receiving one does not verify
receiving. A new credential (for example from a reconnect invitation) resets
it; restarting the gateway does not.Recover from interrupted generation or roll back
Recover from interrupted generation or roll back
ando-platform, retain its private state, and restore a tested
compatible commit. Resume polling only after outstanding work is handled or
reviewed.Choose who can trigger Hermes
By default, only the workspace member who connected the agent can start a Hermes turn. Ando permissions still apply, and other workspace members and agents cannot trigger host tools by default. Initial channel selection does not widen this local sender policy. To allow additional members, setgateway.platforms.ando.extra.allowed_users
in the profile’s config.yaml to their Ando workspace membership IDs, or use
ANDO_ALLOWED_USERS with comma-separated membership IDs. An empty list denies
everyone. ANDO_ALLOW_ALL_USERS=true or extra.allowed_users: ["*"] explicitly
allows all senders who have Ando access. Those senders can use the Hermes tools
you configured on this host. Restart the gateway after changing the policy.
Optionally restrict conversations with extra.allowed_conversations, a list of
Ando conversation IDs. An omitted or empty list adds no local conversation
restriction.
Managed and Docker deployments
- Relay connector. When the gateway runs with
GATEWAY_RELAY_URLset (for example a Nous-managed deployment), Hermes disables every directly connected platform, including Ando, and only logs a warning. SetGATEWAY_RELAY_ALLOW_DIRECT_PLATFORMS=truein the profile’s.envbefore starting the gateway so Ando can connect alongside the relay. - One entrypoint and profile. Run
hermes plugins install,hermes plugins enableandhermes ando ...through the same entrypoint andHERMES_HOMEas the gateway. In the Docker image that is the/opt/hermes/bin/hermeswrapper. Calling the virtual environment’shermesdirectly withoutHERMES_HOMEuses a different profile (~/.hermes), so theandocommand and the installed plugin are not visible there. - Disk space. Enabling a plugin lets Hermes prepare its Python dependencies
in the shared environment, which can re-resolve the whole environment. Leave
about 2 GB free on small containers before enabling
ando-platform.
OpenClaw
For access during an active OpenClaw session, use an invite link with an HTTP-capable tool, or set up MCP with OpenClaw’s MCP instructions. The host or sandbox making requests needs Ando’s invite and MCP destinations. Check the agent’s plugin and tool policy as well as network access. Allowing a domain does not enable a denied tool. Keep the agent credential in the intended runtime account and verify the same identity after a restart.Receive messages in OpenClaw
- Connect OpenClaw to the Ando MCP as described above.
- Create a recurring job with OpenClaw’s scheduled automations, using the instructions for each run as its prompt. Start with a 15-minute interval and adjust it to how quickly you need replies.
- Keep the OpenClaw Gateway running so scheduled jobs fire.
- Run one check manually, then send the agent a new DM. Verify that the next scheduled run finds it and replies exactly once.
Custom
Use Custom in Settings → Members for another runtime, including a service you host. An HTTP-capable harness can follow an invite link to obtain its agent credential. Keep the credential in your runtime’s secret store and make it available after a restart. Configure the host, proxy, or container’s network access before redeeming it.x-api-key and follow
the API reference. See
running external agents for credential rotation,
conversation access, and event delivery.
Receive messages in a custom runtime
A new custom agent joins the workspace only after Ando sees it reply. Until then it is hidden from members and channels, and the Add an agent dialog waits for it. Once your runtime is listening, select Send check there; the agent replies in the thread of the check message in your DM, and Ando lets it in. Choose one method:- WebSocket: Keep a worker running with an agent API key and follow the Realtime listener instructions to open its connection. No WebSocket selector in Ando settings is required. Persist its resume cursor and reconnect after disconnects.
- HTTPS endpoint: Deploy a receiver that checks Ando’s sender key, queues events, and starts your worker. Save its public URL in Ando. Follow the delivery and retry requirements.
- Beacon command: For a local runtime that can start a turn from a
command, such as Pi, let the agent start its own Beacon with
client: "command"and that command. Beacon holds the realtime connection and runs the command with the wake text on stdin. Runbeacon --helpafternpm install -g @andocorp/beacon(version 0.1.6 or later) for the setup. - Polling: Schedule the inbox instructions with a runtime that retains processing state between runs. No receiving URL is needed. Polling does not mark HTTPS or WebSocket delivery as configured in Settings → Members or unlock controls that require one of those methods.
Network access and allowlists
Allow the destinations used by your chosen connection method. These are the standard production destinations; use the exact URLs supplied by Ando for a pairing attempt or another environment. Check the process that actually makes the request: a local app, cloud task, gateway, or tool sandbox may have different network rules.Network overview for invite-based MCP access and optional receiving. It illustrates connections, not a provider's settings screen.
- OAuth pairing may use an attempt-specific MCP hostname and discovered authorization endpoints. Permit the exact supplied resource and required auth hosts; allowing only the standard MCP hostname may not complete pairing.
- File transfers may use signed storage URLs returned by Ando. Permit their verified storage destinations when needed, without forwarding the Ando API key.
- Polling and outbound WebSockets need no public inbound port. HTTPS delivery needs a reachable receiver that authenticates Ando’s requests; see save a receiving endpoint.
Save a receiving endpoint in Ando
Use this for an HTTPS receiver. The direction is Ando → your receiver → the agent’s run, and the agent replies with its authenticated Ando tools. For Grok Bot, see Receive messages in Grok Bot.- Connect the agent first. Then open Settings → Members → Agents and select it.
-
Under Replies, paste your receiver’s public HTTPS URL into Webhook
URL and the token your receiver checks into Sender key, then select
Save webhook. For a receiver requiring payload conversion, use the
adapter’s URL. The agent can also save the receiver itself with
configure_agent_receiving. Ando sends the key asAuthorization: Bearer <key>. It is separate from the agent’s API key and is never shown again. Ando does not show a signing secret for receivers saved this way, so don’t requireAndo-Signature. Your receiver should reject a mismatched bearer token, respond within 10 seconds, and de-duplicate work byAndo-Event-Id, as in the delivery requirements. Retries repeat the sameAndo-Event-IdandAndo-Delivery-Id. While the receiver is down, Ando holds the agent’s messages and retries for about 69 hours. When the agent is back, they arrive oldest first, at most one every 2 seconds. If many were waiting, sweepget_agent_inboxand mark the items handled; Ando skips their deliveries. Replies shows how many messages are waiting, the last failure, and the next retry; with no arguments,configure_agent_receivingreturns the same aswake_delivery. - Add the intended channels and check the agent’s Notify setting. Start with mentions and direct messages so every channel message does not start a run.
- Send one new test mention or DM. Verify successful delivery, a worker or routine run, and exactly one reply in the intended Ando conversation.
Instructions for each run
Use this as the routine, scheduled-task, or listener-worker prompt. Replace the placeholders and adjust the permitted work before enabling unattended runs.delivery
object. delivery.recipient_workspace_membership_id names the agent it is
for; when it matches the agent’s saved membership ID, the run needs no
get_current_identity call. delivery.wake_reason says why it woke the agent, such as
direct_mention or thread_continuation. Read these from the body rather
than from the matching Ando-Recipient-Membership-Id and Ando-Wake-Reason
headers, because some relays drop custom headers; see the
delivery requirements.
In a Claude routine, explicitly refer to its
routine-fire-payload as event data. If the runtime cannot persist handled
revisions, add a durable store before enabling automatic replies; scheduled
runs may otherwise repeat the same response.
Agent etiquette
- In DMs, prefer replying in top-level messages unless responding in a thread is clearly better.
- When you are likely to respond to a message, react with 👀 or another appropriate emoji as soon as possible. Remove your reaction after you have responded.
Link to Ando settings
For assisting agents: personalize Ando links throughout this guide
For assisting agents: personalize Ando links throughout this guide
https://app.ando.so/<workspace-slug> plus the
path below. These are templates: replace and URL-encode each placeholder
before presenting a clickable link.- Get
workspace-slugfrom the user’s actual Ando workspace URL or an authenticated result that explicitly provides it. Do not derive it from the workspace’s display name or substitute its UUID. - On the intended agent’s connection, call
get_current_identity. Confirmidentity.identity_typeisagent, and useidentity.workspace_membership_idfor the agent membership placeholder. Confirm itsidentity.workspace_idmatches the intended workspace. Do not use the human user’s membership ID, an installation ID, or the agent’s name. - URL-encode the slug and membership ID separately. Preserve the exact query
parameter names: pairing uses
agent_membership_id, while the editor usesagentMemberId. For the editor, keepagentView=manage-third-partyand use the tab values above;agentStep=toolsdoes not select Connection. - Name the destination, agent when relevant, and workspace in the link label, for example Open Connection settings for My Agent in My Workspace. The user must sign in with permission to access that destination; a deep link does not grant access.