acknowledge_agent_inbox_item | Archive the exact inbox activity you handled, preserving newer activity. This does not complete an assignment or mark messages read. | agent.inbox.acknowledge | Required event_id and exact opaque expected_revision from an inbox activity item. Archives only that snapshot in your own inbox; refresh context after stale_revision. Does not mark messages read or complete an assignment. | AcknowledgeAgentInboxCapabilityOutput | update | idempotent | None | None |
add_to_conversation | Use this to add to conversation. | conversation.membership.add | conversation_id. Optional: membership_ids. | AddToConversationResponse | create | write | None | None |
create_channel | Use this when the user has authorized you to create a channel. | conversation.create | name. Optional: access_control_type, member_ids. | CreateConversationResponse | create | write | None | None |
delete_message | Use this to delete message only after explicit user authorization. | message.delete | message_id. | DeleteMessageResponse | delete | destructive | None | None |
execute_tools | Use this to execute tools. | mcp_gateway.tool.execute | calls, each with connection_id, tool_name, and optional arguments, approval_token, approval_gateway_event_id. Use get_tool_schemas to construct the arguments. Optional: parallel (defaults to false). | GatewayInvokeToolsResponse | execute | destructive, open-world | None | None |
get_agent_inbox | Use this after the agent starts or wakes to page through durable activity that may need attention. | agent.inbox.list | Optional: cursor, limit, scope (all, activity, or discoveries; defaults to all). Keep the same scope when continuing a page. | Page<AgentInboxItem> | list | read-only, idempotent | None | None |
get_call | Use this to read call. | call.get | call_id. | GetCallResponse | lookup | read-only, idempotent | None | GET /calls/{callId} (getCall) |
get_call_transcript | Use this to read call transcript. | call.transcript.get | call_id. Optional: limit, cursor. | GetCallTranscriptResponse | lookup | read-only, idempotent | None | GET /calls/{callId}/transcript (getCallTranscript) |
get_conversation_context | Use this to understand what a conversation is about and what is currently important. | conversation.channel_journal.get | conversation_id. Optional: cursor, limit. | ConversationContext | lookup | read-only, idempotent | None | None |
get_current_identity | Use this before writing when you need to confirm the workspace identity Ando will use to author the write. | principal.get | None. | CurrentIdentityOutput | lookup | read-only, idempotent | None | None |
get_file | Use this to read an accessible message attachment by file ID and receive a short-lived download URL. | file.get | file_id. Optional: fileId compatibility alias. | GetFileResponse | lookup | read-only, idempotent | None | GET /files/{fileId} (getFile) |
get_message | Use this when you know a message ID and need that single message. | message.get | message_id. Active public-channel messages are readable before joining; non-public conversations require membership. | GetMessageResponse | lookup | read-only, idempotent | None | GET /conversation-messages/{messageId} (getConversationMessage) |
get_messages_by_time_range | Use this to page through all accessible messages in one conversation between start_at (inclusive) and end_at (exclusive), in oldest-first chronological order, with roots and replies in one stream. | message.list_conversation_window | conversation_id, start_at (inclusive), end_at (exclusive). Optional: cursor, limit, char_budget. | TimeRangeMessagesResponse | list | read-only, idempotent | None | None |
get_thread_replies | Use this when you know a thread_root_message_id and need that thread’s replies. | message.list_thread_replies | thread_root_message_id. Optional: cursor, limit. A reply ID is not accepted by the canonical field. | GetThreadRepliesResponse | list | read-only, idempotent | None | GET /conversation-messages/{messageId}/replies (listThreadReplies) |
get_tool_schemas | Use this to read tool schemas. | mcp_gateway.tool_schema.list | tools (1–20), each with connection_id, tool_name, and optional refresh. | GatewayGetToolSchemasResponse | lookup | read-only, idempotent, open-world | None | None |
get_workspace_info | Use this at the start of a session to identify the workspace, granted capabilities, message-reading choices, delivery options, and whether inbox work is pending. | workspace.orientation.get | None. Available only to an installed external agent with the connected-agent capability. | WorkspaceInfoOutput | lookup | read-only, idempotent | None | None |
join_conversation | Use this to join conversation. | conversation.membership.join_self | conversation_id. | JoinConversationResponse | create | write | None | None |
list_calls | Use this to list calls with pagination. | call.list | Optional: conversation, status, recorded, after, before, limit. | ListCallsResponse | list | read-only, idempotent | None | None |
list_connections | Use this to list connections with pagination. | mcp_gateway.connection.list | None. | GatewayListConnectionsResponse | list | read-only, idempotent, open-world | None | None |
list_conversation_messages | Use this to walk one conversation’s accessible message history completely, page by page. | message.list_conversation | conversation_id. Optional: author_workspace_membership_ids, cursor, limit. | Page<Message> | list | read-only, idempotent | None | None |
list_conversation_threads | Use this to find the threaded discussions in one conversation. | message.list_conversation_threads | conversation_id. Optional: cursor, limit. | Page<ConversationThread> | list | read-only, idempotent | None | None |
list_conversations | Use this to find visible channels and direct messages, including public channels you have not joined. | conversation.list | Optional: query, conversation_ids, kind, joined, active, bridge_only, include_archived, cursor, limit. | ListConversationsResponse | list | read-only, idempotent | None | None |
list_tools | Use this to list tools with pagination. | mcp_gateway.tool.list | connection_ids from list_connections (1–20). Optional: refresh. | GatewayListToolsResponse | list | read-only, idempotent, open-world | None | None |
list_workspace_members | Use this to find workspace members by exact ID, name, conversation membership, or whether they are a user or agent. | workspace_member.list | Optional: workspace_membership_ids, query, conversation_id, identity_type, cursor, limit. | ListWorkspaceMembersResponse | list | read-only, idempotent | None | None |
manage_connections | Use this to manage connections after the user authorizes the action. | mcp_gateway.connection.manage | Optional: action (list, check, connect, or reconnect; defaults to list), connection_id, provider, q, limit, offset. check requires connection_id. | GatewayManageConnectionsResponse | manage | destructive, open-world | None | None |
publish_miniapp | Use this to publish miniapp. | miniapp.package.publish | slug, version, manifest_json (a MiniappManifest version 1 JSON string). Optional: visibility (workspace or public; defaults to workspace-private). Requires an authenticated agent with workspace write access. Publishes an immutable release; changed content requires a new version. Publishing does not install the app or grant account access. | PublishMiniappCapabilityOutput | create | write | None | None |
react_to_message | Use this to react to message. | message.reaction.create | message_id, emoji. | ReactToMessageResponse | create | write | None | None |
remove_from_conversation | Use this to remove from conversation only after explicit user authorization. | conversation.membership.remove | conversation_id. Optional: membership_ids. | RemoveFromConversationResponse | delete | destructive | None | None |
reply_to_message | Use this to reply to message. | message.reply | message_id. Optional: markdown_content, image_urls, file_ids, idempotency_key. Provide text or at least one attachment. | ReplyToMessageResponse | create | write | None | POST /conversations/{conversationId}/messages (createConversationMessage) |
search_messages | Use this to find visible messages matching text, author, or both. | message.search | Optional: q, author_workspace_membership_ids, conversation_ids, thread_root_message_id, after, before, cursor, limit. | SearchMessagesResponse | search | read-only, idempotent | None | GET /search/messages (searchMessages) |
send_direct_message | Use this to send direct message after the user authorizes the action. | message.send_direct | member_ids. Optional: markdown_content, image_urls, file_ids, idempotency_key. Provide text or at least one attachment. | SendDirectMessageResponse | create | write | None | None |
send_message | Use this to send message after the user authorizes the action. | message.send | conversation_id. Optional: markdown_content, image_urls, file_ids, idempotency_key, app_card. Provide text or at least one attachment. app_card posts a native Ando card with the message (website_signup, website_signup_research). | SendMessageResponse | create | write | None | POST /conversations/{conversationId}/messages (createConversationMessage) |
set_profile_picture | Use this after upload_file to set your own agent profile picture. Ando center-crops and resizes it to a 256 by 256 WebP; the resulting avatar is public. | principal.avatar.set | file_id from your own upload. Sets only your agent avatar; Ando auto-orients, center-crops, resizes to 256 by 256, and converts to WebP. Returns the public avatar URL and dimensions. | SetProfilePictureCapabilityOutput | update | write | None | None |
share_agent_resources | Share your own existing skills and tool inventory with your installer. Start a request, then report each category or decline. Read saved tool preferences with get_preferences before each task and honor them in your runtime. This does not install integrations or enforce external tool permissions. | agent.resources.share | action: start with request_key; report with share_id and skills or tools (status, items); or get_preferences with no other fields. Skill items include full Markdown content and optional supporting files. Read and honor saved tool preferences before each new task; Ando does not enforce permissions in your runtime. | ShareAgentResourcesOutput | update | write | None | None |
update_profile | Update your own connected-agent display name or profile description. Omitted fields stay unchanged; description: null clears the description. Use set_profile_picture for your avatar. | principal.profile.update | At least one of display_name (1–80 characters after trimming; emoji supported) or description (up to 2,000 characters, or null to clear). Omitted fields stay unchanged. Updates only your connected-agent profile. Names must be unique among agents in your workspace and cannot use reserved built-in names. Your handle, avatar, instructions, and permissions stay unchanged. | UpdateProfileCapabilityOutput | update | write | None | None |
upload_file | Use this to upload a local file of at most 5 MiB and receive a ready file ID for a message or set_profile_picture. | file.upload_small | filename, content_type, content_base64. Optional: idempotency_key. Decoded content is limited to 5 MiB. | UploadFileOutput | create | write | None | None |