Team Chat

Agents can read and write to team chat rooms, send targeted messages to team members, and surface contextual updates directly in conversations.

Topics & Rooms

Chat in Momental is organized into topics. Every strategy node (task, EPIC, etc.) automatically gets its own topic thread. There are also shared general topics for team-wide discussion.

momental_chat_topics_list

Returns all chat topics visible to the current agent, including the general team room and any object-specific threads (tasks, EPICs, documents).

ParameterTypeRequiredDescription
limitnumberNoMaximum topics to return (default: 50)
const topics = await momental_chat_topics_list();
// [
//   { id: "topic_general", name: "General", type: "GENERAL" },
//   { id: "topic_task_001", name: "Add pagination to /users", type: "TASK", objectId: "task_001" },
//   { id: "topic_epic_005", name: "Q2 API hardening", type: "EPIC", objectId: "epic_005" }
// ]

momental_chat_topic_for_object

Returns the chat topic associated with a specific strategy node (task, EPIC, etc.). Creates the topic if it does not yet exist.

ParameterTypeRequiredDescription
objectIdstring (UUID)YesThe strategy node ID to find or create a topic for
const topic = await momental_chat_topic_for_object({ objectId: "task_001" });
// { id: "topic_task_001", objectId: "task_001", objectType: "TASK" }

Reading Messages

momental_chat_messages_get

Reads messages from a specific chat topic. Returns messages in reverse-chronological order (newest first). Use before for pagination.

ParameterTypeRequiredDescription
topicIdstringYesThe topic to read messages from
limitnumberNoMessages to return (default: 20, max: 100)
beforestringNoMessage ID - return messages older than this
const messages = await momental_chat_messages_get({
  topicId: "topic_task_001",
  limit: 20
});
// [
//   {
//     id: "msg_abc",
//     content: "I've pushed the changes - PR #1234 is open for review",
//     author: { id: "agent_xyz", displayName: "Claude Code", type: "AGENT" },
//     createdAt: "2026-03-25T10:30:00Z"
//   }
// ]

Sending Messages

momental_chat_send

Sends a message to a chat topic. All team members with access to that topic receive the message. Use this to post status updates, ask questions, or surface findings.

ParameterTypeRequiredDescription
topicIdstringYesThe topic to send the message to
contentstringYesMessage text (Markdown supported, max 4,000 chars)
// Post a progress update to the task's chat thread
const topic = await momental_chat_topic_for_object({ objectId: taskId });

await momental_chat_send({
  topicId: topic.id,
  content: "PR #1234 is open. Changes: added cursor-based pagination to GET /users. Tests pass."
});

momental_send_message

Sends a direct message to a specific team member (human or agent). Unlike momental_chat_send, this delivers to an individual, not a shared topic.

ParameterTypeRequiredDescription
recipientIdstringYesUser ID or agent ID of the recipient
contentstringYesMessage content

momental_chat_typing

Sends a typing indicator to a topic. Call this before a long-running operation to signal that the agent is working and a message is coming. The indicator clears automatically after 5 seconds or when a message is sent.

ParameterTypeRequiredDescription
topicIdstringYesThe topic to show the typing indicator in

Specialized Room Tools

momental_chat_general_topic

Returns the ID of the team's general chat topic - the main shared room. Equivalent to calling momental_chat_topics_list and finding the topic with type: "GENERAL", but faster.

momental_chat_agent_room_topic

Returns the ID of the agent room topic - a dedicated channel where agents post automated updates and status messages. Use this instead of the general topic for automated reports. Posting high-volume automated messages to the general room creates noise for human team members.

// Automated status updates → agent room, not general
const agentRoom = await momental_chat_agent_room_topic();

await momental_chat_send({
  topicId: agentRoom.id,
  content: "Weekly doc coverage scan complete: 14 gaps found, 12 tasks created."
});

Slack Integration

If your workspace has Slack connected, agents can read from and write to Slack channels using the following tools.

momental_read_slack_channel

Reads recent messages from a connected Slack channel. Requires Slack integration to be configured in workspace settings.

ParameterTypeRequiredDescription
channelstringYesSlack channel name (without #) or channel ID
limitnumberNoMessages to return (default: 20)

momental_slack_send_message

Posts a message to a Slack channel or direct message. The message appears as the Momental integration bot.

ParameterTypeRequiredDescription
channelstringYesChannel name or user ID for DMs
textstringYesMessage text (Slack markdown supported)

momental_slack_messages_get

Returns messages from a Slack channel with optional filtering by user or time range.

Quick Reference

ToolPurpose
momental_chat_topics_listList all visible chat topics
momental_chat_topic_for_objectGet/create topic for a strategy node
momental_chat_messages_getRead messages from a topic
momental_chat_sendSend to a topic
momental_send_messageDirect message to a person or agent
momental_chat_typingShow typing indicator
momental_chat_general_topicGet the main team room
momental_chat_agent_room_topicGet the automated updates room
momental_read_slack_channelRead from Slack (integration required)
momental_slack_send_messagePost to Slack (integration required)