Skip to main content
Glama
honeybluesky

Unipile MCP Server

by honeybluesky

유니파일 MCP 서버

Unipile을 사용하여 여러 메시징 플랫폼에서 메시지에 액세스하기 위한 MCP 서버입니다.

개요

유니파일(Unipile) 메시징 플랫폼과의 통합을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버 구현입니다. 이 서버를 통해 AI 모델은 표준화된 인터페이스를 통해 다양한 메시징 플랫폼(모바일, 메일, WhatsApp, LinkedIn, Slack, Twitter, Telegram, Instagram, Messenger)의 메시지와 상호 작용할 수 있습니다.

모델 컨텍스트 프로토콜과 그 작동 방식에 대한 자세한 내용은 Anthropic의 MCP 설명서를 참조하세요.

Related MCP server: iMessage Max

유니파일 구독

유니파일 서비스를 이용하려면 구독이 필요합니다. 저는 유니파일로부터 유료 서비스를 제공받는 것이 아닙니다. 유니파일의 효율성 때문에 유니파일을 애용하는 사용자일 뿐입니다. 구독 및 기능에 대한 자세한 내용은 유니파일 메시징 API 페이지를 참조하세요.

커뮤니케이션 능력

유니파일을 사용하면 다양한 소셜 플랫폼에서 원활하게 소통할 수 있습니다. 여기에는 다음과 같은 인기 메시징 서비스가 포함됩니다.

  • LinkedIn : Unipile 인터페이스를 통해 전문가 연락처와 소통하고, 메시지를 보내고, LinkedIn 상호 작용을 직접 관리하세요.

  • WhatsApp : 메시지를 보내고 받고, 채팅을 관리하고, 연락처와 연결을 유지하세요.

  • Instagram : 팔로워와 소통하고, 다이렉트 메시지에 답하고, Instagram 커뮤니케이션을 관리하세요.

  • 메신저 : Facebook Messenger를 통해 친구 및 가족과 소통하세요.

  • Telegram : Telegram 채팅과 메시지에 손쉽게 접근하세요.

유니파일은 이러한 플랫폼과 통합되어 통합된 커뮤니케이션 경험을 제공하여 다양한 서비스 간의 상호작용을 더욱 쉽게 관리할 수 있도록 합니다. 특히 링크드인을 통해 전문적인 네트워킹을 하는 사용자에게 유용합니다. 클로드와 같은 AI 기능을 활용하여 커뮤니케이션 전략을 강화할 수 있기 때문입니다.

구성 요소

자원

서버는 다음과 같은 리소스를 제공합니다.

  • unipile://messages : 연결된 메시징 플랫폼의 메시지에 대한 액세스를 제공하는 동적 리소스

예시 프롬프트

  • 채팅에서 모든 메시지 가져오기:

    지엑스피1

도구

서버는 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 Hub에서 가져올 수 있습니다. 이미지는 Linux 플랫폼용으로 빌드되었습니다.

지원 플랫폼

  • 리눅스/amd64

  • 리눅스/arm64

  • 리눅스/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 명령을 사용할 수 있습니다. 다음 단계를 따르세요.

  1. 새로운 빌더 인스턴스를 만듭니다 (아직 만들지 않았다면):

    docker buildx create --use
  2. 여러 플랫폼에 대한 이미지를 빌드하고 푸시합니다 .

    docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-unipile:latest --push .
  3. 지정된 플랫폼에서 이미지를 사용할 수 있는지 확인하세요 .

    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 tools
unipile_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of emails to return (default: 10)
account_idYesThe ID of the account to get emails from

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesThe 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_sizeNoNumber of messages to fetch per chat (default: 20)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv1.0.1
    • First observedunipile_get_accounts
    • First observedunipile_get_emails
    • First observedunipile_get_recent_messages

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow the consistent pattern 'unipile_get_<resource>', using snake_case and the same verb prefix, making them predictable.

Tool Count4/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    6
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects 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.
    18
    11
    24
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables any MCP-compatible AI agent to send WhatsApp messages, SMS, OTP codes, and email through a single REST API.
    18
    MIT