Chatwoot MCP by usefulapi
Read conversations and contacts; add replies or notes, set status and assign in Chatwoot.
사용해야 할까요
품질 및 안전성
발견 사항 (5)
- LOWchatwoot_assign_conversation에서
- LOWchatwoot_get_conversation_counts에서
- LOWchatwoot_list_contact_conversations에서
- LOWchatwoot_set_conversation_status에서
- LOWchatwoot_set_conversation_priority에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"chatwoot": {
"url": "https://chatwoot.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://chatwoot.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (18)
🟢chatwoot_get_account
Get the configured Chatwoot account: name, locale, features and plan. Chatwoot API: GET /api/v1/accounts/{account_id}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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"
}커뮤니티
증거