0.1.10 • Published 7 months ago

@closiqode/mcp-server-unipile v0.1.10

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

MCP Server Unipile

Serveur MCP (Model Context Protocol) pour l'API Unipile, permettant d'intégrer les fonctionnalités de messagerie, email, calendrier et réseaux sociaux d'Unipile dans les modèles de langage.

Description

Ce serveur MCP permet aux modèles de langage d'accéder aux fonctionnalités de l'API Unipile, qui offre une intégration unifiée de divers canaux de communication comme LinkedIn, WhatsApp, Gmail, et bien d'autres. Le serveur expose un ensemble d'outils permettant d'interagir avec ces services via une interface standardisée.

Fonctionnalités

  • Gestion des comptes : Lister, consulter, supprimer et resynchroniser les comptes connectés à Unipile
  • Messagerie : Lister les conversations, envoyer des messages, consulter les participants
  • Emails : Lister, envoyer, consulter et supprimer des emails
  • Calendriers : Gérer les calendriers et les événements
  • LinkedIn : Effectuer des recherches et consulter les projets de recrutement
  • Invitations : Envoyer et lister les invitations aux utilisateurs

Prérequis

  • Node.js v16 ou supérieur
  • Un compte Unipile avec un Access Token
  • Un DSN (Data Source Name) Unipile

Installation

npm install @closiqode/mcp-server-unipile

Configuration

Le serveur MCP Unipile utilise les variables d'environnement suivantes :

  • UNIPILE_API_URL : L'URL de base de l'API Unipile, incluant votre DSN (ex: https://votre-dsn.unipile.com/api/v1)
  • UNIPILE_API_KEY : Votre clé API Unipile (Access Token)

Utilisation

En ligne de commande

# Installation globale
npm install -g @closiqode/mcp-server-unipile

# Exécution
UNIPILE_API_URL=https://votre-dsn.unipile.com/api/v1 UNIPILE_API_KEY=votre-cle-api mcp-server-unipile

Dans un projet Node.js

import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';

const __dirname = dirname(fileURLToPath(import.meta.url));
const mcpPath = join(__dirname, 'node_modules', '@closiqode', 'mcp-server-unipile', 'dist', 'index.js');

const mcp = spawn('node', [mcpPath], {
  env: {
    ...process.env,
    UNIPILE_API_URL: 'https://votre-dsn.unipile.com/api/v1',
    UNIPILE_API_KEY: 'votre-cle-api'
  },
  stdio: ['pipe', 'pipe', 'pipe']
});

// Communication avec le serveur MCP
mcp.stdin.write(JSON.stringify({
  jsonrpc: '2.0',
  id: '1',
  method: 'mcp.listTools',
  params: {}
}) + '\n');

mcp.stdout.on('data', (data) => {
  console.log('Réponse du serveur MCP:', data.toString());
});

Outils disponibles

Le serveur MCP Unipile expose les outils suivants :

Comptes

  • unipile_accounts_list : Liste tous les comptes connectés
  • unipile_account_details : Obtient les détails d'un compte spécifique
  • unipile_account_delete : Supprime un compte
  • unipile_account_resync : Resynchronise les données de messagerie d'un compte
  • unipile_account_solve_checkpoint : Résout un point de contrôle de code
  • unipile_account_resend_checkpoint : Renvoie une notification de point de contrôle
  • unipile_account_restart : Redémarre un compte
  • unipile_account_connect_hosted : Connecte un compte avec authentification hébergée
  • unipile_account_connect_native : Connecte un compte avec authentification native
  • unipile_account_reconnect : Reconnecte un compte existant

Messagerie

  • unipile_chats_list : Liste toutes les conversations
  • unipile_chat_details : Obtient les détails d'une conversation
  • unipile_chat_messages : Liste les messages d'une conversation
  • unipile_send_message : Envoie un message dans une conversation
  • unipile_chat_attendees : Liste les participants d'une conversation
  • unipile_start_chat : Démarre une nouvelle conversation
  • unipile_chat_action : Effectue une action sur une conversation
  • unipile_chat_sync : Synchronise une conversation depuis son début
  • unipile_message_details : Obtient les détails d'un message
  • unipile_forward_message : Transfère un message
  • unipile_messages_list : Liste tous les messages
  • unipile_message_attachment : Récupère une pièce jointe d'un message
  • unipile_react_to_message : Ajoute une réaction à un message
  • unipile_mark_message_read : Marque un message comme lu

Participants

  • unipile_attendees_list : Liste tous les participants
  • unipile_attendee_details : Obtient les détails d'un participant
  • unipile_attendee_picture : Télécharge la photo d'un participant
  • unipile_attendee_chats : Liste les conversations d'un participant
  • unipile_attendee_messages : Liste les messages d'un participant

Emails

  • unipile_emails_list : Liste tous les emails
  • unipile_email_details : Obtient les détails d'un email
  • unipile_send_email : Envoie un email
  • unipile_delete_email : Supprime un email
  • unipile_update_email : Met à jour un email
  • unipile_email_attachment : Récupère une pièce jointe d'un email
  • unipile_email_folders_list : Liste les dossiers d'emails
  • unipile_email_folder_details : Obtient les détails d'un dossier

Calendriers

  • unipile_calendars_list : Liste tous les calendriers
  • unipile_calendar_details : Obtient les détails d'un calendrier
  • unipile_calendar_events : Liste les événements d'un calendrier
  • unipile_event_details : Obtient les détails d'un événement
  • unipile_create_event : Crée un événement
  • unipile_update_event : Modifie un événement
  • unipile_delete_event : Supprime un événement

LinkedIn

  • unipile_linkedin_search : Effectue une recherche sur LinkedIn
  • unipile_linkedin_projects : Récupère les projets de recrutement

Posts

  • unipile_post_details : Obtient les détails d'un post
  • unipile_post_comments : Récupère les commentaires d'un post
  • unipile_add_post_comment : Ajoute un commentaire à un post
  • unipile_react_to_post : Ajoute une réaction à un post

Utilisateurs

  • unipile_invitations_list : Liste les invitations envoyées
  • unipile_send_invitation : Envoie une invitation

Webhooks

  • unipile_webhooks_list : Liste tous les webhooks
  • unipile_create_webhook : Crée un webhook
  • unipile_delete_webhook : Supprime un webhook

Publication sur npm

Pour publier ce package sur npm, suivez ces étapes :

  1. Assurez-vous d'avoir un compte npm et d'être connecté :

    npm login
  2. Vérifiez que votre package est correctement configuré :

    npm pack --dry-run
  3. Publiez le package :

    npm publish

Si vous utilisez un scope (comme @closiqode), assurez-vous d'avoir les droits nécessaires pour publier sous ce scope.

Création d'une image Docker

Vous pouvez également créer une image Docker pour ce serveur MCP :

FROM node:lts-alpine

WORKDIR /app

# Copier les fichiers package et installer les dépendances
COPY package*.json ./
RUN npm install --ignore-scripts

# Copier le reste du code source
COPY . .

# Compiler le projet
RUN npm run build

# Exposer le serveur MCP sur stdio
CMD [ "node", "dist/index.js" ]

Pour construire et exécuter l'image Docker :

# Construire l'image
docker build -t mcp-server-unipile .

# Exécuter le conteneur
docker run -e UNIPILE_API_URL=https://votre-dsn.unipile.com/api/v1 -e UNIPILE_API_KEY=votre-cle-api mcp-server-unipile

Licence

MIT

Exemple d'utilisation avec Claude

Installation sur Claude Desktop

  1. Assurez-vous que Node.js est installé sur votre ordinateur pour que npx fonctionne.
  2. Allez dans : Paramètres > Développeur > Modifier la configuration
  3. Ajoutez ce qui suit à votre fichier claude_desktop_config.json :
{
  "mcpServers": {
    "unipile": {
      "command": "npx",
      "args": [
        "-y",
        "@closiqode/mcp-server-unipile"
      ],
      "env": {
        "UNIPILE_API_URL": "https://votre-dsn.unipile.com/api/v1",
        "UNIPILE_API_KEY": "votre_clé_api_unipile"
      }
    }
  }
}
  1. Redémarrez Claude Desktop et commencez à utiliser l'API Unipile !

Exemple de prompt pour Claude

Je veux que tu m'aides à gérer mes communications avec l'API Unipile.
Voici ma clé API : [VOTRE_CLE_API].

Peux-tu me montrer la liste de tous mes comptes connectés ?

Auteur

ClosiQode (https://closiqode.com)

0.1.10

7 months ago

0.1.9

7 months ago

0.1.8

7 months ago

0.1.7

7 months ago

0.1.6

7 months ago

0.1.5

7 months ago

0.1.4

7 months ago

0.1.3

7 months ago

0.1.2

7 months ago

0.1.1

7 months ago

0.1.0

7 months ago