@closiqode/mcp-server-unipile v0.1.10
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-unipileConfiguration
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-unipileDans 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ésunipile_account_details: Obtient les détails d'un compte spécifiqueunipile_account_delete: Supprime un compteunipile_account_resync: Resynchronise les données de messagerie d'un compteunipile_account_solve_checkpoint: Résout un point de contrôle de codeunipile_account_resend_checkpoint: Renvoie une notification de point de contrôleunipile_account_restart: Redémarre un compteunipile_account_connect_hosted: Connecte un compte avec authentification hébergéeunipile_account_connect_native: Connecte un compte avec authentification nativeunipile_account_reconnect: Reconnecte un compte existant
Messagerie
unipile_chats_list: Liste toutes les conversationsunipile_chat_details: Obtient les détails d'une conversationunipile_chat_messages: Liste les messages d'une conversationunipile_send_message: Envoie un message dans une conversationunipile_chat_attendees: Liste les participants d'une conversationunipile_start_chat: Démarre une nouvelle conversationunipile_chat_action: Effectue une action sur une conversationunipile_chat_sync: Synchronise une conversation depuis son débutunipile_message_details: Obtient les détails d'un messageunipile_forward_message: Transfère un messageunipile_messages_list: Liste tous les messagesunipile_message_attachment: Récupère une pièce jointe d'un messageunipile_react_to_message: Ajoute une réaction à un messageunipile_mark_message_read: Marque un message comme lu
Participants
unipile_attendees_list: Liste tous les participantsunipile_attendee_details: Obtient les détails d'un participantunipile_attendee_picture: Télécharge la photo d'un participantunipile_attendee_chats: Liste les conversations d'un participantunipile_attendee_messages: Liste les messages d'un participant
Emails
unipile_emails_list: Liste tous les emailsunipile_email_details: Obtient les détails d'un emailunipile_send_email: Envoie un emailunipile_delete_email: Supprime un emailunipile_update_email: Met à jour un emailunipile_email_attachment: Récupère une pièce jointe d'un emailunipile_email_folders_list: Liste les dossiers d'emailsunipile_email_folder_details: Obtient les détails d'un dossier
Calendriers
unipile_calendars_list: Liste tous les calendriersunipile_calendar_details: Obtient les détails d'un calendrierunipile_calendar_events: Liste les événements d'un calendrierunipile_event_details: Obtient les détails d'un événementunipile_create_event: Crée un événementunipile_update_event: Modifie un événementunipile_delete_event: Supprime un événement
unipile_linkedin_search: Effectue une recherche sur LinkedInunipile_linkedin_projects: Récupère les projets de recrutement
Posts
unipile_post_details: Obtient les détails d'un postunipile_post_comments: Récupère les commentaires d'un postunipile_add_post_comment: Ajoute un commentaire à un postunipile_react_to_post: Ajoute une réaction à un post
Utilisateurs
unipile_invitations_list: Liste les invitations envoyéesunipile_send_invitation: Envoie une invitation
Webhooks
unipile_webhooks_list: Liste tous les webhooksunipile_create_webhook: Crée un webhookunipile_delete_webhook: Supprime un webhook
Publication sur npm
Pour publier ce package sur npm, suivez ces étapes :
Assurez-vous d'avoir un compte npm et d'être connecté :
npm loginVérifiez que votre package est correctement configuré :
npm pack --dry-runPubliez 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-unipileLicence
MIT
Exemple d'utilisation avec Claude
Installation sur Claude Desktop
- Assurez-vous que Node.js est installé sur votre ordinateur pour que
npxfonctionne. - Allez dans : Paramètres > Développeur > Modifier la configuration
- 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"
}
}
}
}- 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)