Skip to the documentation
MCP server

Team inbox

Assign threads, mark them done and comment as a team.

Team inbox tools

ToolWhat it does
getThreadTeamWho has a thread, who marked it done, how many comments it has, who else is replying, and everyone who can see it.
assignThreadGive a thread to one person who can see it, who is emailed, or to nobody.
markThreadsDoneArchive threads for everyone and record who marked them done.
reopenThreadsMove done threads back to the inbox for everyone.
listThreadCommentsThe team comments on a thread, oldest first. The sender never sees them.
addThreadCommentComment on a thread for the team, emailing the people it mentions.
updateThreadCommentChange the text and the mentions of a comment you wrote.
deleteThreadCommentDelete a comment for good. Its author can, and so can the workspace owner.

Only people who can see a thread can be given it or mentioned on it: the workspace owner, members who reach every address, and members who hold its address or its domain. Reading needs threads:read and changing needs threads:write.

In the app’s chat, assigning, marking done, reopening and changing comments ask first unless you asked for them.

Reference

getThreadTeam

Scopesthreads:readThe app's assistant runs it without askingToolkitcore

Who has an email thread on the team: who it is assigned to, who marked it done, how many comments it has, who else is writing a reply right now, and everyone who can see it, with the ids assignThread and the comment tools take.

Inputs

threadIdstringRequired
Not empty

Also available in

API
GET /threads/{id}/team
TypeScript
nextmail.threads.getTeam()
Python
threads.get_team()
Ruby
threads.get_team
PHP
threads->getTeam
Go
Threads.GetTeam
Java
threads().getTeam
C#
Threads.GetTeamAsync

assignThread

Scopesthreads:writeThe app's assistant asks first unless you asked for itToolkitcore

Give an email thread to one person on the team, who is emailed unless it is the caller. assigneeId has to be somebody getThreadTeam lists as able to see it. null unassigns it.

Inputs

threadIdstringRequired
Not empty
assigneeIdstringRequired
Can be null1 to 128 characters

Also available in

API
DELETE /threads/{id}/assigneePUT /threads/{id}/assignee
TypeScript
nextmail.threads.unassign()nextmail.threads.assign()
Python
threads.unassign()threads.assign()
Ruby
threads.unassignthreads.assign
PHP
threads->unassignthreads->assign
Go
Threads.UnassignThreads.Assign
Java
threads().unassignthreads().assign
C#
Threads.UnassignAsyncThreads.AssignAsync

markThreadsDone

Scopesthreads:writeThe app's assistant asks first unless you asked for itToolkitcore

Mark email threads done for the whole team: each moves to the archive for everyone and records who did it. A new reply brings a thread back. reopenThreads undoes it.

Inputs

threadIdsstring[]Required
1 to 1000 items

Also available in

API
POST /threads/{id}/done
TypeScript
nextmail.threads.markDone()
Python
threads.mark_done()
Ruby
threads.mark_done
PHP
threads->markDone
Go
Threads.MarkDone
Java
threads().markDone
C#
Threads.MarkDoneAsync

addThreadComment

Scopesthreads:writeThe app's assistant asks first unless you asked for itToolkitcore

Comment on an email thread for the team. The sender never sees it. mentions are the ids of people to email about it, each one somebody getThreadTeam lists.

Inputs

threadIdstringRequired
Not empty
bodystringRequired
1 to 10000 characters
mentionsstring[]
Up to 20 items

Also available in

API
POST /threads/{id}/comments
TypeScript
nextmail.threads.createComment()
Python
threads.create_comment()
Ruby
threads.create_comment
PHP
threads->createComment
Go
Threads.CreateComment
Java
threads().createComment
C#
Threads.CreateCommentAsync

updateThreadComment

Scopesthreads:writeThe app's assistant asks first unless you asked for itToolkitcore

Change the text and mentions of a comment the caller wrote. Anybody newly mentioned is emailed. Take the comment id from listThreadComments.

Inputs

threadIdstringRequired
Not empty
commentIdstringRequired
Not empty
bodystringRequired
1 to 10000 characters
mentionsstring[]
Up to 20 items

Also available in

API
PATCH /threads/{id}/comments/{commentId}
TypeScript
nextmail.threads.updateComment()
Python
threads.update_comment()
Ruby
threads.update_comment
PHP
threads->updateComment
Go
Threads.UpdateComment
Java
threads().updateComment
C#
Threads.UpdateCommentAsync

deleteThreadComment

Scopesthreads:writeThe app's assistant asks first unless you asked for itToolkitcore

Delete a comment from a thread for good. Its author can, and so can the workspace owner.

Inputs

threadIdstringRequired
Not empty
commentIdstringRequired
Not empty

Also available in

API
DELETE /threads/{id}/comments/{commentId}
TypeScript
nextmail.threads.deleteComment()
Python
threads.delete_comment()
Ruby
threads.delete_comment
PHP
threads->deleteComment
Go
Threads.DeleteComment
Java
threads().deleteComment
C#
Threads.DeleteCommentAsync