← Back to search

@gibahjoe/chatwoot-mcp-server

GitHub Actions Scanned 5d ago

MCP server for Chatwoot API integration - manage conversations, contacts, and messages

npm
C
68.3 / 100

Versions

1.3.0latest
Jul 9, 2026
1.2.0
Jul 7, 2026
1.1.0
Jul 7, 2026
1.0.0
Jul 6, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 16

chatwoot_list_conversations
annotations: verified low

List conversations from a Chatwoot account with filtering options. This tool retrieves conversations from Chatwoot, allowing you to filter by status, assignee, and inbox. Supports pagination for large result sets. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - page (number): Page number for pagination, starts at 1 (default: 1) - status (string): Filter by conversation status - "open", "resolved", "pending", "snoozed", or "all" (default: "open") - assignee_type (string): Filter by assignee - "me", "unassigned", or "all" (optional) - inbox_id (number): Filter by specific inbox ID (optional) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: A list of conversations with details including: - Conversation ID, status, and inbox - Contact information (name, email) - Assignee details - Message count and unread count - Last activity timestamp Examples: - List all open conversations: { account_id: 1, status: "open" } - List unassigned conversations: { account_id: 1, assignee_type: "unassigned" } - List conversations in specific inbox: { account_id: 1, inbox_id: 5 }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_get_conversation
annotations: verified low

Get detailed information about a specific Chatwoot conversation. This tool retrieves full details for a single conversation including contact info, assignee, labels, and custom attributes. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - conversation_id (number): The ID of the conversation to retrieve (required) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: Full conversation details including: - Status, inbox, and metadata - Complete contact information - Assignee details - Labels and custom attributes - Message statistics Examples: - Get conversation details: { account_id: 1, conversation_id: 123 }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_list_messages
annotations: verified low

List all messages in a Chatwoot conversation. This tool retrieves all messages from a specific conversation, including message content, sender information, timestamps, and attachments. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - conversation_id (number): The ID of the conversation (required) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: List of messages with: - Message ID and content - Message type (incoming/outgoing) - Sender information (name, type) - Timestamp - Attachment information - Private flag (for internal notes) Examples: - List all messages: { account_id: 1, conversation_id: 123 }

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_create_message
annotations: verified low

Create a new message in a Chatwoot conversation. This tool sends a message in an existing conversation. Can be used for outgoing messages to customers or private internal notes. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - conversation_id (number): The ID of the conversation (required) - content (string): The message content (required) - message_type (string): Type of message - "outgoing" or "incoming" (default: "outgoing") - private (boolean): Whether this is a private internal note (default: false) Returns: Created message details including ID and confirmation Examples: - Send a reply: { account_id: 1, conversation_id: 123, content: "Thank you for contacting us!" } - Add internal note: { account_id: 1, conversation_id: 123, content: "Customer called for follow-up", private: true }

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_upload_file
annotations: verified low

Upload a local file to a Chatwoot account. Use this before creating or updating a help center article that needs an image or file. The tool returns file_url and blob_id. To embed an uploaded image in article content, add Markdown like ![](file_url) using the returned file_url. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - file_path (string): Local path to the file to upload (required) - filename (string): Optional filename to send to Chatwoot - content_type (string): Optional MIME type, such as image/png - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: Upload details including: - file_url: URL to use in article Markdown or other Chatwoot content - blob_id: Chatwoot/Active Storage blob identifier

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_list_help_center_portals
annotations: verified low

List help center portals for a Chatwoot account. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: A list of help center portals with locale configuration, linked inbox, article counts, category counts, and domain metadata.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_create_help_center_portal
annotations: verified low

Create a help center portal in a Chatwoot account. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - name (string): Help center name (required) - slug (string): URL slug for the help center (required) - color (string): Header color in hex format (optional) - custom_domain (string): Custom help center domain (optional) - header_text (string): Help center header text (optional) - homepage_link (string): Main website or dashboard URL (optional) - page_title (string): Browser page title (optional) - archived (boolean): Whether the portal is archived (optional) - config (object): Locale config with allowed_locales and default_locale (optional)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_update_help_center_portal
annotations: verified low

Update a help center portal in a Chatwoot account. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - name, slug, color, custom_domain, header_text, homepage_link, page_title, archived, config: Portal fields to update

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_list_help_center_categories
annotations: verified low

List categories in a Chatwoot help center portal. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - locale (string): Locale filter, such as "en" (optional) - page (number): Page number for pagination, starts at 1 (default: 1) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: A list of help center categories with article counts and pagination metadata.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_create_help_center_category
annotations: verified low

Create a category in a Chatwoot help center portal. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - name (string): Category name (required) - description (string): Category description (optional) - slug (string): Category URL slug (optional) - locale (string): Category locale (optional) - icon (string): Category icon as a string (optional) - position (number): Sort position (optional) - parent_category_id (number): Parent category ID (optional) - associated_category_id (number): Associated category ID for related locales/categories (optional)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_update_help_center_category
annotations: verified low

Update a category in a Chatwoot help center portal. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - category_id (number): Category ID to update (required) - name (string): Category name (optional) - description (string): Category description (optional) - slug (string): Category URL slug (optional) - locale (string): Category locale (optional) - icon (string): Category icon as a string (optional) - position (number): Sort position (optional) - parent_category_id (number): Parent category ID (optional) - associated_category_id (number): Associated category ID for related locales/categories (optional)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_delete_help_center_category
annotations: verified low

Delete a category from a Chatwoot help center portal. Chatwoot does not expose category archiving. Deleting a category removes the category; existing articles are left uncategorized by Chatwoot. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - category_id (number): Category ID to delete (required)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
chatwoot_list_help_center_articles
annotations: verified low

List articles in a Chatwoot help center portal. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - locale (string): Locale filter, such as "en" (optional) - category_slug (string): Category slug filter, such as "downloads-and-offline" (optional) - query (string): Full-text search across article title, description, and content (optional) - status (string): Filter by "draft", "published", or "archived" (optional) - author_id (number): Filter by author user ID (optional) - page (number): Page number for pagination, starts at 1 (default: 1) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: A list of help center articles with status, category, author, view counts, and pagination metadata.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_get_help_center_article
annotations: verified low

Get one full article from a Chatwoot help center portal without listing pages. Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - article_id (number): Article ID to fetch (required) - response_format (string): Output format - "markdown" or "json" (default: "markdown") Returns: Full article details including title, description, status, category, views, metadata, and content.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
chatwoot_create_help_center_article
annotations: verified low

Create an article in a Chatwoot help center portal. For images or file embeds, first call chatwoot_upload_file, then insert the returned file_url into content using Markdown such as ![](file_url). Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - title (string): Article title (required) - content (string): Article body content (required) - slug (string): Article URL slug (optional) - description (string): Article description (optional) - category_id (number): Category ID (optional) - author_id (number): Author agent ID (optional) - status (string): "draft", "published", or "archived"; tool sends Chatwoot's numeric enum value (default: "draft") - locale (string): Article locale (optional) - position (number): Sort position (optional) - associated_article_id (number): Associated article ID for related locales/articles (optional) - meta (object): Search metadata such as tags, title, or description (optional)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
chatwoot_update_help_center_article
annotations: verified low

Update an article in a Chatwoot help center portal. For images or file embeds, first call chatwoot_upload_file, then insert the returned file_url into content using Markdown such as ![](file_url). Args: - account_id (number): The numeric ID of the Chatwoot account (required) - portal_id (string): Help center portal slug; Chatwoot names this path parameter "id" (required) - article_id (number): Article ID to update (required) - title (string): Article title (optional) - content (string): Article body content (optional) - slug (string): Article URL slug (optional) - description (string): Article description (optional) - category_id (number): Category ID (optional) - author_id (number): Author agent ID (optional) - status (string): "draft", "published", or "archived"; tool sends Chatwoot's numeric enum value (optional) - locale (string): Article locale (optional) - position (number): Sort position (optional) - associated_article_id (number): Associated article ID for related locales/articles (optional) - meta (object): Search metadata such as tags, title, or description (optional)

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false

Permissions 2

network medium
Server uses network capabilities via: fetch()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 48

info
Tool 'chatwoot_list_conversations' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_get_conversation' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_list_messages' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_create_message' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_upload_file' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_list_help_center_portals' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_create_help_center_portal' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_update_help_center_portal' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_list_help_center_categories' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_create_help_center_category' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_update_help_center_category' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_delete_help_center_category' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_list_help_center_articles' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_get_help_center_article' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_create_help_center_article' annotations are consistent annotation_checker · 80%
info
Tool 'chatwoot_update_help_center_article' annotations are consistent annotation_checker · 80%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Vulnerable dependency: vitest@4.0.17 (GHSA-5xrq-8626-4rwp) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: chatwoot_list_conversations manifest_parser · 85%
info
Tool: chatwoot_get_conversation manifest_parser · 85%
info
Tool: chatwoot_list_messages manifest_parser · 85%
info
Tool: chatwoot_create_message manifest_parser · 85%
info
Tool: chatwoot_upload_file manifest_parser · 85%
info
Tool: chatwoot_list_help_center_portals manifest_parser · 85%
info
Tool: chatwoot_create_help_center_portal manifest_parser · 85%
info
Tool: chatwoot_update_help_center_portal manifest_parser · 85%
info
Tool: chatwoot_list_help_center_categories manifest_parser · 85%
info
Tool: chatwoot_create_help_center_category manifest_parser · 85%
info
Tool: chatwoot_update_help_center_category manifest_parser · 85%
info
Tool: chatwoot_delete_help_center_category manifest_parser · 85%
critical
Tool poisoning in 'chatwoot_update_help_center_article': Cross-tool prerequisite: 'first call/use' poisoning · 85%
info
Tool: chatwoot_list_help_center_articles manifest_parser · 85%
info
Tool: chatwoot_get_help_center_article manifest_parser · 85%
info
Tool: chatwoot_create_help_center_article manifest_parser · 85%
info
Tool: chatwoot_update_help_center_article manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'chatwoot_create_help_center_article': Cross-tool prerequisite: 'first call/use' poisoning · 85%
info
SBOM generated: 10 components sbom_generator · 100%
high
Hardcoded Password found in gibahjoe-chatwoot-mcp-e036194/README.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%