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).
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
objectId | string (UUID) | Yes | The 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
topicId | string | Yes | The topic to read messages from |
limit | number | No | Messages to return (default: 20, max: 100) |
before | string | No | Message 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
topicId | string | Yes | The topic to send the message to |
content | string | Yes | Message 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
recipientId | string | Yes | User ID or agent ID of the recipient |
content | string | Yes | Message 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
topicId | string | Yes | The 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Slack channel name (without #) or channel ID |
limit | number | No | Messages 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel name or user ID for DMs |
text | string | Yes | Message text (Slack markdown supported) |
momental_slack_messages_get
Returns messages from a Slack channel with optional filtering by user or time range.
Quick Reference
| Tool | Purpose |
|---|---|
momental_chat_topics_list | List all visible chat topics |
momental_chat_topic_for_object | Get/create topic for a strategy node |
momental_chat_messages_get | Read messages from a topic |
momental_chat_send | Send to a topic |
momental_send_message | Direct message to a person or agent |
momental_chat_typing | Show typing indicator |
momental_chat_general_topic | Get the main team room |
momental_chat_agent_room_topic | Get the automated updates room |
momental_read_slack_channel | Read from Slack (integration required) |
momental_slack_send_message | Post to Slack (integration required) |