MCP Server

groove-hq

io.usefulapi/groove-hq
Business & Operations Communication Public & reachable MCP 2026-07-28

What this MCP does

Manages shared-inbox support conversations, contacts, assignments, teams, tags, folders, acknowledgments, snoozes, and resolution states.

groove_assign_conversation
Assign conversation
ASSIGNS a conversation to an agent and/or team. Pass agent_id, team_id, or both (at least one is required). Groove GraphQL: conversationAssign.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}, 'team_id': {'type': 'string', 'description': 'Team id to assign the conversation to.'}, 'agent_id': {'type': 'string', 'description': 'Agent id to assign the conversation to.'}}}
groove_close_conversation
Close conversation
CLOSES a conversation (marks it resolved) in the shared inbox. Groove GraphQL: conversationClose.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}}}
groove_get_contact
Get contact
Get a single contact by id — name, email, role, type, and conversation count. Groove GraphQL: contact(contactId: ID!).
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The Groove object id (opaque GraphQL ID, passed as a string).'}}}
groove_get_conversation
Get conversation
Get a single conversation by id — subject, state, assignment, contact, channel, counts, and tags. Groove GraphQL: conversation(id: ID!).
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The Groove object id (opaque GraphQL ID, passed as a string).'}}}
groove_list_agents
List agents
List agents (support staff / users) in the account, with role and state. Paginate with first/after. Groove GraphQL: agents.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}}}
groove_list_channels
List channels
List channels (mailboxes / inboxes — email, chat, etc.) configured in the account. Paginate with first/after. Groove GraphQL: channels.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}}}
groove_list_contacts
List contacts
List customer contacts (people who wrote in). Optional keyword search over name/email; paginate with first/after. Groove GraphQL: contacts(keywords: String).
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}, 'keywords': {'type': 'string', 'description': 'Keyword search across contacts (name/email).'}}}
groove_list_conversations
List conversations
List support conversations (tickets) in the shared inbox, with rich filters. Filter by state, channel_id, folder_id, tag_name, assigned, starred, or keywords; paginate with first/after. Groove GraphQL: conversations(filter: ConversationFilter).
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}, 'state': {'enum': ['unread', 'opened', 'closed', 'snoozed', 'spam'], 'type': 'string', 'description': 'Filter by conversation state.'}, 'starred': {'type': 'boolean', 'description': 'If set, filter to starred (true) or unstarred (false) conversations.'}, 'assigned': {'type': 'boolean', 'description': 'If set, filter to assigned (true) or unassigned (false) conversations.'}, 'keywords': {'type': 'string', 'description': 'Full-text keyword search across conversations.'}, 'tag_name': {'type': 'string', 'description': 'Filter to conversations carrying this tag name.'}, 'folder_id': {'type': 'string', 'description': 'Filter to a single folder id.'}, 'channel_id': {'type': 'string', 'description': 'Filter to a single channel (mailbox) id.'}}}
groove_list_folders
List folders
List folders (saved views / smart folders that group conversations), with conversation counts. Paginate with first/after. Groove GraphQL: folders.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}}}
groove_list_tags
List tags
List tags defined in the account (id, name, color) — use tag ids with the tag/untag write tools. Paginate with first/after. Groove GraphQL: tags.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}}}
groove_list_teams
List teams
List teams (groups of agents that conversations can be assigned to). Paginate with first/after. Groove GraphQL: teams.
Read only
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'after': {'type': 'string', 'description': "Relay pagination cursor — pass the previous page's `endCursor` to get the next page."}, 'first': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many records to return (Relay pagination `first`).'}}}
groove_open_conversation
Open conversation
RE-OPENS a closed/snoozed conversation in the shared inbox. Groove GraphQL: conversationOpen.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}}}
groove_snooze_conversation
Snooze conversation
SNOOZES a conversation until the given time (ISO8601) — it drops out of the inbox until then. Groove GraphQL: conversationSnooze.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'until'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}, 'until': {'type': 'string', 'description': 'When to un-snooze, as an ISO8601 timestamp (e.g. 2026-08-01T09:00:00Z).'}}}
groove_star_conversation
Star conversation
STARS a conversation (flags it for attention) in the shared inbox. Groove GraphQL: conversationStar.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}}}
groove_tag_conversation
Tag conversation
ADDS tags (by tag id) to a conversation. Use groove_list_tags to find tag ids. Groove GraphQL: conversationTag.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'tag_ids'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}, 'tag_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag ids to add to the conversation.'}}}
groove_untag_conversation
Untag conversation
REMOVES tags (by tag id) from a conversation. Use groove_list_tags to find tag ids. Groove GraphQL: conversationUntag.
Destructive
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'tag_ids'], 'properties': {'id': {'type': 'string', 'description': 'The conversation id (opaque GraphQL ID).'}, 'tag_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag ids to remove from the conversation.'}}}
Changed
groove_untag_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_tag_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_assign_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_star_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_snooze_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_open_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_close_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_teams
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_folders
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_tags
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_channels
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_agents
Oct. 1, 2026, 2:50 a.m.
Changed
groove_get_contact
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_contacts
Oct. 1, 2026, 2:50 a.m.
Changed
groove_get_conversation
Oct. 1, 2026, 2:50 a.m.
Changed
groove_list_conversations
Oct. 1, 2026, 2:50 a.m.
Added
groove_untag_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_tag_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_assign_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_star_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_snooze_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_open_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_close_conversation
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_teams
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_folders
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_tags
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_channels
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_agents
Sept. 17, 2026, 12:53 p.m.
Added
groove_get_contact
Sept. 17, 2026, 12:53 p.m.
Added
groove_list_contacts
Sept. 17, 2026, 12:53 p.m.