Read Helpwise conversations, contacts, tags and reports; note, tag, assign, close; send one email.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add an internal note to a conversation. Visible to your Helpwise team only; it is not sent to the customer. Notes cannot be deleted through this API. POST /notes/add (V0).
The note text.
Inbox (mailbox) id of the conversation.
Conversation (thread) id.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add an internal note to a conversation. Visible to your Helpwise team only; it is not sent to the customer. Notes cannot be deleted through this API. POST /notes/add (V0).
| Argument | Type | Description |
|---|---|---|
| message* | string | The note text. |
| inbox_id* | integer | Inbox (mailbox) id of the conversation. |
| conversation_id* | integer | Conversation (thread) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id",
"conversation_id",
"message"
],
"properties": {
"message": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "The note text."
},
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id of the conversation.",
"exclusiveMinimum": 0
},
"conversation_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Conversation (thread) id.",
"exclusiveMinimum": 0
}
}
}WRITE: apply existing tags (ids from helpwise_list_tags) to up to 25 conversations. Tags can drive Helpwise automations. Applying a tag already present changes nothing. POST /tags/apply.
| Argument | Type | Description |
|---|---|---|
| tag_ids* | array | Tag ids to apply (1-10). |
| conversation_ids* | array | Conversation (thread) ids (1-25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversation_ids",
"tag_ids"
],
"properties": {
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1,
"description": "Tag ids to apply (1-10)."
},
"conversation_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Conversation (thread) ids (1-25)."
}
}
}WRITE: assign a conversation to a team member (user id from helpwise_list_users), or pass assigned_to 0 to unassign it. The assignee may be notified by Helpwise. POST /threads/assign (V0).
| Argument | Type | Description |
|---|---|---|
| inbox_id* | integer | Inbox (mailbox) id of the conversation. |
| assigned_to* | integer | User id to assign to, or 0 to unassign. |
| conversation_id* | integer | Conversation (thread) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id",
"conversation_id",
"assigned_to"
],
"properties": {
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id of the conversation.",
"exclusiveMinimum": 0
},
"assigned_to": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "User id to assign to, or 0 to unassign."
},
"conversation_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Conversation (thread) id.",
"exclusiveMinimum": 0
}
}
}WRITE: close up to 25 conversations (mark them done). They can be reopened with helpwise_reopen_conversations. Nothing is sent to customers. PUT /conversations/action/close.
| Argument | Type | Description |
|---|---|---|
| conversation_ids* | array | Conversation (thread) ids to close (1-25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversation_ids"
],
"properties": {
"conversation_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Conversation (thread) ids to close (1-25)."
}
}
}WRITE: create a new contact in Helpwise (name, company, job title, emails, phones, custom fields). Nothing is sent to the person. Creating the same email twice may create a duplicate. POST /contacts.
| Argument | Type | Description |
|---|---|---|
| emails | array | Email addresses (1-10). |
| phones | array | Phone numbers (up to 10). |
| company | string | Company name. |
| lastname | string | Last name. |
| firstname* | string | First name. |
| job_title | string | Job title. |
| custom_fields | array | Custom field values. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"firstname"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s@<>\",;:\\\\]+@[^\\s@<>\",;:\\\\]+\\.[^\\s@<>\",;:\\\\]+$",
"maxLength": 254
},
"maxItems": 10,
"minItems": 1,
"description": "Email addresses (1-10)."
},
"phones": {
"type": "array",
"items": {
"type": "object",
"required": [
"phone"
],
"properties": {
"type": {
"type": "string",
"maxLength": 10,
"description": "Helpwise phone type code, as a string (default \"0\")."
},
"phone": {
"type": "string",
"maxLength": 40,
"minLength": 3,
"description": "Phone number with country code, e.g. +14155550123."
}
}
},
"maxItems": 10,
"description": "Phone numbers (up to 10)."
},
"company": {
"type": "string",
"maxLength": 200,
"description": "Company name."
},
"lastname": {
"type": "string",
"maxLength": 200,
"description": "Last name."
},
"firstname": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "First name."
},
"job_title": {
"type": "string",
"maxLength": 200,
"description": "Job title."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Custom field id (from the Helpwise custom fields settings).",
"exclusiveMinimum": 0
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Custom field name (optional)."
},
"value": {
"type": "string",
"maxLength": 2000,
"description": "Value to store."
}
}
},
"maxItems": 50,
"description": "Custom field values."
}
}
}One contact with emails, phones, company, custom fields and recent conversations. GET /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| contact_id* | integer | Helpwise contact id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Helpwise contact id.",
"exclusiveMinimum": 0
}
}
}One conversation with its messages, notes, drafts, assignment and contacts. Page long conversations with `page_token` from the previous reply. GET /inboxes/{inbox_id}/conversations/{conversation_id}.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page, 1-100 (default 25). |
| folder | string | Folder context (optional). |
| inbox_id* | integer | Inbox (mailbox) id the conversation lives in. |
| page_token | string | Page token from the previous reply, for older messages. |
| conversation_id* | integer | Conversation (thread) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id",
"conversation_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"folder": {
"enum": [
"all",
"assigned",
"unassigned",
"starred",
"snoozed",
"draft",
"sent",
"closed",
"spam",
"trash",
"scheduled"
],
"type": "string",
"description": "Folder context (optional)."
},
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id the conversation lives in.",
"exclusiveMinimum": 0
},
"page_token": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Page token from the previous reply, for older messages."
},
"conversation_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Conversation (thread) id.",
"exclusiveMinimum": 0
}
}
}The Helpwise user the API key belongs to (name, email, id). POST /users/me (V0).
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Overall and team-performance report for a date range: new/closed/assigned conversations (with change vs the previous period), inbound/outbound messages per day, busiest hour/day, average first response, response and resolution time, CSAT and per-agent performance. Optional inbox and tag filters. GET /reports.
| Argument | Type | Description |
|---|---|---|
| end* | string | End, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 23:59:59). |
| start* | string | Start, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 00:00:00). |
| tag_ids | array | Only conversations with these tag ids. |
| inbox_id | integer | Only this inbox (default: all inboxes). |
| business_hours_only | boolean | Count business hours only (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "End, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 23:59:59)."
},
"start": {
"type": "string",
"description": "Start, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 00:00:00)."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Only conversations with these tag ids."
},
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this inbox (default: all inboxes).",
"exclusiveMinimum": 0
},
"business_hours_only": {
"type": "boolean",
"description": "Count business hours only (default false)."
}
}
}One tag by id. GET /tags/{id}.
| Argument | Type | Description |
|---|---|---|
| tag_id* | integer | Helpwise tag id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tag_id"
],
"properties": {
"tag_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Helpwise tag id.",
"exclusiveMinimum": 0
}
}
}Per-tag report for one inbox and a date range: conversations per tag (and share), open conversations, average response, first-response and resolution time. GET /inboxes/{inbox_id}/reports/tags.
| Argument | Type | Description |
|---|---|---|
| end* | string | End, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 23:59:59). |
| start* | string | Start, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 00:00:00). |
| tag_ids | array | Only these tag ids. |
| inbox_id* | integer | Inbox (mailbox) id. |
| business_hours_only | boolean | Count business hours only (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "End, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 23:59:59)."
},
"start": {
"type": "string",
"description": "Start, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss (a date alone means 00:00:00)."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Only these tag ids."
},
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id.",
"exclusiveMinimum": 0
},
"business_hours_only": {
"type": "boolean",
"description": "Count business hours only (default false)."
}
}
}List contacts (name, company, job title, emails, phones, id). Page with limit and offset. GET /contacts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page, 1-100 (default 25). |
| offset | integer | How many results to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "How many results to skip (default 0). Pass the previous reply's next_offset."
}
}
}List conversations (threads) of one or more inboxes, newest first, with subject, snippet, tags, assignee, read/starred/closed flags and contact. Pick the folder with `folder` (default: all). Page with `next_page_token`. Inbox ids come from helpwise_list_inboxes. GET /conversations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page, 1-100 (default 25). |
| folder | string | Folder: all, assigned, unassigned, starred, snoozed, draft, sent, closed, spam, trash, scheduled. |
| inbox_ids* | array | Inbox (mailbox) ids to list (1-20). |
| page_token | string | The previous reply's next_page_token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_ids"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"folder": {
"enum": [
"all",
"assigned",
"unassigned",
"starred",
"snoozed",
"draft",
"sent",
"closed",
"spam",
"trash",
"scheduled"
],
"type": "string",
"description": "Folder: all, assigned, unassigned, starred, snoozed, draft, sent, closed, spam, trash, scheduled."
},
"inbox_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Inbox (mailbox) ids to list (1-20)."
},
"page_token": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "The previous reply's next_page_token."
}
}
}List the account's inboxes (mailboxes) with id, name, address and type. Use the ids in the other tools. POST /mailboxes/list (V0).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). |
| limit | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}All tags (id, name, colour, parent, inbox). Use the ids with helpwise_apply_tags. GET /tags.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the team members (agents) with access to an inbox: id, name, email. Use the ids with helpwise_assign_conversation. POST /users/list (V0).
| Argument | Type | Description |
|---|---|---|
| inbox_id* | integer | Inbox (mailbox) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id"
],
"properties": {
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id.",
"exclusiveMinimum": 0
}
}
}WRITE: take tags off up to 25 conversations. The tags themselves are not deleted. POST /tags/remove.
| Argument | Type | Description |
|---|---|---|
| tag_ids* | array | Tag ids to remove from them (1-10). |
| conversation_ids* | array | Conversation (thread) ids (1-25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversation_ids",
"tag_ids"
],
"properties": {
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1,
"description": "Tag ids to remove from them (1-10)."
},
"conversation_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Conversation (thread) ids (1-25)."
}
}
}WRITE: move up to 25 conversations back to the inbox (reopen closed ones). Nothing is sent to customers. PUT /conversations/action/moveToInbox.
| Argument | Type | Description |
|---|---|---|
| conversation_ids* | array | Conversation (thread) ids to reopen (1-25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversation_ids"
],
"properties": {
"conversation_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Conversation (thread) ids to reopen (1-25)."
}
}
}Search contacts by a name, email or phone term. Page with limit and offset. GET /contacts/search.
| Argument | Type | Description |
|---|---|---|
| term* | string | Search term (name, email or phone). |
| limit | integer | Results per page, 1-100 (default 25). |
| offset | integer | How many results to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"term"
],
"properties": {
"term": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search term (name, email or phone)."
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "How many results to skip (default 0). Pass the previous reply's next_offset."
}
}
}WRITE: SEND A REAL EMAIL from a Helpwise inbox to the given customer address(es). Irreversible; once sent it cannot be recalled. At most 10 recipients in total (to + cc), one message per call; never use it for lists or campaigns. This starts a new message (it is not a reply on an existing conversation). The body is plain text (blank line = new paragraph); it is sent as HTML. POST /emails/send_mail (V0).
| Argument | Type | Description |
|---|---|---|
| cc | array | Cc addresses. |
| to* | array | Recipient addresses (1-10 with cc together). |
| body* | string | Plain-text message body. |
| subject* | string | Subject line. |
| inbox_id* | integer | Inbox (mailbox) id to send from (see helpwise_list_inboxes). |
| reply_to | string | Reply-to address (optional). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"inbox_id",
"to",
"subject",
"body"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s@<>\",;:\\\\]+@[^\\s@<>\",;:\\\\]+\\.[^\\s@<>\",;:\\\\]+$",
"maxLength": 254
},
"maxItems": 9,
"description": "Cc addresses."
},
"to": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s@<>\",;:\\\\]+@[^\\s@<>\",;:\\\\]+\\.[^\\s@<>\",;:\\\\]+$",
"maxLength": 254
},
"maxItems": 10,
"minItems": 1,
"description": "Recipient addresses (1-10 with cc together)."
},
"body": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "Plain-text message body."
},
"subject": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Subject line."
},
"inbox_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Inbox (mailbox) id to send from (see helpwise_list_inboxes).",
"exclusiveMinimum": 0
},
"reply_to": {
"type": "string",
"pattern": "^[^\\s@<>\",;:\\\\]+@[^\\s@<>\",;:\\\\]+\\.[^\\s@<>\",;:\\\\]+$",
"maxLength": 254,
"description": "Reply-to address (optional)."
}
}
}WRITE: change a contact's name, company, job title, emails, phones or custom fields. Helpwise updates with PUT, so this tool first reads the contact and sends the current values together with your changes; a list you pass (emails, phones, custom_fields) REPLACES the old list. Nothing is sent to the person. PUT /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| emails | array | The full list of email addresses (replaces the current list). |
| phones | array | The full list of phone numbers (replaces the current list). |
| company | string | New company. |
| lastname | string | New last name. |
| firstname | string | New first name. |
| job_title | string | New job title. |
| contact_id* | integer | Helpwise contact id. |
| custom_fields | array | Custom field values to set (replaces the current list). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[^\\s@<>\",;:\\\\]+@[^\\s@<>\",;:\\\\]+\\.[^\\s@<>\",;:\\\\]+$",
"maxLength": 254
},
"maxItems": 10,
"minItems": 1,
"description": "The full list of email addresses (replaces the current list)."
},
"phones": {
"type": "array",
"items": {
"type": "object",
"required": [
"phone"
],
"properties": {
"type": {
"type": "string",
"maxLength": 10,
"description": "Helpwise phone type code, as a string (default \"0\")."
},
"phone": {
"type": "string",
"maxLength": 40,
"minLength": 3,
"description": "Phone number with country code, e.g. +14155550123."
}
}
},
"maxItems": 10,
"description": "The full list of phone numbers (replaces the current list)."
},
"company": {
"type": "string",
"maxLength": 200,
"description": "New company."
},
"lastname": {
"type": "string",
"maxLength": 200,
"description": "New last name."
},
"firstname": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "New first name."
},
"job_title": {
"type": "string",
"maxLength": 200,
"description": "New job title."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Helpwise contact id.",
"exclusiveMinimum": 0
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Custom field id (from the Helpwise custom fields settings).",
"exclusiveMinimum": 0
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Custom field name (optional)."
},
"value": {
"type": "string",
"maxLength": 2000,
"description": "Value to store."
}
}
},
"maxItems": 50,
"description": "Custom field values to set (replaces the current list)."
}
}
}