Chatwoot MCP by usefulapi

Read conversations and contacts; add replies or notes, set status and assign in Chatwoot.

사용해야 할까요

품질 및 안전성

B
설명 품질
98%
스키마 완전성
69%
이름 품질
76%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (5)

  • LOWTool 'chatwoot_assign_conversation' description lacks action verbchatwoot_assign_conversation에서
  • LOWTool 'chatwoot_get_conversation_counts' name length outside 3-30 rangechatwoot_get_conversation_counts에서
  • LOWTool 'chatwoot_list_contact_conversations' name length outside 3-30 rangechatwoot_list_contact_conversations에서
  • LOWTool 'chatwoot_set_conversation_status' name length outside 3-30 rangechatwoot_set_conversation_status에서
  • LOWTool 'chatwoot_set_conversation_priority' name length outside 3-30 rangechatwoot_set_conversation_priority에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,473토큰 (도구 정의)
~879 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.93%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 18개