Unipile MCP Server
Unipile MCP 服务器
MCP 服务器用于使用 Unipile 跨多个消息平台访问消息。
概述
模型上下文协议 (MCP) 服务器实现,提供与 Unipile 消息平台的集成。该服务器使 AI 模型能够通过标准化接口与来自各种消息平台(移动端、邮件、WhatsApp、LinkedIn、Slack、Twitter、Telegram、Instagram、Messenger)的消息进行交互。
有关模型上下文协议及其工作原理的更多信息,请参阅Anthropic 的 MCP 文档。
Related MCP server: iMessage Max
Unipile 订阅
要使用 Unipile 服务,需要订阅。Unipile 并未向我支付任何费用;我只是一个喜欢使用 Unipile 的用户,因为它运行高效。有关订阅和功能的更多详情,请访问Unipile 消息传递 API 页面。
通信能力
使用 Unipile,您可以在各种社交平台上无缝沟通。其中包括以下热门消息服务:
LinkedIn :通过 Unipile 界面直接与专业联系人联系、发送消息并管理您的 LinkedIn 互动。
WhatsApp :发送和接收消息、管理聊天并与您的联系人保持联系。
Instagram :与关注者互动、回复直接消息以及管理您的 Instagram 通信。
Messenger :通过 Facebook Messenger 与朋友和家人交流。
Telegram :轻松访问您的 Telegram 聊天和消息。
Unipile 与这些平台的集成实现了统一的沟通体验,使跨不同服务之间的互动管理更加便捷。这对于依赖 LinkedIn 进行职业社交的用户尤其有益,因为他们可以利用 Claude 等人工智能功能来增强沟通策略。
成分
资源
服务器公开以下资源:
unipile://messages:提供对来自连接的消息平台的消息的访问的动态资源
示例提示
获取聊天中的所有消息:
Get all messages from chat ID "chat_123"
工具
该服务器提供了几种访问 Unipile 数据的工具:
消息管理工具
unipile_get_chat_messages检索特定聊天中的所有消息,并支持分页
输入:chat_id(必填)、batch_size(可选,默认值:100)
返回:消息对象数组
设置
您需要 Unipile DSN 和 API 密钥。您可以从 Unipile 控制面板获取这些信息。
环境变量
UNIPILE_DSN:您的 Unipile DSN(例如 api8.unipile.com:13851)UNIPILE_API_KEY:您的 Unipile API 密钥
注意:请确保您的 API 密钥安全,切勿将其提交到版本控制中。
Docker 安装
您可以在本地构建镜像,也可以从 Docker Hub 拉取。该镜像是为 Linux 平台构建的。
支持的平台
Linux/amd64
Linux/arm64
Linux/arm/v7
选项 1:从 Docker Hub 拉取
docker pull buryhuang/mcp-unipile:latest选项 2:本地构建
docker build -t mcp-unipile .运行容器:
docker run \
-e UNIPILE_DSN=your_dsn_here \
-e UNIPILE_API_KEY=your_api_key_here \
buryhuang/mcp-unipile:latest跨平台发布
要为多个平台发布 Docker 镜像,可以使用docker buildx命令。请按以下步骤操作:
创建一个新的构建器实例(如果还没有):
docker buildx create --use为多个平台构建并推送图像:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-unipile:latest --push .验证该图像是否适用于指定的平台:
docker buildx imagetools inspect buryhuang/mcp-unipile:latest
与 Claude Desktop 一起使用
Docker 使用
{
"mcpServers": {
"unipile": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"UNIPILE_DSN=your_dsn_here",
"-e",
"UNIPILE_API_KEY=your_api_key_here",
"buryhuang/mcp-unipile:latest"
]
}
}
}发展
设置开发环境:
pip install -e .执照
该项目已获得 MIT 许可。
Available Tools
3 toolsunipile_get_accountsA
Get all connected messaging accounts from supported platforms: Mobile, Mail, WhatsApp, LinkedIn, Slack, Twitter, Telegram, Instagram, Messenger. Returns account details including connection parameters, ID, name, creation date, signatures, groups, and sources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation and lists return fields, but does not mention authentication, rate limits, or how 'all' accounts are determined (e.g., pagination or scope). The behavioral transparency is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main action and includes a list of platforms and return fields. It is concise but could be slightly more streamlined; however, it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description adequately explains what the tool does and what it returns. It does not mention limits or behavior under different conditions, but for a simple read-only list operation, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100%), so the baseline is 4. The description adds meaning by explaining the return value in detail, which compensates for the lack of parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'all connected messaging accounts', listing specific platforms. It distinguishes itself from sibling tools like unipile_get_emails and unipile_get_recent_messages by focusing on accounts rather than emails or messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives, but the sibling tools' names imply different resources (emails vs messages vs accounts). The context is clear enough for an agent to infer appropriate usage, though explicit guidance would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unipile_get_emailsA
Get recent emails from a specific account. Returns email details including subject, body, sender, recipients, attachments, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of emails to return (default: 10) | |
| account_id | Yes | The ID of the account to get emails from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It lists returned fields (subject, body, sender, recipients, attachments, metadata) and mentions 'recent'. This adds value beyond the schema, but does not cover pagination, rate limits, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear verb and resource, front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 parameters and no output schema, the description covers purpose and return fields adequately. Could mention pagination or error handling, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description only adds 'recent' and 'specific account' context, which is marginal. Baseline 3 is appropriate since schema already documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get recent emails from a specific account' with a specific verb and resource, and it distinguishes from siblings like unipile_get_accounts and unipile_get_recent_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It is implied to use when needing emails from an account, but lacks direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unipile_get_recent_messagesA
Get recent messages from all chats associated with a specific account. Supports messages from: Mobile, Mail, WhatsApp, LinkedIn, Slack, Twitter, Telegram, Instagram, Messenger. Returns message details including text content, sender info, timestamps, attachments, reactions, quoted messages, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The one source ID of of the account to get messages from. It is the id of the source objects in the account's sources array. | |
| batch_size | No | Number of messages to fetch per chat (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It details return fields (text, sender, timestamps, attachments, etc.), but lacks disclosure on side effects, rate limits, idempotency, or reading permissions. The 'get' action implies read-only but is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no superfluous text. First sentence states core action, second enumerates supported platforms and return details. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description explains return details adequately. However, it omits pagination behavior, ordering of messages, and does not mention the default batch size (schema covers it). Minor gap in complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (100% coverage), so baseline is 3. The description adds context about supported platforms but does not elaborate on parameter usage beyond schema. No new semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recent messages from all chats for a specific account, listing supported platforms. It distinguishes itself from sibling tools (unipile_get_accounts, unipile_get_emails) by focusing on messages across chat platforms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching recent messages but does not explicitly specify when to use versus alternatives or provide any exclusions. No guidance on prerequisite actions or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.1- First observed
unipile_get_accounts - First observed
unipile_get_emails - First observed
unipile_get_recent_messages
TDQS
Scored across 3 tools
Each tool targets a distinct resource: accounts, emails, and messages. The descriptions clearly separate emails (from a specific account) from recent messages (from all chats), so no ambiguity.
All tool names follow the consistent pattern 'unipile_get_<resource>', using snake_case and the same verb prefix, making them predictable.
With 3 tools, the server is focused on read operations for accounts, emails, and messages. This is appropriate for a read-only interface, though it is slightly minimal.
The server covers basic read operations but lacks common features like searching, filtering, or fetching specific messages by ID. For a messaging platform, missing send/delete is acceptable if intended as read-only, but the surface is still limited.
Maintenance
Related MCP Connectors
Unified inbox MCP for WhatsApp, Telegram, Email, voice — read/send messages, search, AI agents.
Unified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inbox
Pass messages between AI agents with cleaning, metadata enrichment, and metered billing.
Instagram, WhatsApp and Messenger DMs through official Meta Business APIs.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Large Language Models to connect to various real-world applications through a modular framework with pluggable service connectors. Supports messaging platforms like WhatsApp and Telegram with secure authentication and includes a React control panel for testing.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and send iMessages with features like contact name resolution, session grouping, and attachment listing. It provides intent-aligned tools to efficiently navigate conversation history and manage messages through natural language queries.6MIT
- AlicenseAqualityDmaintenanceConnects AI assistants to the official Meta WhatsApp Cloud API for managing conversations and sending various message types through natural language. It provides tools for media management, template messages, and real-time webhook processing without the risk of account bans.181124MIT

SendAPI MCP Serverofficial
AlicenseAqualityBmaintenanceEnables any MCP-compatible AI agent to send WhatsApp messages, SMS, OTP codes, and email through a single REST API.18MIT