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 件