Skip to main content
Glama
benpalmer1

Gorgias MCP Server

by benpalmer1

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GORGIAS_EMAILYesEmail address of the API user
GORGIAS_DOMAINYesYour Gorgias subdomain or full URL (e.g., mycompany or mycompany.gorgias.com)
GORGIAS_API_KEYYesREST API key
GORGIAS_ACCESS_LEVELNoAccess level: readonly, agent, or admin (default: admin)admin

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
gorgias_retrieve_accountA

GET /api/account — Retrieve your account information including metadata and account-wide settings. No parameters required; the account is determined by authentication credentials.

gorgias_list_account_settingsA

GET /api/account/settings — List account settings for the current account. Returns an array of AccountSetting objects. This endpoint does not support pagination — all settings are returned in a single response. Supports filtering by type.

gorgias_create_account_settingA

POST /api/account/settings — Create a setting for the current account. Account settings are helpdesk-wide configuration objects such as business hours and satisfaction surveys.

gorgias_update_account_settingA

PUT /api/account/settings/{id} — Update a setting for the current account. Replaces the existing configuration of the AccountSetting identified by its ID.

gorgias_list_customersA

GET /api/customers — List customers (paginated, default order: created_datetime:desc). Supports filtering by email, external ID, name, language, timezone, view, channel type, and channel address.

gorgias_get_customerA

GET /api/customers/{id} — Retrieve a single customer by ID, including channels, integration data, and optionally custom fields.

gorgias_create_customerB

POST /api/customers — Create a new customer. All fields are optional.

gorgias_update_customerA

PUT /api/customers/{id} — Update an existing customer by ID. Only send the fields you want to modify (partial update semantics).

gorgias_delete_customerA

DELETE /api/customers/{id} — Permanently delete a single customer by ID. This operation is irreversible.

gorgias_delete_customersA

DELETE /api/customers — Bulk delete multiple customer records. Accepts a list of customer IDs and permanently deletes all specified customers.

gorgias_merge_customersA

PUT /api/customers/merge — Merge two customers. The source customer's data is merged into the target customer, then the source is deleted. Fails with 409 if both customers have data for the same integration.

gorgias_set_customer_dataA

PUT /api/customers/{customer_id}/data — Set a customer's data field. Replaces the stored customer data entirely. Supports optimistic concurrency via the version parameter.

gorgias_list_customer_field_valuesA

GET /api/customers/{customer_id}/custom-fields — List all custom field values set for a customer. Returns an array of field definitions with their current values.

gorgias_update_customer_field_valueA

PUT /api/customers/{customer_id}/custom-fields/{id} — Update the value of a single custom field for a given customer. The path 'id' is the custom field definition ID (field.id from GET /api/customers/{customer_id}/custom-fields). Value type must match the field's data_type: string for 'text', number for 'number', boolean for 'boolean'. Pass null to clear the value.

gorgias_update_customer_fieldsA

PUT /api/customers/{customer_id}/custom-fields — Update multiple custom field values on a customer in a single request. Each item in the 'fields' array requires 'id' (the CUSTOM FIELD DEFINITION ID from GET /api/custom-fields) and 'value'. Fields not included are left unchanged. Returns array of updated field value objects.

gorgias_delete_customer_field_valueA

DELETE /api/customers/{customer_id}/custom-fields/{id} — Remove a custom field value from a customer. This removes the value assignment on the customer — it does NOT delete the custom field definition. The path 'id' is the custom field definition ID (field.id from GET /api/customers/{customer_id}/custom-fields). Returns 204 No Content on success.

gorgias_list_custom_fieldsA

GET /api/custom-fields — Returns a cursor-paginated list of custom fields. Requires object_type to specify which entity's fields to list. Supports filtering by name search and archived status.

gorgias_get_custom_fieldA

GET /api/custom-fields/{id} — Retrieve a single custom field by its unique ID. Returns the full CustomField object including definition, metadata, and configuration.

gorgias_create_custom_fieldA

POST /api/custom-fields — Create a new custom field for Ticket or Customer entities. The definition.data_type discriminator ('text', 'number', or 'boolean') determines which input_settings variant applies.

gorgias_update_custom_fieldA

PUT /api/custom-fields/{id} — Update a single custom field by ID. The three required fields (object_type, label, definition) must always be included even if unchanged. To deactivate a field, set deactivated_datetime to a past ISO 8601 timestamp.

gorgias_bulk_update_custom_fieldsA

PUT /api/custom-fields — Bulk update multiple custom fields in a single request. Send an array of update objects each containing an id and the fields to change. Only id is required per item; all other fields are optional.

gorgias_list_eventsA

GET /api/events — List events, cursor-paginated and ordered by creation date (most recent first). Supports filtering by object, user, event type, and creation datetime range.

gorgias_get_eventA

GET /api/events/{id} — Retrieve a single event by its unique ID. Events are read-only records generated automatically by the Gorgias system.

gorgias_upload_fileA

POST /api/upload — NOT FUNCTIONAL: This tool cannot upload files because the Gorgias upload endpoint requires multipart/form-data, which this MCP server's JSON-only client does not support. Use the Gorgias web interface or a multipart-capable HTTP client (e.g., curl with -F) to upload files directly via the Gorgias API.

gorgias_download_fileA

GET /api/{file_type}/download/{domain_hash}/{resource_name} — Download a private file hosted on Gorgias's servers. The path parameters are derived from a file's attachment URL: strip the scheme and domain (e.g., 'https://gorgias.io') from the URL and the remaining path segments map to file_type, domain_hash, and resource_name. For example, 'https://gorgias.io/attachments/abc123/file.png' maps to file_type='attachments', domain_hash='abc123', resource_name='file.png'.

gorgias_list_integrationsA

GET /api/integrations — List integrations matching the given parameters, paginated. Returns a cursor-based paginated list of Integration objects for the account.

gorgias_get_integrationA

GET /api/integrations/{id} — Retrieve a single integration by its ID. Returns the full Integration object including HTTP configuration details for HTTP-type integrations.

gorgias_create_integrationA

POST /api/integrations — Creates a new integration within the Gorgias helpdesk system. The primary supported type via the REST API is the HTTP integration, which calls an external URL when specific ticket events occur.

gorgias_update_integrationA

PUT /api/integrations/{id} — Update an existing integration by its ID. The request body must include name at minimum. Returns the updated Integration object on success.

gorgias_delete_integrationA

DELETE /api/integrations/{id} — Delete an integration. Any views that use this integration will be deactivated. Integrations currently used in rules and/or other integrations cannot be deleted.

gorgias_list_jobsA

GET /api/jobs — List all jobs with optional filtering by status/type and cursor-based pagination. Results are ordered by created_datetime descending.

gorgias_get_jobA

GET /api/jobs/{id} — Retrieve a single job by its unique ID. Returns full Job object including status, type, params, info (progress), and all timestamps.

gorgias_create_jobA

POST /api/jobs — Create a new asynchronous job. Jobs run in the background for long-running tasks such as bulk ticket updates, macro application, exports, and imports.

gorgias_update_jobA

PUT /api/jobs/{id} — Update a job by ID. Allows modification of meta, params, scheduled_datetime, and status. Only fields included in the request body are updated.

gorgias_cancel_jobA

DELETE /api/jobs/{id} — Cancel a job by ID. Jobs can be canceled at any time, but changes already applied will not be reverted. Returns 204 No Content on success.

gorgias_list_macrosA

GET /api/macros — List all macros with optional filtering by search query, tags, languages, archived status, and relevance to a ticket. Supports cursor-based pagination.

gorgias_get_macroA

GET /api/macros/{id} — Retrieve a single macro by its unique ID. Returns the full Macro object including all actions, metadata, and timestamps.

gorgias_create_macroB

POST /api/macros — Create a new macro (canned response). A macro is a list of actions that can be applied to tickets to modify them and/or reply to them.

gorgias_update_macroA

PUT /api/macros/{id} — Partial update of a macro by ID. All body fields are optional; only the fields you supply are modified. NOTE: if you include actions, the entire actions array is replaced — you cannot append individual actions.

gorgias_delete_macroA

DELETE /api/macros/{id} — Permanently delete a macro by ID. This action cannot be undone. Macros in use by active rules cannot be deleted (returns 409 Conflict). Returns 204 No Content on success.

gorgias_archive_macrosA

PUT /api/macros/archive — Bulk archive multiple macros by ID. Archiving removes macros from the active list without permanently deleting them. Max 30 IDs per request. Returns per-ID results.

gorgias_unarchive_macrosA

PUT /api/macros/unarchive — Bulk unarchive multiple previously archived macros by ID. Restores macros to active status. Max 30 IDs per request. Returns per-ID results.

gorgias_retrieve_reporting_statisticA

POST /api/reporting/stats — Low-level reporting API. For easier stats with automatic scope defaults, dimension validation, agent name resolution, and date handling, use gorgias_smart_stats instead. Retrieve analytics reporting statistics data. The request body contains a query object whose structure is determined by the scope field. Supports filtering, grouping by dimensions, selecting measures, time-based analysis, and custom sorting. Available scopes (27 total): tickets-closed (closed ticket stats), tickets-created (created ticket stats), tickets-open (open ticket stats), tickets-replied (replied ticket stats), one-touch-tickets (resolved with one interaction), zero-touch-tickets (resolved without agent interaction), satisfaction-surveys (customer satisfaction survey data), resolution-time (time to resolve tickets), messages-sent (agent messages sent count), first-response-time (time to first agent response including automated), human-first-response-time (time to first human agent response), response-time (overall response time stats), messages-per-ticket (messages per ticket count), ticket-handle-time (agent time handling tickets), online-time (agent online time stats), tags (stats grouped by ticket tags), auto-qa (automated quality assurance scores), messages-received (messages received count), automation-rate (rate of automated interactions), workload-tickets (ticket workload distribution), automated-interactions (automated interaction events), ticket-fields (stats by custom ticket field values), voice-calls (individual voice call records), voice-agent-events (voice call events per agent), ticket-sla (ticket SLA compliance data), knowledge-insights (knowledge base usage insights), voice-calls-summary (aggregated voice call summary stats). Supports cursor-based pagination via query parameters.

gorgias_list_rulesA

GET /api/rules — List all rules with cursor-based pagination.

gorgias_get_ruleA

GET /api/rules/{id} — Retrieve a single rule by its unique ID.

gorgias_create_ruleA

POST /api/rules — Create a new automation rule with JavaScript logic and event triggers.

gorgias_update_ruleA

PUT /api/rules/{id} — Update a rule by ID. All body fields are optional; only the fields you supply will be modified. Common partial updates: toggle deactivated_datetime, bump priority, edit description without resending name+code.

gorgias_delete_ruleA

DELETE /api/rules/{id} — Permanently delete a rule by ID. This action is irreversible.

gorgias_update_rules_prioritiesA

POST /api/rules/priorities — Batch update the execution priority of multiple rules in a single request.

gorgias_list_satisfaction_surveysA

GET /api/satisfaction-surveys — List all satisfaction surveys with cursor-based pagination.

gorgias_get_satisfaction_surveyA

GET /api/satisfaction-surveys/{id} — Retrieve a single satisfaction survey by its unique ID.

gorgias_create_satisfaction_surveyA

POST /api/satisfaction-surveys — Create a new satisfaction survey. Only one survey is allowed per ticket.

gorgias_update_satisfaction_surveyA

PUT /api/satisfaction-surveys/{id} — Update an existing satisfaction survey by ID. This is a full-replacement PUT: customer_id and ticket_id must be re-sent to preserve the survey's linkage. Read the survey first via gorgias_get_satisfaction_survey to obtain the IDs.

gorgias_searchA

POST /api/search — Low-level search for Gorgias resources by text query. For intelligent ticket search with auto-detection of emails, names, views, tags, and keywords, use gorgias_smart_search instead. The type parameter controls what is searched: 'customer' searches names and emails; 'customer_profile' searches names, emails, and all channel addresses (phones, emails, etc.); 'agent' searches agents; 'team' searches teams; 'tag' searches tags; 'integration' searches integrations; 'customer_channel' searches customer channel data; 'customer_channel_email' searches customer channel email addresses; 'customer_channel_phone' searches customer channel phone numbers; 'customers_by_phone' finds customers by phone number. Results are always returned as a flat array (the client normalizes both raw arrays and {data:[...]} wrappers from the API).

gorgias_list_tagsA

GET /api/tags — List all tags with optional filtering and cursor-based pagination.

gorgias_get_tagA

GET /api/tags/{id} — Retrieve a single tag by its unique ID. Returns name, description, decoration, usage count, and timestamps.

gorgias_create_tagA

POST /api/tags — Create a new tag. Tag names are case-sensitive.

gorgias_update_tagA

PUT /api/tags/{id} — Update an existing tag by ID.

gorgias_delete_tagA

DELETE /api/tags/{id} — Permanently delete a single tag. Views using this tag will be deactivated. Tags used in macros/rules cannot be deleted.

gorgias_delete_tagsA

DELETE /api/tags — Bulk delete multiple tags by ID. Views using deleted tags will be deactivated. Tags used in macros/rules cannot be deleted.

gorgias_merge_tagsA

PUT /api/tags/{destination_tag_id}/merge — Merge one or more source tags into a destination tag. Source tags are deleted after merge.

gorgias_list_teamsA

GET /api/teams — List teams matching the given parameters, ordered. Returns a cursor-based paginated response with data array and meta.next_cursor.

gorgias_get_teamA

GET /api/teams/{id} — Retrieve a single team by its unique ID. Returns name, description, decoration, members, and timestamps.

gorgias_create_teamA

POST /api/teams — Create a new team. Teams are used with the auto-assign tickets feature.

gorgias_update_teamA

PUT /api/teams/{id} — Update an existing team by ID. All fields are optional; only provided fields are updated. The members field performs a full replacement when provided.

gorgias_delete_teamA

DELETE /api/teams/{id} — Permanently delete a team by ID. Deletion is irreversible. Tickets previously assigned to the team will lose their team assignment.

gorgias_list_ticketsA

GET /api/tickets — Returns a paginated list of raw ticket data. For intelligent search with auto-detection of emails, names, views, and keywords, use gorgias_smart_search instead. Supports filtering by customer, external ID, view, rule, specific ticket IDs, and whether to include trashed tickets. Uses cursor-based pagination.

gorgias_get_ticketA

GET /api/tickets/{id} — Retrieve a single ticket's raw API response. For a clean, LLM-optimised view with projected messages sorted chronologically, use gorgias_smart_get_ticket instead. Returns the full Ticket object including customer, messages, tags, custom fields, assignees, satisfaction survey, and metadata.

gorgias_create_ticketB

POST /api/tickets — Create a new support ticket. Requires 'via' and at least one message in the 'messages' array.

Each message in the 'messages' array must include:

  • channel (string, required): e.g. 'email', 'chat', 'sms', 'api', etc.

  • from_agent (boolean, required): true if sent by an agent, false if by a customer

  • via (string, required): e.g. 'email', 'api', 'chat', 'sms', etc.

  • body_text (string, optional): plain text body

  • body_html (string, optional): HTML body

  • public (boolean, optional, default true): false = internal note

  • subject (string, optional): message subject

  • sender (object, optional): { id, email, name, external_id, language, meta, note, timezone, channels }

  • receiver (object, optional): { id, email, name, external_id, language, meta, note, timezone, channels }

  • source (object, optional): { type, from: { address, name }, to: [{ address, name }], cc: [...], bcc: [...], extra }

  • attachments (array, optional): [{ url, name, content_type, size, public, extra }]

  • integration_id (integer, optional): ID of the integration used

  • message_id (string, optional): external message ID

  • external_id (string, optional): foreign system ID (max 255 chars)

  • created_datetime, sent_datetime, failed_datetime, deleted_datetime (ISO 8601, optional)

  • mention_ids (array of integers, optional): user IDs to mention in internal notes

  • headers (object, optional): key-value message headers

  • meta (object, optional): message metadata

gorgias_update_ticketA

PUT /api/tickets/{id} — Update an existing ticket. Only the fields provided will be updated; omitted fields retain their current values. NOTE: Sending 'tags' replaces ALL existing tags. To modify individual tags use the dedicated tag endpoints. Similarly, 'custom_fields' replaces all existing custom field values.

gorgias_delete_ticketA

DELETE /api/tickets/{id} — Permanently delete a ticket by ID. This is irreversible and also removes all associated messages, tags, and custom field values. Consider using trashed_datetime via Update Ticket for a soft-delete instead.

gorgias_list_ticket_tagsA

GET /api/tickets/{ticket_id}/tags — List all tags currently associated with a specific ticket. Returns {data: [...]} with a tag array (not cursor-paginated). Each tag includes id, name, description, decoration, usage count, uri, and timestamps.

gorgias_add_ticket_tagsA

POST /api/tickets/{ticket_id}/tags — Add one or more tags to a ticket. This is additive — existing tags are preserved. Tags can be specified by IDs, names, or both. At least one of 'ids' or 'names' must be provided. Returns 201 with empty body on success.

gorgias_set_ticket_tagsA

PUT /api/tickets/{ticket_id}/tags — Replace the complete list of tags on a ticket. This is destructive — all existing tags not included in the request are removed. To clear all tags, send an empty body {}. Tags can be specified by IDs, names, or both. Returns 202 with empty body on success.

gorgias_remove_ticket_tagsA

DELETE /api/tickets/{ticket_id}/tags — Remove specific tags from a ticket. Only the specified tags are removed; other tags remain. Tags can be specified by IDs, names, or both. At least one of 'ids' or 'names' must be provided. Returns 204 with empty body on success.

gorgias_list_ticket_fieldsA

GET /api/tickets/{ticket_id}/custom-fields — List all custom field values currently assigned to a specific ticket. Returns {data: [...]} with an array of field-value objects. Each item has 'field' (nested object with 'id', 'label', 'object_type', 'definition'), 'prediction', and 'value'. Use field.id as the identifier for update/delete operations on this ticket's custom field values.

gorgias_update_ticket_fieldA

PUT /api/tickets/{ticket_id}/custom-fields/{id} — Update the value of a single custom field on a ticket. The path 'id' is the custom field definition ID (field.id from GET /api/tickets/{ticket_id}/custom-fields). Value type must match the field's data_type: string for 'text', number for 'number', boolean for 'boolean'. Pass null to clear the value.

gorgias_update_ticket_fieldsA

PUT /api/tickets/{ticket_id}/custom-fields — Update multiple custom field values on a ticket in a single request. Each item in the 'fields' array requires 'id' (the CUSTOM FIELD DEFINITION ID from GET /api/custom-fields) and 'value'. Fields not included are left unchanged. Returns array of updated field value objects (each with value-record 'id' and 'value').

gorgias_delete_ticket_fieldA

DELETE /api/tickets/{ticket_id}/custom-fields/{id} — Remove a custom field value from a ticket. This removes the value assignment on the ticket — it does NOT delete the custom field definition. The path 'id' is the custom field definition ID (field.id from GET /api/tickets/{ticket_id}/custom-fields). Returns 204 No Content on success.

gorgias_list_ticket_messagesA

GET /api/tickets/{ticket_id}/messages — List raw messages for a ticket. For a clean, projected conversation view with chronological sorting and internal note detection, use gorgias_smart_get_ticket instead. NOTE: This endpoint is deprecated; prefer gorgias_list_messages with ticket_id filter for pagination support.

gorgias_list_messagesA

GET /api/messages — List messages across all tickets with cursor-based pagination. Optionally filter to a specific ticket with ticket_id. Results ordered by created_datetime descending by default.

gorgias_get_messageA

GET /api/tickets/{ticket_id}/messages/{id} — Retrieve a single message by its ID within a specific ticket. Returns the full TicketMessage object including content, sender/receiver details, attachments, timestamps, and metadata.

gorgias_create_messageA

POST /api/tickets/{ticket_id}/messages — Create a new message on an existing ticket. Supports three use cases: (1) Send to customer — omit sent_datetime, Gorgias sends asynchronously; (2) Import already-sent message — provide sent_datetime; (3) Internal note — set channel to 'internal-note' and public to false.

gorgias_update_messageA

PUT /api/tickets/{ticket_id}/messages/{id} — Update an existing ticket message. channel, from_agent, and via are required. Returns 202 Accepted with the full updated TicketMessage object. Use the action query param to handle recovery from failed external actions.

gorgias_delete_messageA

DELETE /api/tickets/{ticket_id}/messages/{id} — Permanently delete a specific message from a ticket. Deletion is irreversible. The parent ticket is not deleted. Returns 200 OK with an empty body on success.

gorgias_list_usersA

GET /api/users — List users with cursor-based pagination. Supports filtering by email, external ID, role, search term, and ordering.

gorgias_get_userA

GET /api/users/{id} — Retrieve a single user by ID. Use id=0 to retrieve the currently authenticated user.

gorgias_create_userB

POST /api/users — Create a new user (agent or administrator) in the Gorgias helpdesk.

gorgias_update_userA

PUT /api/users/{id} — Update an existing user by ID. Only include fields to modify. Use id=0 to update the currently authenticated user.

gorgias_delete_userA

DELETE /api/users/{id} — Permanently delete a single user by ID. Deletion is irreversible.

gorgias_list_viewsA

GET /api/views — List all views with cursor-based pagination. Template variables in filters are resolved to the authenticated user's values.

gorgias_get_viewA

GET /api/views/{id} — Retrieve a single view by its unique ID.

gorgias_create_viewA

POST /api/views — Create a new view with filters, sorting, and visibility settings.

gorgias_update_viewA

PUT /api/views/{id} — Update an existing view by ID. Only include fields to modify.

gorgias_delete_viewA

DELETE /api/views/{id} — Permanently delete a view by ID. System views (Trash, Spam) cannot be deleted.

gorgias_list_view_itemsA

GET /api/views/{view_id}/items — List the tickets belonging to a view with cursor-based pagination.

gorgias_search_view_itemsA

PUT /api/views/{view_id}/items — Search tickets using inline view configuration. Pass view_id=0 to query dynamically without referencing a saved view.

gorgias_list_voice_callsA

GET /api/phone/voice-calls — List voice calls, cursor-paginated. Per the Gorgias API spec, this endpoint accepts only cursor, limit, and ticket_id as query parameters.

gorgias_get_voice_callA

GET /api/phone/voice-calls/{id} — Retrieve a single voice call by its unique ID.

gorgias_list_voice_call_eventsA

GET /api/phone/voice-call-events — List voice call events, cursor-paginated. Events represent discrete occurrences during the lifecycle of voice calls. Per the Gorgias API spec, this endpoint accepts only cursor, limit, and call_id.

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/benpalmer1/Gorgias-MCP-Server'

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