DMTicket MCP Server
Allows managing Facebook Messenger contacts, conversations, and messages via the DMTicket omnichannel platform.
Allows managing Telegram contacts, conversations, and messages via the DMTicket omnichannel platform.
Allows managing Zalo contacts, conversations, and messages via the DMTicket omnichannel platform.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DMTicket MCP Server show me all my VIP contacts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DMTicket MCP Server
Model Context Protocol server for DMTicket — the omnichannel customer-messaging & CRM platform (Zalo, Facebook, Telegram, groups & communities).
It gives AI agents (Claude, Cursor, ChatGPT, custom agents…) live access to a DMTicket account: contacts, conversations, messages, labels, custom attributes, inboxes, teams, agents, canned responses, automation and reports — so an agent can read, segment, message and automate on your behalf.
Build the automation, don't just read the data
Most helpdesk integrations stop at "list my conversations". DMTicket exposes the pieces an agent needs to stand up a working business process on its own:
Data sources — register a connection to a Lark sheet, PostgreSQL, or MySQL. The agent references it by name; the credentials stay server-side and are never handed to the model. Reads only — SQL that is not a single
SELECTis rejected.Scheduled flows — automation that fires on a cron schedule rather than waiting for a conversation to exist. Read rows, filter them, extract fields, skip what was already handled, then draft or send.
Dry run —
POST /scheduled_flows/{id}/rundefaults to a dry run: the pipeline executes for real, but actions are reported instead of performed. An agent can show you exactly what a flow will send before it sends anything.Durable dedupe —
automation_statesclaims a key atomically, so a restart, a redeploy, or an overlapping run never processes the same row twice.
Hand an agent your token and this server, describe the process in plain language, and it can build and test the automation end to end.
Related MCP server: DLF Agency MCP Server
How it works
On startup the server fetches the DMTicket OpenAPI spec from https://dmticket.com/api/openapi.json and auto-generates one MCP tool per API operation — 129 tools at the time of writing. When DMTicket adds a new endpoint, it becomes an MCP tool on the next restart, with no code changes here.
Point it somewhere else with DMTICKET_OPENAPI_URL if you self-host.
1. Get your DMTicket API token
Sign in to your DMTicket account at https://app.dmticket.com
Click your avatar (bottom-left) → Profile settings
Scroll to the bottom and copy the Access Token
The token carries your own permissions, so an agent using it can do exactly what you can — no more. Keep it secret; regenerate from the same screen to revoke.
API base URL:
https://app.dmticket.com· Auth header:api-access-token: <token>Quick test:curl https://app.dmticket.com/api/v1/profile -H "api-access-token: <token>"Spell the header with dashes. Rails maps
api-access-tokenandapi_access_tokento the same value, but proxies strip headers containing underscores, so the underscored spelling arrives empty and every call 401s.
Most endpoints are scoped to one account, so you also need your numeric account id — it is the number in the app URL, e.g. app.dmticket.com/app/accounts/**3**/dashboard.
2. Install
git clone https://github.com/doanhnd9989/dmticket-mcp.git
cd dmticket-mcp
npm install
npm run build # outputs dist/3. Configure your agent
Set two environment variables:
Variable | Required | Default | Description |
| ✅ | — | Your workspace token from step 1 |
| — |
| Your DMTicket origin |
| — |
|
|
Claude Code / Claude Desktop
claude mcp add dmticket \
-e DMTICKET_API_KEY=<your-workspace-token> \
-e DMTICKET_API_URL=https://dmticket.com \
-- node /absolute/path/to/dmticket-mcp/dist/index.mjsOr in claude_desktop_config.json / .mcp.json:
{
"mcpServers": {
"dmticket": {
"command": "node",
"args": ["/absolute/path/to/dmticket-mcp/dist/index.mjs"],
"env": {
"DMTICKET_API_KEY": "<your-workspace-token>",
"DMTICKET_API_URL": "https://dmticket.com"
}
}
}
}Cursor (.cursor/mcp.json)
{
"mcpServers": {
"dmticket": {
"command": "node",
"args": ["/absolute/path/to/dmticket-mcp/dist/index.mjs"],
"env": { "DMTICKET_API_KEY": "<your-workspace-token>" }
}
}
}Remote (SSE) mode
DMTICKET_API_KEY=<token> DMTICKET_MCP_TRANSPORT=sse DMTICKET_MCP_PORT=3333 node dist/index.mjs
# then point your agent at http://<host>:3333/sseTools
Tool names are the OpenAPI operationId in snake_case — e.g. list_contacts, create_contact, list_conversations, create_message, create_data_source, query_data_source, create_scheduled_flow, run_scheduled_flow, list_scheduled_flow_runs, claim_automation_state, create_webhook, … The full set is generated live from the spec, so it always matches your DMTicket version.
Security
The token is a per-workspace credential — treat it like a password. Do not commit it.
The server only talks to your configured
DMTICKET_API_URL.Revoke by regenerating the workspace token in DMTicket settings.
License
ISC. This is the MCP integration for DMTicket (https://dmticket.com).
Available Tools
155 toolsadd_new_agent_to_accountC
Add a New Agent
Inputs: no named parameters.
add_new_agent_to_inboxD
Add a New Agent
Inputs: inbox_id (required), user_ids (required).
add_new_agent_to_teamC
Add a New Agent
Inputs: user_ids (required).
add_new_article_to_accountC
Add a new article
Inputs: no named parameters.
add_new_automation_rule_to_accountC
Add a new automation rule
Inputs: no named parameters.
add_new_canned_response_to_accountC
Add a New Canned Response
Inputs: no named parameters.
add_new_category_to_accountD
Add a new category
Inputs: no named parameters.
add_new_custom_attribute_to_accountB
Add a new custom attribute
Inputs: no named parameters.
add_new_portal_to_accountB
Add a new portal
Inputs: no named parameters.
assign_a_conversationD
Assign Conversation
Inputs: team_id, assignee_id.
claim_automation_stateB
Claim a key before doing irreversible work
Inputs: no named parameters.
contactable_inboxes_getD
Get Contactable Inboxes
Inputs: id (required).
contact_add_labelsC
Add Labels
Inputs: labels (required).
contact_conversationsD
Contact Conversations
Inputs: id (required).
contact_createD
Create Contact
Inputs: no named parameters.
contact_deleteB
Delete Contact
Inputs: no named parameters.
contact_detailsD
Show Contact
Inputs: no named parameters.
contact_filterD
Contact Filter
Inputs: page, payload.
contact_inbox_creationC
Create contact inbox
Inputs: id (required), inbox_id (required), source_id.
contact_listB
List Contacts
Inputs: no named parameters.
contact_mergeB
Merge Contacts
Inputs: base_contact_id (required), mergee_contact_id (required).
contact_searchD
Search Contacts
Inputs: q.
contact_updateC
Update Contact
Inputs: no named parameters.
conversation_add_labelsD
Add Labels
Inputs: labels (required).
conversation_filterD
Conversations Filter
Inputs: page, payload.
conversation_listD
Conversations List
Inputs: q, page, labels, status, +3 more.
conversation_list_metaC
Get Conversation Counts
Inputs: q, labels, status, team_id, +1 more.
create_a_contactC
Create a contact
Inputs: no named parameters.
create_a_conversationC
Create a conversation
Inputs: no named parameters.
create_a_custom_filterD
Create a custom filter
Inputs: no named parameters.
create_a_labelD
Create a label
Inputs: no named parameters.
create_a_messageC
Create a message
Inputs: no named parameters.
create_an_account_agent_botD
Create an Agent Bot
Inputs: no named parameters.
create_a_new_message_in_a_conversationD
Create New Message
Inputs: no named parameters.
create_an_integration_hookD
Create an integration hook
Inputs: no named parameters.
create_a_teamA
Create a team
Inputs: no named parameters.
create_a_webhookC
Add a webhook
Inputs: no named parameters.
create_data_sourceC
Create a data source
Inputs: no named parameters.
create_scheduled_flowC
Create a scheduled flow
Inputs: no named parameters.
create_sla_policyC
Tạo chính sách SLA
Inputs: sla_policy.
delete_a_custom_filterC
Delete a custom filter
Inputs: no named parameters.
delete_agent_from_accountC
Remove an Agent from Account
Inputs: id (required).
delete_agent_in_inboxC
Remove an Agent from Inbox
Inputs: inbox_id (required), user_ids (required).
delete_agent_in_teamB
Remove an Agent from Team
Inputs: user_ids (required).
delete_a_labelC
Delete a label
Inputs: no named parameters.
delete_a_messageB
Delete a message
Inputs: no named parameters.
delete_an_account_agent_botC
Delete an AgentBot
Inputs: no named parameters.
delete_an_integration_hookC
Delete an Integration Hook
Inputs: no named parameters.
delete_a_teamC
Delete a team
Inputs: no named parameters.
delete_automation_rule_from_accountB
Remove a automation rule from account
Inputs: id (required).
delete_automation_stateC
Delete an automation state entry
Inputs: namespace (required).
delete_a_webhookB
Delete a webhook
Inputs: no named parameters.
delete_canned_response_from_accountB
Remove a Canned Response from Account
Inputs: id (required).
delete_custom_attribute_from_accountC
Remove a custom attribute from account
Inputs: id (required).
delete_data_sourceC
Delete a data source
Inputs: no named parameters.
delete_scheduled_flowB
Delete a scheduled flow
Inputs: no named parameters.
delete_sla_policyC
Xoá chính sách SLA
Inputs: no named parameters.
fetch_profileB
Fetch user profile
Inputs: no named parameters.
get_account_agentsB
List Agents in Account
Inputs: no named parameters.
get_account_audit_logsC
List Audit Logs in Account
Inputs: page.
get_account_automation_ruleB
List all automation rules in an account
Inputs: no named parameters.
get_account_branded_email_layoutB
Get account branded email layout
Inputs: no named parameters.
get_account_canned_responseA
List all Canned Responses in an Account
Inputs: no named parameters.
get_account_conversation_metricsD
Account Conversation Metrics
Inputs: no named parameters.
get_account_custom_attributeB
List all custom attributes in an account
Inputs: attribute_model (required).
get_account_detailsC
Get account details
Inputs: no named parameters.
get_account_reporting_eventsD
Account Reporting Events
Inputs: name, since, until, user_id, +1 more.
get_agent_conversation_metricsD
Agent Conversation Metrics
Inputs: no named parameters.
get_agent_summary_reportA
Get conversation statistics grouped by agent
Inputs: no named parameters.
get_automation_stateC
Get one automation state entry
Inputs: namespace (required).
get_channel_summary_reportB
Get conversation statistics grouped by channel type
Inputs: no named parameters.
get_conversation_messagesC
Get messages from a conversation
Inputs: no named parameters.
get_conversation_reporting_eventsD
Conversation Reporting Events
Inputs: no named parameters.
get_csat_survey_pageC
Get CSAT survey page
Inputs: no named parameters.
get_data_sourceD
Get a data source
Inputs: no named parameters.
get_details_of_a_contactD
Get a contact
Inputs: no named parameters.
get_details_of_a_conversationD
Conversation Details
Inputs: no named parameters.
get_details_of_a_inboxC
Inbox details
Inputs: no named parameters.
get_details_of_all_integrationsA
List all the Integrations
Inputs: no named parameters.
get_details_of_a_single_account_agent_botC
Get an agent bot details
Inputs: no named parameters.
get_details_of_a_single_automation_ruleC
Get a automation rule details
Inputs: id (required).
get_details_of_a_single_custom_attributeC
Get a custom attribute details
Inputs: id (required).
get_details_of_a_single_custom_filterB
Get a custom filter details
Inputs: no named parameters.
get_details_of_a_single_labelD
Get a label
Inputs: no named parameters.
get_details_of_a_single_teamC
Get a team details
Inputs: no named parameters.
get_first_response_time_distributionB
Get first response time distribution by channel
Inputs: no named parameters.
get_inboxC
Get an inbox
Inputs: id (required).
get_inbox_agent_botC
Show Inbox Agent Bot
Inputs: id (required).
get_inbox_label_matrixC
Get inbox-label matrix report
Inputs: no named parameters.
get_inbox_membersC
List Agents in Inbox
Inputs: no named parameters.
get_inbox_summary_reportB
Get conversation statistics grouped by inbox
Inputs: no named parameters.
get_label_summary_reportD
Báo cáo hội thoại theo nhãn (Type)
Inputs: no named parameters.
get_outgoing_messages_countC
Get outgoing messages count grouped by entity
Inputs: group_by (required).
get_portalB
List all portals in an account
Inputs: no named parameters.
get_scheduled_flowC
Get a scheduled flow
Inputs: no named parameters.
get_single_conversationC
Get a single conversation
Inputs: no named parameters.
get_sla_policyC
Xem một chính sách SLA
Inputs: no named parameters.
get_team_membersC
List Agents in Team
Inputs: no named parameters.
get_team_summary_reportB
Get conversation statistics grouped by team
Inputs: no named parameters.
inbox_creationA
Create an inbox
Inputs: no named parameters.
list_all_account_agent_botsA
List all AgentBots
Inputs: no named parameters.
list_all_contact_conversationsC
List all conversations
Inputs: no named parameters.
list_all_conversation_messagesC
List all messages
Inputs: no named parameters.
list_all_conversation_statisticsD
Get Account reports
Inputs: no named parameters.
list_all_conversation_statistics_summaryC
Get Account reports summary
Inputs: no named parameters.
list_all_filtersB
List all custom filters
Inputs: no named parameters.
list_all_inboxesA
List all inboxes
Inputs: no named parameters.
list_all_labelsC
List all labels
Inputs: no named parameters.
list_all_labels_of_a_contactD
List Labels
Inputs: no named parameters.
list_all_labels_of_a_conversationD
List Labels
Inputs: no named parameters.
list_all_messagesD
Get messages
Inputs: after, before.
list_all_teamsB
List all teams
Inputs: no named parameters.
list_all_webhooksA
List all webhooks
Inputs: no named parameters.
list_automation_statesC
List automation state entries
Inputs: namespace (required), key, limit.
list_csat_survey_responsesC
Danh sách đánh giá mức độ hài lòng (CSAT)
Inputs: no named parameters.
list_data_sourcesB
List all data sources
Inputs: no named parameters.
list_scheduled_flow_runsC
List past runs of a flow
Inputs: limit.
list_scheduled_flowsC
List scheduled flows
Inputs: no named parameters.
list_sla_policiesC
Danh sách chính sách SLA
Inputs: no named parameters.
new_conversationC
Create New Conversation
Inputs: no named parameters.
put_automation_stateB
Write an automation state entry
Inputs: no named parameters.
query_data_sourceC
Read from the data source
Inputs: no named parameters.
resolve_conversationD
Resolve a conversation
Inputs: no named parameters.
run_scheduled_flowC
Run a flow now (dry run by default)
Inputs: no named parameters.
test_data_sourceC
Test the connection
Inputs: no named parameters.
toggle_priority_of_a_conversationC
Toggle Priority
Inputs: priority (required).
toggle_status_of_a_conversationC
Toggle Status
Inputs: status (required), snoozed_until.
toggle_typing_statusC
Toggle typing status
Inputs: typing_status (required).
toggle_typing_status_of_a_conversationC
Toggle Typing Status
Inputs: typing_status (required), is_private.
update_accountD
Update account
Inputs: no named parameters.
update_account_branded_email_layoutC
Update account branded email layout
Inputs: no named parameters.
update_a_contactC
Update a contact
Inputs: no named parameters.
update_a_custom_filterC
Update a custom filter
Inputs: no named parameters.
update_agent_botC
Add or remove agent bot
Inputs: id (required), agent_bot (required).
update_agent_in_accountC
Update Agent in Account
Inputs: id (required).
update_agents_in_inboxD
Update Agents in Inbox
Inputs: inbox_id (required), user_ids (required).
update_agents_in_teamD
Update Agents in Team
Inputs: user_ids (required).
update_a_labelD
Update a label
Inputs: no named parameters.
update_a_messageC
Update a message
Inputs: no named parameters.
update_an_account_agent_botD
Update an agent bot
Inputs: no named parameters.
update_an_integrations_hookC
Update an Integration Hook
Inputs: no named parameters.
update_a_teamC
Update a team
Inputs: no named parameters.
update_automation_rule_in_accountC
Update automation rule in Account
Inputs: id (required).
update_a_webhookC
Update a webhook object
Inputs: no named parameters.
update_canned_response_in_accountC
Update Canned Response in Account
Inputs: id (required).
update_conversationD
Update Conversation
Inputs: priority, sla_policy_id.
update_custom_attribute_in_accountC
Update custom attribute in Account
Inputs: id (required).
update_custom_attributes_of_a_conversationD
Update Custom Attributes
Inputs: custom_attributes (required).
update_data_sourceD
Update a data source
Inputs: no named parameters.
update_inboxD
Update Inbox
Inputs: id (required).
update_last_seenD
Update last seen
Inputs: no named parameters.
update_portal_to_accountC
Update a portal
Inputs: no named parameters.
update_profileC
Update user profile
Inputs: profile (required).
update_scheduled_flowC
Update a scheduled flow
Inputs: no named parameters.
update_sla_policyC
Sửa chính sách SLA
Inputs: sla_policy.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 155 tools
Many tools have overlapping purposes, e.g., 'create_a_contact' and 'contact_create' both create contacts. The naming is inconsistent, making it hard to distinguish between similar operations.
Tool names follow no consistent pattern, mixing 'contact_list', 'create_a_contact', 'get_details_of_a_contact', and 'contact_create' without rhyme or reason.
With 155 tools, the server is far too large for a typical MCP tool set. This excessive granularity undermines usability and suggests many tools could be merged or parameterized.
While the server covers many entities (contacts, conversations, agents, etc.), the massive redundancy and poor organization indicate significant gaps in coherent workflow coverage.
Maintenance
Related MCP Connectors
Email, WhatsApp and Telegram for AI agents: send, campaigns, automations, contacts, agent inboxes.
Work your HelpRabbit help desk: tickets, replies, customers, the AI agent and its knowledge.
Read and answer support conversations, and run outbound email and chat sequences, from your AI.
Send email, manage domains, templates, webhooks and broadcasts from your AI agent.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Mailjet's contact, campaign, segmentation, statistics, and workflow APIs for managing email marketing operations through natural language.625 npm14Apache 2.0- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage GoHighLevel workspaces through natural language, with 508 tools across 18 domains for complete CRM, marketing, and workflow automation.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceExposes seven read-only tools for sales engagement data from DM Faster, enabling agents to query workspace briefings, campaigns, sendings, replies, pipelines, and company timelines.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage omnichannel CRM data (WhatsApp, Instagram, Facebook) via the official API, including leads, deals, pipelines, activities, tags, products, conversations, lists, attachments, and notes.MIT