Chatwoot MCP by usefulapi
Read conversations and contacts; add replies or notes, set status and assign in Chatwoot.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- LOWen chatwoot_assign_conversation
- LOWen chatwoot_get_conversation_counts
- LOWen chatwoot_list_contact_conversations
- LOWen chatwoot_set_conversation_status
- LOWen chatwoot_set_conversation_priority
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"chatwoot": {
"url": "https://chatwoot.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://chatwoot.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (18)
🟢chatwoot_get_account
Get the configured Chatwoot account: name, locale, features and plan. Chatwoot API: GET /api/v1/accounts/{account_id}.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_conversations(status, assignee_type, inbox_id, team_id, labels, ...)
List conversations, 25 per page, filtered by status, assignee, inbox, team, labels or a text query. Chatwoot API: GET /api/v1/accounts/{account_id}/conversations.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"description": "Default open.",
"type": "string",
"enum": [
"all",
"open",
"resolved",
"pending",
"snoozed"
]
},
"assignee_type": {
"description": "Default all.",
"type": "string",
"enum": [
"all",
"assigned",
"unassigned",
"me"
]
},
"inbox_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"team_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"labels": {
"description": "Only conversations with all these label titles.",
"type": "array",
"items": {
"type": "string"
}
},
"q": {
"description": "Free-text search.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_get_conversation_counts(status, inbox_id, team_id, q)
Get the open, unassigned and total conversation counts for a status, inbox or team. Chatwoot API: GET /api/v1/accounts/{account_id}/conversations/meta.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"all",
"open",
"resolved",
"pending",
"snoozed"
]
},
"inbox_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"team_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"q": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_get_conversation(conversation_id)
Get one conversation with its status, priority, assignee, team, labels and contact. Chatwoot API: GET .../conversations/{conversation_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Conversation id (from chatwoot_list_conversations)."
}
},
"required": [
"conversation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_messages(conversation_id, before, after)
List the messages of one conversation, oldest first. Chatwoot API: GET .../conversations/{conversation_id}/messages.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"before": {
"description": "Only messages with an id below this value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"after": {
"description": "Only messages with an id above this value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"conversation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_contacts(page, sort)
List resolved contacts (those with an email, phone number or identifier), 15 per page. Chatwoot API: GET .../contacts.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"sort": {
"type": "string",
"enum": [
"name",
"email",
"phone_number",
"last_activity_at",
"-name",
"-email",
"-phone_number",
"-last_activity_at"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_search_contacts(q, page, sort)
Search resolved contacts by a text key (name, email or phone). Chatwoot API: GET .../contacts/search.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"description": "Search text."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"sort": {
"type": "string",
"enum": [
"name",
"email",
"phone_number",
"last_activity_at",
"-name",
"-email",
"-phone_number",
"-last_activity_at"
]
}
},
"required": [
"q"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_get_contact(contact_id)
Get one contact with its attributes, labels and custom attributes. Chatwoot API: GET .../contacts/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Contact id (from chatwoot_list_contacts or chatwoot_search_contacts)."
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_contact_conversations(contact_id)
List all conversations of one contact. Chatwoot API: GET .../contacts/{id}/conversations.
Esquema de entrada
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_labels
List all labels of the account. Chatwoot API: GET .../labels.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_inboxes
List the inboxes (channels) of the account. Chatwoot API: GET .../inboxes.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_agents
List the agents of the account with their roles. Chatwoot API: GET .../agents.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_teams
List the teams of the account. Chatwoot API: GET .../teams.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chatwoot_list_canned_responses
List the saved reply templates (canned responses) of the account. Chatwoot API: GET .../canned_responses.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chatwoot_send_message(conversation_id, content, private)
Add a message to a conversation. Default: a private note that the customer never sees. Set private to false to send a reply that the customer receives by email or chat. Chatwoot API: POST .../conversations/{conversation_id}/messages.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"content": {
"type": "string",
"minLength": 1,
"description": "The message text."
},
"private": {
"description": "true (default) = internal note; false = customer-visible reply.",
"type": "boolean"
}
},
"required": [
"conversation_id",
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡chatwoot_set_conversation_status(conversation_id, status, snoozed_until)
Set a conversation to open, resolved, pending or snoozed. For snoozed, snoozed_until is a Unix time in seconds (optional). Chatwoot API: POST .../conversations/{conversation_id}/toggle_status.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"open",
"resolved",
"pending",
"snoozed"
]
},
"snoozed_until": {
"description": "Unix time in seconds; only with status snoozed.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"conversation_id",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡chatwoot_set_conversation_priority(conversation_id, priority)
Set a conversation priority: urgent, high, medium, low, or none (clears it). Chatwoot API: PATCH .../conversations/{conversation_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"priority": {
"type": "string",
"enum": [
"urgent",
"high",
"medium",
"low",
"none"
]
}
},
"required": [
"conversation_id",
"priority"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡chatwoot_assign_conversation(conversation_id, assignee_id, team_id)
Assign a conversation to an agent (assignee_id) or to a team (team_id). Give exactly one. Chatwoot API: POST .../conversations/{conversation_id}/assignments.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"assignee_id": {
"description": "Agent user id (from chatwoot_list_agents).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"team_id": {
"description": "Team id (from chatwoot_list_teams).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"conversation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia