Skip to main content
Glama
adrmrn

Tidio MCP Server

by adrmrn

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TIDIO_CLIENT_IDYesYour Tidio API client ID
TIDIO_CLIENT_SECRETYesYour Tidio API client secret

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_departmentsA

Get all departments from Tidio. Departments are a agent groups, and can be assigned to tickets.

Returns: Dict: A dictionary containing departments information.

get_operatorsA

Get all operators from Tidio. Operators are agents that manage tickets and contact with customers. Operator can be assigned to tickets.

This endpoint supports pagination. If the response contains meta.cursor with a non-null value, there are more results available. Pass that cursor value to the next request to fetch the next page. When meta.cursor is null, you've reached the end of the list.

Args: cursor (str, optional): Pagination cursor from previous response. Use the value from meta.cursor to fetch the next page of results.

Returns: Dict: A dictionary containing operator information and pagination metadata.

get_contactsA

Get all contacts from Tidio. Contacts are customers that have contacted company via chat or email.

This endpoint supports pagination. If the response contains meta.cursor with a non-null value, there are more results available. Pass that cursor value to the next request to fetch the next page. When meta.cursor is null, you've reached the end of the list.

Args: cursor (str, optional): Pagination cursor from previous response. Use the value from meta.cursor to fetch the next page of results. email (str, optional): Filter contacts by email address. Must be a full, valid email address (wildcards not supported).

Returns: Dict: A dictionary containing contacts information and pagination metadata.

get_contact_detailsA

Get details of a specific contact (customer) from Tidio.

Args: contact_id (str): Required. The UUID of the contact to retrieve.

Returns: Dict: A dictionary containing the contact details.

create_contactA

Create a new contact in Tidio. Always creates a new contact; existing data is never overwritten. At least one of email, first_name, last_name, or phone must be provided.

distinct_id is required and identifies the contact in your external system. If the user has not supplied a distinct_id, ASK them for it. Do NOT invent one or copy it from any other field — not from email, phone, name, email_consent, or any custom property.

Args: distinct_id (str): Required. ID of the contact in the external system. Maximum 55 characters. Must be a real external-system identifier provided by the user. Never copy it from email, phone, name, or any other property. Ask the user if it is missing. email (str, optional): Contact email address in RFC822 format. phone (str, optional): Contact phone number. first_name (str, optional): Contact's first name. last_name (str, optional): Contact's last name. email_consent (str, optional): Email consent status. Must be one of: 'subscribed', 'unsubscribed'. properties (list, optional): List of custom contact properties. Each item must be a dict with 'name' (max 128 chars) and 'value' (max 1000 chars) fields. Example: [{"name": "plan", "value": "premium"}, {"name": "score", "value": 42}]

Returns: Dict: A dictionary containing the created contact ID.

Raises: ValueError: If any of the provided arguments have invalid values.

update_contactA

Update a specific contact in Tidio. Pass only the fields you want to update. Omitted fields remain unchanged; null clears the field (except distinct_id, which cannot be cleared).

Args: contact_id (str): Required. The UUID of the contact to update. email (str, optional): Contact email address in RFC822 format. phone (str, optional): Contact phone number. first_name (str, optional): Contact's first name. last_name (str, optional): Contact's last name. email_consent (str, optional): Email consent status. Must be one of: 'subscribed', 'unsubscribed'. distinct_id (str, optional): External system identifier. Maximum 55 characters. Cannot be cleared (null is not accepted). properties (list, optional): List of custom contact properties to update. Each item must be a dict with 'name' (max 128 chars) and 'value' (max 1000 chars) fields. Example: [{"name": "plan", "value": "premium"}, {"name": "score", "value": 42}]

Returns: Dict: A dictionary with success status.

Raises: ValueError: If any of the provided arguments have invalid values.

delete_contactA

Delete a specific contact (customer) from Tidio.

Args: contact_id (str): Required. The UUID of the contact to delete.

Returns: Dict: A dictionary with success status.

get_ticketsA

Get all tickets from Tidio. Use this to get tickets overview.

This endpoint supports pagination. If the response contains meta.cursor with a non-null value, there are more results available. Pass that cursor value to the next request to fetch the next page. When meta.cursor is null, you've reached the end of the list.

Args: cursor (str, optional): Pagination cursor from previous response. Use the value from meta.cursor to fetch the next page of results.

Returns: Dict: A dictionary containing ticket information and pagination metadata.

get_ticket_detailsA

Get details of a specific ticket from Tidio. Use this to get full ticket information including messages.

Args: ticket_id (int): Required. The ID of the ticket to retrieve.

Returns: Dict: A dictionary containing the ticket details.

delete_ticketA

Delete a specific ticket from Tidio.

Args: ticket_id (int): Required. The ID of the ticket to delete.

Returns: Dict: A dictionary with success status.

create_ticketA

Create a new ticket in Tidio. This tool creates a ticket from a customer's perspective.

Args: contact_email (str): Required. Email of the customer creating the ticket. subject (str): Required. Subject of the ticket. message_content (str): Required. Ticket message content from the customer. assigned_department_id (str, optional): UUID of assigned department. When not provided, the General department is assigned as default.

Returns: Dict: A dictionary containing the created ticket ID.

update_ticketA

Update a specific ticket from Tidio with new information.

Args: ticket_id (int): Required. The ID of the ticket to update. status (str, optional): The new status for the ticket. Must be one of: 'open', 'pending', 'solved'. priority (str, optional): The new priority for the ticket. Must be one of: 'low', 'normal', 'urgent'. assigned (dict, optional): Dictionary with 'type' and 'id' fields to assign the ticket. Example: {"type": "operator", "id": "uuid-here"} or {"type": "department", "id": "dept-uuid-here"}. 'type' must be either 'operator' or 'department'. 'id' must be a string (UUID).

Returns: Dict: A dictionary with success status.

Raises: ValueError: If any of the provided arguments have invalid values.

unassign_ticketB

Unassign operator from ticket in Tidio.

Args: ticket_id (int): Required. The ID of the ticket to unassign.

Returns: Dict: A dictionary with success status.

reply_to_a_ticketA

Send a public reply to a specific ticket in Tidio. This reply will be visible to the customer and sent to them.

Args: ticket_id (int): Required. The ID of the ticket to reply to. content (str): Required. The content of the reply. Can be HTML. operator_id (str): Required. The UUID of the operator who is sending the reply.

Returns: Dict: A dictionary with success status and created message ID.

add_internal_note_to_a_ticketA

Add an internal note to a specific ticket in Tidio. This note is only visible to operators and not sent to the customer.

Args: ticket_id (int): Required. The ID of the ticket to add a note to. content (str): Required. The content of the internal note. Must be plain text. operator_id (str): Required. The UUID of the operator who is adding the note.

Returns: Dict: A dictionary with success status and created message ID.

Raises: ValueError: If any of the provided arguments have invalid values.

get_contact_propertiesA

Get all contact properties from Tidio. Contact properties are fields that can be associated with contacts, including default properties (name, email, phone, etc.) and custom ones.

This endpoint supports pagination. If the response contains meta.cursor with a non-null value, there are more results available. Pass that cursor value to the next request to fetch the next page. When meta.cursor is null, you've reached the end of the list.

Args: cursor (str, optional): Pagination cursor from previous response. Use the value from meta.cursor to fetch the next page of results.

Returns: Dict: A dictionary containing contact properties and pagination metadata. Each property has: name (internal identifier), label (human-readable), and type (one of: text, number, email, phone, url).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adrmrn/tidio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server