Gorgias MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GORGIAS_EMAIL | Yes | Email address of the API user | |
| GORGIAS_DOMAIN | Yes | Your Gorgias subdomain or full URL (e.g., mycompany or mycompany.gorgias.com) | |
| GORGIAS_API_KEY | Yes | REST API key | |
| GORGIAS_ACCESS_LEVEL | No | Access 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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:
|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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