SingChat

Free live chat and AI support agent. Auto-create a workspace and embed from your AI editor.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
85%
命名质量
94%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,546token 数(工具定义)
~1.0 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.99%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "singchat": {
      "url": "https://singchat.org/api/mcp/mcp"
    }
  }
}

远程端点

https://singchat.org/api/mcp/mcpstreamable-http
https://mcp.singchat.orgstreamable-http

它能做什么

工具清单

工具(17)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢ping

Health check for the SingChat MCP server. Returns 'pong' and whether this request is authenticated to a workspace.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢singchat_setup(name)

Get the user up and running with SingChat live-chat. Call this FIRST. If no authenticated workspace is configured, this creates a brand-new free workspace and returns a short-lived, single-use browser claim link plus the website embed snippet. The user chooses their own sign-in details in the browser; no reusable credentials are returned to the model. If a workspace is already authenticated, it returns THIS workspace's embed snippet and dashboard link (it never creates a duplicate workspace).

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Optional workspace/brand name for a newly created workspace. Ignored if a key is already set.",
      "type": "string",
      "maxLength": 120
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_embed_snippet(platform)

Return the SingChat chat-widget embed code for this workspace's web inbox, in three flavors: plain HTML, React (useEffect), and Next.js (next/script). Requires a workspace API key. Optionally pass `platform` to get just one flavor.

输入模式

{
  "type": "object",
  "properties": {
    "platform": {
      "description": "Which snippet to return. Omit to get all three.",
      "type": "string",
      "enum": [
        "html",
        "react",
        "next"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪claim_account

Return the link to claim (permanently secure) this SingChat workspace by setting an email and password. Use this for workspaces that were auto-created via MCP so the user does not lose access. The link is single-use and expires after 15 minutes. Requires an authenticated legacy workspace.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢list_conversations(status, search, limit)

List the workspace's support conversations (agent/inbox view), newest activity first. Optionally filter by status or a free-text search over the contact name/email and last message. Returns a compact list: id, contact name, status, unreadCount, last message preview, updatedAt.

输入模式

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Only conversations with this status.",
      "type": "string",
      "enum": [
        "OPEN",
        "PENDING",
        "RESOLVED",
        "SNOOZED"
      ]
    },
    "search": {
      "description": "Free-text match on contact name/email and the last message preview.",
      "type": "string"
    },
    "limit": {
      "description": "Max conversations to return (default 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_conversation(conversationId)

Fetch a single conversation with its contact details and the most recent messages (oldest→newest).

输入模式

{
  "type": "object",
  "properties": {
    "conversationId": {
      "type": "string",
      "minLength": 1,
      "description": "The conversation id (from list_conversations)."
    }
  },
  "required": [
    "conversationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡reply_to_conversation(conversationId, content)

Send an agent reply through a supported SingChat real-time inbox. This takes the conversation over from the AI and broadcasts the message to the visitor and agent inbox. Email, Telegram, and WhatsApp conversations are rejected before any change.

输入模式

{
  "type": "object",
  "properties": {
    "conversationId": {
      "type": "string",
      "minLength": 1,
      "description": "The conversation id to reply in."
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "description": "The reply text to send to the visitor."
    }
  },
  "required": [
    "conversationId",
    "content"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢resolve_conversation(conversationId)

Mark a conversation as RESOLVED (closes it). The visitor's widget will no longer show it as active.

输入模式

{
  "type": "object",
  "properties": {
    "conversationId": {
      "type": "string",
      "minLength": 1,
      "description": "The conversation id to resolve."
    }
  },
  "required": [
    "conversationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_knowledge(type, url, question, answer)

Train the AI agent by adding a knowledge source. type='url' crawls a website (up to 50 pages, fewer when the workspace knowledge-base quota is nearly full); type='qa' stores a single question/answer pair. Ingestion is asynchronous, the source starts as PENDING; poll `list_knowledge` for READY status.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "url",
        "qa"
      ],
      "description": "'url' to crawl a website, or 'qa' to add a question/answer pair."
    },
    "url": {
      "description": "Website root URL to crawl. Required when type='url'.",
      "type": "string",
      "format": "uri"
    },
    "question": {
      "description": "The question. Required when type='qa'.",
      "type": "string"
    },
    "answer": {
      "description": "The answer. Required when type='qa'.",
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡list_knowledge

List all knowledge documents for this workspace with their processing status (PENDING | PROCESSING | READY | FAILED) and chunk counts. Use this to check whether items added via add_knowledge have finished training.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢search_knowledge(query, topK)

Semantic search over the workspace knowledge base. Returns the most relevant chunks (with source document title and similarity score) for a query. Only searches documents that have finished training (status READY).

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "The search query / user question."
    },
    "topK": {
      "description": "Max number of chunks to return (default 5).",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢configure_agent(enabled, systemPrompt, greetingMessage, model, providerMode)

Configure this workspace's AI support agent. All fields are optional, only the fields you pass are updated; the rest keep their current values. Call with no fields to just read back the current configuration. Does not touch or return any API keys.

输入模式

{
  "type": "object",
  "properties": {
    "enabled": {
      "description": "Turn the automated AI agent on (true) or off (false).",
      "type": "boolean"
    },
    "systemPrompt": {
      "description": "The agent's system prompt / persona and answering rules.",
      "type": "string",
      "minLength": 1,
      "maxLength": 8000
    },
    "greetingMessage": {
      "description": "First message visitors see when they open the chat. Pass an empty string to clear it.",
      "type": "string",
      "maxLength": 2000
    },
    "model": {
      "description": "Chat model id, e.g. gpt-4o-mini.",
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "providerMode": {
      "description": "'platform' = platform-hosted keys (billed via AI credits); 'byok' = bring your own key.",
      "type": "string",
      "enum": [
        "platform",
        "byok"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡set_keywords(keywords, reply, matchType)

Add a keyword auto-reply rule: when an inbound message matches any of the keywords, the bot replies with the given text. Good for canned FAQ-style triggers (e.g. keyword 'invoice' -> 'Download it from the billing page').

输入模式

{
  "type": "object",
  "properties": {
    "keywords": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "description": "Trigger words/phrases (case-insensitive)."
    },
    "reply": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "The reply text to send."
    },
    "matchType": {
      "description": "CONTAINS (default) = keyword appears anywhere in the message; EXACT = whole message equals the keyword.",
      "type": "string",
      "enum": [
        "CONTAINS",
        "EXACT"
      ]
    }
  },
  "required": [
    "keywords",
    "reply"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴manage_faq(action, id, question, answer, enabled)

List, create, update, or delete this workspace's FAQ items (shown in the chat widget and usable by the AI agent). Set `action` to 'list' | 'create' | 'update' | 'delete'. 'create' needs `question` + `answer`; 'update' and 'delete' need `id`.

输入模式

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "create",
        "update",
        "delete"
      ],
      "description": "Which FAQ operation to run."
    },
    "id": {
      "description": "FAQ item id. Required for 'update' and 'delete'.",
      "type": "string"
    },
    "question": {
      "description": "Question text. Required for 'create'; optional for 'update'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "answer": {
      "description": "Answer text. Required for 'create'; optional for 'update'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    },
    "enabled": {
      "description": "Whether the FAQ item is visible/active. Optional for 'create' and 'update'.",
      "type": "boolean"
    }
  },
  "required": [
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_analytics(days)

Return a compact analytics summary for this workspace over the last `days` days (default 30): conversation counts + resolution rate, message volume + AI share, plus a live snapshot of today (UTC).

输入模式

{
  "type": "object",
  "properties": {
    "days": {
      "default": 30,
      "description": "Look-back window in days for the conversation/message stats (default 30).",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search(query)

Search SingChat for relevant documents. When called with a workspace API key, this searches that workspace knowledge base; without a key it searches SingChat's own help content (what SingChat is, adding the chat widget, MCP setup, free tier, AI training, channels, white label, pricing). Returns a list of results with id, title, and url. Use the fetch tool with a result id to read the full text.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search query or user question."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "results"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢fetch(id)

Fetch the full text of a single document by id, using an id returned by the search tool. With a workspace API key this reads a knowledge document from that workspace; without a key it reads a SingChat help article. Returns id, title, text, url, and optional metadata.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The document id returned by the search tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

推荐提示词

search_research
Search for information about [topic] using SingChat
预期工具: search_knowledge
find_specific
Find [specific item] using SingChat
预期工具: search_knowledge
retrieve_data
Get details about [item] from SingChat
预期工具: get_embed_snippet
fetch_info
Fetch [information type] using SingChat
预期工具: get_embed_snippet
list_items
List all [items] available in SingChat
预期工具: list_conversations

社区

评价此服务器

证据

最近观测

已验证未记录版本17 个工具
已验证未记录版本17 个工具
已验证未记录版本17 个工具
已验证未记录版本17 个工具