{
  "markdown": "<!-- mcp-name: io.github.TokDar2410621/publiar -->\n\n# publiar-mcp\n\n**Serveur MCP qui écrit des lead magnets LinkedIn et refuse d'inventer.**\n\n[![publiar-mcp MCP server](https://glama.ai/mcp/servers/TokDar2410621/publiar-mcp/badges/card.svg)](https://glama.ai/mcp/servers/TokDar2410621/publiar-mcp)\n\n> **EN.** MCP server for Publiar. Writes LinkedIn lead magnets that refuse to\n> fabricate facts, renders the matching visual, publishes to LinkedIn and tracks\n> what happened. 22 tools, hosted over streamable HTTP with OAuth, or local\n> over stdio. Generated posts are in French. MIT.\n\nDemande un post LinkedIn à un LLM, il te sort « après 7 semaines de tests\nintensifs, +340 % d'engagement ». Tu n'as rien testé pendant 7 semaines et le\nchiffre sort de nulle part. Tu le publies, quelqu'un demande la source, et tu\nn'en as pas.\n\nCe serveur applique six règles bloquantes avant d'écrire une ligne. Pas de\nchiffre sans source déclarée, pas de marque non citée, pas de client anonyme\nfictif, pas de durée de test imaginaire, pas d'années d'expérience sorties du\nchapeau, et pas de ressource promise dont l'URL ne répond pas. Si tu ne l'as\npas dit, ça n'existe pas.\n\n## Deux façons de le brancher\n\n**Hébergé, rien à installer.** Le serveur tourne déjà sur `api.publiar.app`.\nTon client se connecte à l'URL et ouvre une fenêtre de connexion.\n\n```bash\nclaude mcp add --transport http publiar https://api.publiar.app/api/mcp\n```\n\nAucune clé à copier, aucun secret posé dans un fichier de configuration.\nL'endpoint répond 401 en désignant sa métadonnée OAuth, le client s'enregistre\ntout seul, tu autorises dans le navigateur. Révocable depuis ton profil, ce\nqu'une clé collée dans un fichier n'est pas.\n\n**En local, par paquet.** Si tu préfères que le processus tourne chez toi, ou\nsi ton client ne parle pas encore le transport HTTP, la voie stdio reste\nentière.\n\n## Installation\n\n```bash\npip install publiar-mcp\n```\n\n## Configuration\n\nGénère une clé sur [publiar.app/profile](https://publiar.app/profile), section\n« Clés MCP ». Elle n'est affichée qu'une fois.\n\n**Claude Desktop**, `%APPDATA%\\Claude\\claude_desktop_config.json` sur Windows,\n`~/Library/Application Support/Claude/claude_desktop_config.json` sur macOS :\n\n```json\n{\n  \"mcpServers\": {\n    \"publiar\": {\n      \"command\": \"publiar-mcp\",\n      \"env\": {\n        \"PUBLIAR_API_KEY\": \"mcp_pub_xxxxx\",\n        \"PUBLIAR_API_URL\": \"https://api.publiar.app/api\"\n      }\n    }\n  }\n}\n```\n\n**Cursor**, `~/.cursor/mcp.json`, même format. **Claude Code** :\n\n```bash\nclaude mcp add publiar -e PUBLIAR_API_KEY=mcp_pub_xxxxx -- publiar-mcp\n```\n\nRedémarre complètement l'agent pour qu'il charge le serveur.\n\n## Les 22 outils\n\n### Commencer\n\n| Outil | Ce qu'il fait |\n|---|---|\n| `get_brief` | LE point de départ : la méthode complète (règles R1-R8, jury de relecture, hook), l'archétype déduit, les 5 voisins du corpus, ta mémoire et tes ressources, en un appel |\n\n### Écrire et rendre\n\n| Outil | Ce qu'il fait |\n|---|---|\n| `generate_lead_magnet` | Post LinkedIn + `visual_spec`, à partir d'entrées structurées. Refuse si la matière manque. |\n| `generate_pair` | Générateur de paires, motifs couplés et porte de preuve |\n| `render_visual` | Rend un `visual_spec` en PNG 1080×1080, 8 archétypes |\n| `render_gif` | Rend un GIF animé, publiable tel quel sur LinkedIn |\n| `prepare_visual_base` | Fond cinématique généré, pour l'archétype `dark_thumbnail` |\n\n### Publier\n\n| Outil | Ce qu'il fait |\n|---|---|\n| `add_resource` | Héberge la ressource promise (markdown → page publique `/r/slug`), vues comptées |\n| `list_resources` | Tes ressources hébergées et combien de commentateurs ont ouvert le lien |\n| `publish_lead_magnet` | Publie texte + visuel sur LinkedIn. Deux phases : aperçu, puis confirmation. |\n| `update_post` | Réécrit le texte d'un post déjà en ligne. L'URN, la date et l'engagement survivent. |\n| `register_published` | Enregistre un post publié pour le suivi |\n\n### Mesurer et relancer\n\n| Outil | Ce qu'il fait |\n|---|---|\n| `list_published` | Tes lead magnets publiés et leurs statistiques |\n| `get_published_detail` | Détail d'un post, engagements et statut des DM |\n| `set_published_status` | `active`, `paused`, `completed`, `error` |\n| `toggle_published_dm` | Active ou coupe le DM automatique sur un post |\n| `paste_comments` | Analyse des commentaires collés, prépare les DM à envoyer |\n| `mark_engagement_sent` | Marque un DM comme envoyé |\n| `poll_published_now` | Récolte via l'API. Renvoie vide, voir Limitations. |\n\n### Mémoire et corpus\n\n| Outil | Ce qu'il fait |\n|---|---|\n| `add_memory` | Écrit dans ta mémoire. `source` et `source_date` obligatoires. |\n| `list_corpus` | Les 45 lead magnets de référence analysés |\n| `find_similar_corpus` | Recherche sémantique dans le corpus, pondérée par l'engagement |\n| `whoami` | Vérifie l'authentification |\n\n## Les 8 archétypes visuels\n\nLe serveur déduit l'archétype depuis ta matière, tu n'as pas à le choisir.\n\n| Archétype | Déclencheur |\n|---|---|\n| `tool_pairing` | 2 ou 3 outils combinés |\n| `benchmark_table` | comparaison chiffrée de modèles ou de produits |\n| `dark_thumbnail` | annonce de produit ou de lancement |\n| `youtube_thumbnail` | audience grand public, titre fort |\n| `selfie_workspace` | une photo de toi est fournie |\n| `system_workflow_screenshot` | un screenshot de workflow est fourni |\n| `file_tree_diagram` | une arborescence de stack ou de skills |\n| `agent_role_diagram` | une équipe de 3 à 5 agents |\n\nUne preuve réelle uploadée bat toujours une preuve générée. Si tu fournis une\nphoto, l'archétype est `selfie_workspace`, même si tu as aussi nommé deux outils.\n\n## Exemple\n\n> Génère un lead magnet sur Claude + Notion pour automatiser ma prise de notes.\n> J'ai mesuré 3 h gagnées par jour depuis 2 mois. CTA : NOTION.\n\nL'agent appelle `generate_lead_magnet` et te rend le post, les hashtags et le\n`visual_spec`. `render_visual` en fait un PNG, `publish_lead_magnet` l'envoie.\n\n## Variables d'environnement\n\n| Variable | Défaut | Rôle |\n|---|---|---|\n| `PUBLIAR_API_KEY` | — | **Obligatoire.** Clé `mcp_pub_...` créée sur publiar.app/profile |\n| `PUBLIAR_API_URL` | `https://api.publiar.app/api` | Endpoint REST |\n| `PUBLIAR_TIMEOUT` | `60` | Délai HTTP en secondes |\n| `PUBLIAR_LOG_LEVEL` | `INFO` | Niveau de log sur stderr |\n\n## Architecture\n\n```\n   Agent IA           publiar-mcp            API Publiar\n   Claude Desktop  →  ce paquet,        →    Django,\n   Cursor             processus stdio        api.publiar.app\n                          │                       │\n                          │  Bearer mcp_pub_…     │\n                          └───────────────────────┘\n                              HTTPS, JSON et NDJSON\n```\n\nAucune logique métier ici. Ce paquet est un adaptateur de protocole ; tout vit\ndans le backend qui sert déjà publiar.app.\n\n## Sécurité\n\nLes clés sont stockées hachées en SHA-256 côté serveur, la valeur brute n'est\nmontrée qu'à la création. Chaque clé est révocable depuis publiar.app/profile.\n`last_used_at` est suivi pour repérer les clés dormantes. Le préfixe\n`mcp_pub_` reste visible pour identifier une clé sans la révéler.\n\n## Limitations connues\n\n`poll_published_now` renverra toujours vide. Lire les commentaires d'un post\npersonnel exige la permission LinkedIn `r_member_social`, que LinkedIn classe\nen accès privé et n'accorde plus. Utilise `paste_comments` : tu colles les\ncommentaires, le serveur fait le reste.\n\n`generate_lead_magnet` consomme de l'inférence côté serveur.\n\nLes envois d'images pour `selfie_workspace` et `system_workflow_screenshot` ne\npassent pas encore par le MCP. L'agent doit fournir le base64 dans le spec.\n\n## Licence\n\nMIT.\n",
  "bytes": 7631,
  "sha": "8c2f3b244e4138f86778b0bf0c9c12596b44f6f754e517b3201b986cab6a587f",
  "repo_slug": "tokdar2410621/publiar-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_tokdar2410621_publiar_c73f655f/readme"
}