inboxmcpDocs

Documentation inboxMCP

inboxMCP est un serveur MCP hébergé qui permet à n’importe quelle app d’IA compatible MCP (Claude, ChatGPT, Cursor, etc.) d’utiliser vos comptes LinkedIn, WhatsApp, Telegram et Instagram en toute sécurité. Votre assistant lit vos messages et y répond, sur chacun d’eux. Sur LinkedIn, il peut aussi trouver des personnes, consulter des profils, envoyer des invitations et publier des posts. Chaque action est espacée et chaque compte reste dans des limites sûres, pour ne jamais passer pour un bot. La section Limites explique précisément comment.

URL du serveur MCPhttps://inbox-mcp.com/mcp
50outils
3 joursd’essai gratuit, sans carte bancaire
10 $par compte connecté et par mois
45–75 sentre deux actions LinkedIn

Premiers pas

  1. Ajoutez le serveur à votre app d’IA. Collez l’URL ci-dessus comme serveur MCP distant (voir Apps d’IA).
  2. Connectez-vous et choisissez les autorisations. Votre app ouvre notre page de connexion : saisissez votre e-mail, cliquez sur le lien que nous vous envoyons, puis autorisez ce que l’app a le droit de faire. La lecture est activée par défaut ; l’envoi, seulement si vous l’autorisez.
  3. Connectez un compte depuis la conversation. Demandez « connecte mon LinkedIn » (ou WhatsApp, Telegram, Instagram). L’assistant appelle connect_account et vous donne un lien ; vous vous connectez dans votre navigateur (votre mot de passe ne passe jamais par la conversation). Votre premier compte lance votre essai gratuit de 3 jours. Vous pouvez aussi connecter un compte depuis le tableau de bord.
  4. Il n’y a plus qu’à demander. « Qui n’a pas encore eu de réponse de ma part cette semaine ? », « Trouve des product designers à Paris », « Envoie une invitation à Ada avec un petit mot », « Réponds à Sam sur WhatsApp ». Appelez inbox_status à tout moment pour voir ce qu’il reste aujourd’hui sur un compte.

Apps d’IA

Les apps compatibles OAuth vous connectent via notre page. Les autres utilisent une clé API, créée sur la page Clés API et envoyée dans l’en-tête Authorization: Bearer <key>. Une clé est liée à un seul compte connecté.

ClaudeOAuth · recommandé
  1. Ouvrez les paramètres des connecteurs. Dans Claude, allez dans Paramètres → Connecteurs → Ajouter un connecteur personnalisé.
  2. Nommez-le inboxMCP et collez votre URL. Collez l’URL ci-dessus comme URL du serveur MCP distant.
  3. Connectez-vous et choisissez vos autorisations. Connectez-vous, choisissez un compte LinkedIn et validez les actions que Claude pourra effectuer.
Guide Claude ↗
Claude CodeOAuth · recommandé

Ajoutez le serveur, puis authentifiez-vous dans Claude Code avec /mcp. Vous préférez une clé ? Utilisez la deuxième commande.

claude mcp add --transport http inboxmcp \
  https://inbox-mcp.com/mcp
claude mcp add --transport http inboxmcp \
  https://inbox-mcp.com/mcp \
  --header "Authorization: Bearer <API_KEY>"
ChatGPTOAuth
  1. Activez le mode développeur. Dans ChatGPT, ouvrez les Paramètres, puis la section des applications et connecteurs. Dans les paramètres avancés, activez le mode développeur.
  2. Créez un connecteur avec votre URL. Créez un nouveau connecteur, nommez-le inboxMCP et collez l’URL ci-dessus, avec OAuth.
  3. Connectez-vous et choisissez vos autorisations. Connectez-vous, choisissez un compte LinkedIn et validez les actions que ChatGPT pourra effectuer.
CodexOAuth · recommandé

Ajoutez le serveur, puis connectez-vous avec codex mcp login. Vous préférez une clé ? Ajoutez plutôt le TOML à ~/.codex/config.toml.

codex mcp add inboxmcp --url https://inbox-mcp.com/mcp
codex mcp login inboxmcp
[mcp_servers.inboxmcp]
url = "https://inbox-mcp.com/mcp"
http_headers = { "Authorization" = "Bearer <API_KEY>" }
GrokOAuth
  1. Ouvrez les connecteurs. Dans Grok, ouvrez les connecteurs et ajoutez un connecteur personnalisé.
  2. Ajoutez un serveur MCP distant. Collez l’URL ci-dessus comme URL du serveur.
  3. Connectez-vous et choisissez vos autorisations. Connectez-vous, choisissez un compte LinkedIn et validez les actions que Grok pourra effectuer.
Guide Grok ↗
Grok BotOAuth
  1. Demandez à Grok Bot d’ajouter le serveur. Dans la conversation, écrivez : Ajoute un serveur MCP personnalisé appelé inboxMCP avec l’URL ci-dessus. Confirmez ensuite l’ajout.
  2. Autorisez la connexion. Autorisez la connexion depuis la carte qui s’affiche, connectez-vous, choisissez un compte LinkedIn et validez les actions que Grok Bot pourra effectuer.
  3. Utilisez-le dans la conversation. Mentionnez inboxMCP avec @ quand vous voulez que Grok Bot travaille sur LinkedIn.
MuseOAuth
  1. Demandez à Muse de se connecter. Collez votre URL dans les paramètres de connexion MCP, ou demandez à Muse de s’y connecter.
  2. Validez la connexion. Connectez-vous, choisissez un compte LinkedIn et validez les actions que Muse pourra effectuer.
HermesOAuth · recommandé

Ajoutez le serveur à ~/.hermes/config.yaml, connectez-vous avec hermes mcp login inboxmcp, puis lancez /reload-mcp dans la conversation. Vous préférez une clé ? Utilisez plutôt le deuxième bloc.

mcp_servers:
  inboxmcp:
    url: "https://inbox-mcp.com/mcp"
    auth: oauth
mcp_servers:
  inboxmcp:
    url: "https://inbox-mcp.com/mcp"
    headers:
      Authorization: "Bearer <API_KEY>"
Guide Hermes ↗
OpenClawOAuth · recommandé

Ajoutez le serveur, puis connectez-vous avec openclaw mcp login. Vous préférez une clé ? Mettez plutôt le JSON dans ~/.openclaw/openclaw.json.

openclaw mcp set inboxmcp '{"url":"https://inbox-mcp.com/mcp","transport":"streamable-http","auth":"oauth"}'
openclaw mcp login inboxmcp
{
  "mcp": {
    "servers": {
      "inboxmcp": {
        "url": "https://inbox-mcp.com/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer <API_KEY>"
        }
      }
    }
  }
}
Guide OpenClaw ↗
CursorClé API

Ajoutez le serveur à votre configuration MCP (~/.cursor/mcp.json).

{
  "mcpServers": {
    "inboxmcp": {
      "url": "https://inbox-mcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <API_KEY>"
      }
    }
  }
}
WindsurfClé API

Copiez ceci dans la configuration de vos serveurs MCP.

{
  "mcpServers": {
    "inboxmcp": {
      "serverUrl": "https://inbox-mcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <API_KEY>"
      }
    }
  }
}
VS CodeClé API

Ajoutez un serveur HTTP dans la configuration MCP de votre espace de travail (.vscode/mcp.json).

{
  "servers": {
    "inboxmcp": {
      "type": "http",
      "url": "https://inbox-mcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <API_KEY>"
      }
    }
  }
}
MCP personnaliséOAuth ou clé API

Tout client compatible avec les serveurs MCP distants en Streamable HTTP peut se connecter.

  1. Ajoutez un serveur MCP distant. Dans les paramètres MCP de votre client, ajoutez un serveur nommé inboxMCP avec l’URL ci-dessus.
  2. Connectez-vous avec OAuth, ou envoyez une clé API. Les clients compatibles avec l’OAuth MCP trouvent la page de connexion automatiquement. Sinon, envoyez votre clé dans un en-tête Authorization: Bearer, comme dans la configuration ci-dessous, ou collez l’URL suivie de votre clé (…/mcp/<API_KEY>).
{
  "mcpServers": {
    "inboxmcp": {
      "type": "http",
      "url": "https://inbox-mcp.com/mcp",
      "headers": {
        "Authorization": "Bearer <API_KEY>"
      }
    }
  }
}

Outils

Exactement ce que votre app d’IA reçoit de tools/list. Les outils d’écriture envoient ou modifient quelque chose sur votre compte : un bon assistant vous montre le texte avant l’envoi. Les outils inbox_* fonctionnent sur toutes les plateformes (précisez account si vous avez plusieurs comptes) ; les outils linkedin_* sont réservés à LinkedIn. Les outils whatsapp_*, telegram_* et instagram_* apparaissent dès qu’un compte de ce type est connecté (votre app devra peut-être actualiser sa liste d’outils). Chaque appel à la plateforme est décompté de la limite indiquée.

50 outils

Inbox6

inbox_list_accountsList connected accountsLecture

The LinkedIn, WhatsApp, Telegram and Instagram accounts this connection can use, with their account_id, provider, name and status. Pass account_id as `account` to the inbox_* and provider tools (linkedin_*, whatsapp_*, telegram_*, instagram_*) when more than one is connected.

Autorisation : aucuneLimite : aucun appel à la plateforme
inbox_list_chatsList conversationsLecture

Conversations across every connected inbox (LinkedIn, WhatsApp, Telegram, Instagram), merged and sorted most recent first; account or provider narrows it. Use unread=true to triage. Each item has chat_id, its account_id and provider (pass account_id as account to inbox_get_messages / inbox_send_message when several accounts are connected), and person_id for 1-to-1 chats. Accounts that can't be read right now are listed in skipped, with what to do.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringOnly this account (account_id from inbox_list_accounts); default: every connected account, merged
provider"linkedin" | "whatsapp" | "telegram" | "instagram"Only this provider's accounts
unreadbooleanOnly conversations with unread messages
limitinteger (par défaut : 20, 1–50)
cursorstringnext_cursor from a previous call
freshbooleanBypass the 1h cache (costs a provider call) (par défaut : false)
inbox_get_messagesRead a conversationLecture

Messages in one conversation, most recent first. 'from' is 'me' (the account owner) or 'them'.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 30, 1–100)
cursorstring
freshboolean (par défaut : false)
inbox_send_messageSend a messageÉcriture

Reply in an existing conversation, on any connected provider. Plain text. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : Messages
accountstringaccount_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idobligatoirestring
textobligatoirestring (8000 caractères max.)
inbox_start_chatStart a new conversationÉcriture

Message someone you have no conversation with yet. `to`: on LinkedIn the person_id (1st-degree connections; for InMail use linkedin_start_chat), on WhatsApp a phone number with country code, on Telegram the user id, on Instagram the user id. New conversations have a low daily limit, especially on WhatsApp, where cold messages get new accounts banned. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : New conversations
accountstringaccount_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
toobligatoirestringRecipient: person_id, phone number (WhatsApp) or user id
textobligatoirestring (8000 caractères max.)
inbox_mark_readMark conversation as readÉcriture

Marks a conversation read (or unread), on any connected provider.

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idobligatoirestring
readboolean (par défaut : true)

LinkedIn12

linkedin_list_chatsList LinkedIn conversationsLecture

Conversations in the LinkedIn inbox, most recent first. Use unread=true to triage. Returns chat_id values for linkedin_get_messages / linkedin_send_message and person_id for 1-to-1 chats. With several LinkedIn accounts, lists them all merged (each item has its account_id: pass it as account to the other linkedin_* tools); account narrows to one.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringOnly this account (account_id from inbox_list_accounts); default: every connected LinkedIn account, merged
unreadbooleanOnly conversations with unread messages
limitinteger (par défaut : 20, 1–50)
cursorstringnext_cursor from a previous call
freshbooleanBypass the 1h cache (costs a LinkedIn call) (par défaut : false)
linkedin_get_messagesRead a LinkedIn conversationLecture

Messages in one conversation, most recent first. 'from' is 'me' (the account owner) or 'them'.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 30, 1–100)
cursorstring
freshboolean (par défaut : false)
linkedin_send_messageSend a LinkedIn messageÉcriture

Reply in an existing conversation. Plain text. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : Messages
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
chat_idobligatoirestring
textobligatoirestring (8000 caractères max.)
linkedin_start_chatStart a new LinkedIn conversationÉcriture

Message someone you are connected with (1st degree). For others, set inmail=true (needs a LinkedIn premium plan with InMail credits). Get the person_id from linkedin_search_people or linkedin_get_profile.

Autorisation : Send messagesLimite : New conversations
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
person_idobligatoirestringLinkedIn user id of the recipient
textobligatoirestring (8000 caractères max.)
inmailboolean (par défaut : false)
subjectstringInMail subject (200 caractères max.)
linkedin_mark_readMark LinkedIn conversation as readÉcriture

Marks a conversation read (or unread).

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
chat_idobligatoirestring
readboolean (par défaut : true)
linkedin_search_peopleSearch people on LinkedInLecture

Search LinkedIn members by keywords, or paste a LinkedIn people-search URL copied from the browser (keeps all its filters). Each page costs one LinkedIn search. Returns person_id values for other tools.

Autorisation : SearchLimite : Searches (pages)
keywordsstring (200 caractères max.)
urlstring (uri)A LinkedIn people-search URL
network_distance1 | 2 | 3[]1 = connections, 2 = 2nd degree, 3 = 3rd+
limitinteger (par défaut : 10, 1–25)
cursorstring
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_get_profileGet a LinkedIn profileLecture

Full profile by person_id or public identifier (the part after linkedin.com/in/). Counts as a profile view on LinkedIn.

Autorisation : ProfilesLimite : Profile views
personobligatoirestringperson_id or public identifier
freshboolean (par défaut : false)
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_send_invitationSend a connection requestÉcriture

Invite someone to connect, optionally with a note (max 300 characters, 200 on free LinkedIn accounts, which can add a note to about 15 invitations a week). Limited per day and per week, and LinkedIn actions are spaced about a minute apart; check linkedin_status first.

Autorisation : Send messagesLimite : Invitations
person_idobligatoirestring
notestring (300 caractères max.)
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_list_invitationsList connection requestsLecture

Pending invitations you sent or received.

Autorisation : ProfilesLimite : Reads (inbox, invitations, group members, posts list)
direction"sent" | "received" (par défaut : "received")
limitinteger (par défaut : 20, 1–50)
cursorstring
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_create_postPublish a LinkedIn postÉcriture

Publish a text post on the account's feed. A link can be appended; LinkedIn builds the preview from the first URL in the text. Public and irreversible from here: confirm the final text with the user first.

Autorisation : Send messagesLimite : Posts
textobligatoirestring (3000 caractères max.)
linkstring (uri)
visibility"anyone" | "relations_only" (par défaut : "anyone")
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_schedule_outreachSchedule paced LinkedIn messagesÉcriture

Queue up to 50 messages or invitations. They are sent one by one with random gaps of a minute or more, respecting daily limits. An invitation's text is its note (max 300 characters, 200 on free LinkedIn accounts). Returns a job_id; poll with linkedin_get_job. Confirm the list with the user first.

Autorisation : Send messagesLimite : Chaque élément a sa propre limite
itemsobligatoireobject[] (50 éléments max.)
items[].kindobligatoire"message" | "invitation"
items[].chat_idstringfor kind=message: existing conversation
items[].person_idstringfor kind=invitation, or kind=message to start a new conversation
items[].textobligatoirestring (3000 caractères max.)
min_gap_secondsinteger (par défaut : 120, 60–3600)
accountstringaccount_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected.
linkedin_get_jobCheck an outreach jobLecture

Progress and per-item results of a job from linkedin_schedule_outreach.

Autorisation : aucuneLimite : aucun appel à la plateforme
job_idobligatoirestring

WhatsApp8

whatsapp_list_chatsList WhatsApp chatsLecture

WhatsApp chats (1-to-1 and groups), most recent first. Use unread=true to triage. Returns chat_id values for whatsapp_get_messages / whatsapp_send_message, and person_id (the contact's WhatsApp id, <digits>@s.whatsapp.net) for 1-to-1 chats; for a group's members use whatsapp_list_group_members. With several WhatsApp accounts, lists them all merged (each item has its account_id: pass it as account to the other whatsapp_* tools); account narrows to one.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringOnly this account (account_id from inbox_list_accounts); default: every connected WhatsApp account, merged
unreadbooleanOnly conversations with unread messages
limitinteger (par défaut : 20, 1–50)
cursorstringnext_cursor from a previous call
freshbooleanBypass the 1h cache (costs a WhatsApp call) (par défaut : false)
whatsapp_get_messagesRead a WhatsApp chatLecture

Messages in one WhatsApp chat, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with whatsapp_react.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 30, 1–100)
cursorstring
freshboolean (par défaut : false)
whatsapp_send_messageSend a WhatsApp messageÉcriture

Reply in an existing WhatsApp chat (1-to-1 or group). Plain text. WhatsApp actions are spaced 10–20 s apart. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : Messages
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
chat_idobligatoirestring
textobligatoirestring (8000 caractères max.)
whatsapp_start_chatStart a new WhatsApp chatÉcriture

Message a phone number you have no WhatsApp chat with yet. phone: international format with its country code, like +33 6 12 34 56 78. WhatsApp bans accounts that send cold messages (new accounts after 2–3), so only message people who expect it; at most 10 new chats a day. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : New conversations
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
phoneobligatoirestringPhone number with its country code, like +33 6 12 34 56 78
textobligatoirestring (8000 caractères max.)
whatsapp_mark_readMark WhatsApp chat as readÉcriture

Marks a WhatsApp chat read (or unread).

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
chat_idobligatoirestring
readboolean (par défaut : true)
whatsapp_reactReact to a WhatsApp messageÉcriture

Add an emoji reaction to a message (message_id from whatsapp_get_messages). Any emoji works; a new reaction replaces yours.

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
chat_idobligatoirestring
message_idobligatoirestring
reactionobligatoirestringOne emoji, like 👍 (16 caractères max.)
whatsapp_get_profileGet a WhatsApp profileLecture

A WhatsApp user's profile: name, username, phone when WhatsApp shares it, bio, followers and picture. Counts as a profile view.

Autorisation : ProfilesLimite : Profile views
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
user_idobligatoirestringThe contact's WhatsApp id (a chat's person_id, <digits>@s.whatsapp.net) or phone number with country code
freshboolean (par défaut : false)
whatsapp_list_group_membersList WhatsApp group membersLecture

Members of a WhatsApp group chat (chat_id from whatsapp_list_chats), with their user_id for whatsapp_get_profile and their phone number. Group chats only.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 50, 1–100)
cursorstringnext_cursor from a previous call

Telegram8

telegram_list_chatsList Telegram chatsLecture

Telegram chats (private chats and groups), most recent first. Use unread=true to triage. Returns chat_id values for telegram_get_messages / telegram_send_message, and person_id (the contact's Telegram user id) for private chats; for a group's members use telegram_list_group_members. With several Telegram accounts, lists them all merged (each item has its account_id: pass it as account to the other telegram_* tools); account narrows to one.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringOnly this account (account_id from inbox_list_accounts); default: every connected Telegram account, merged
unreadbooleanOnly conversations with unread messages
limitinteger (par défaut : 20, 1–50)
cursorstringnext_cursor from a previous call
freshbooleanBypass the 1h cache (costs a Telegram call) (par défaut : false)
telegram_get_messagesRead a Telegram chatLecture

Messages in one Telegram chat, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with telegram_react.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 30, 1–100)
cursorstring
freshboolean (par défaut : false)
telegram_send_messageSend a Telegram messageÉcriture

Reply in an existing Telegram chat (private or group). Plain text. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : Messages
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
chat_idobligatoirestring
textobligatoirestring (8000 caractères max.)
telegram_start_chatStart a new Telegram chatÉcriture

Message a Telegram user you have no chat with yet, by numeric user id (a chat's person_id, or a member from telegram_list_group_members). Telegram restricts accounts that message many strangers, so only message people who expect it; at most 10 new chats a day. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : New conversations
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
user_idobligatoirestringTelegram user id of the recipient
textobligatoirestring (8000 caractères max.)
telegram_mark_readMark Telegram chat as readÉcriture

Marks a Telegram chat read (or unread).

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
chat_idobligatoirestring
readboolean (par défaut : true)
telegram_reactReact to a Telegram messageÉcriture

Add an emoji reaction to a message (message_id from telegram_get_messages). Telegram accepts only its standard reaction emojis (👍 ❤️ 🔥 🎉 😁 👏 …); others fail.

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
chat_idobligatoirestring
message_idobligatoirestring
reactionobligatoirestringOne emoji, like 👍 (16 caractères max.)
telegram_get_profileGet a Telegram profileLecture

A Telegram user's profile: name, username, phone when Telegram shares it, bio, followers and picture. Counts as a profile view.

Autorisation : ProfilesLimite : Profile views
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
user_idobligatoirestringTelegram user id (a chat's person_id or a group member's user_id)
freshboolean (par défaut : false)
telegram_list_group_membersList Telegram group membersLecture

Members of a Telegram group chat (chat_id from telegram_list_chats), with their user_id for telegram_get_profile. Group chats only.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 50, 1–100)
cursorstringnext_cursor from a previous call

Instagram9

instagram_list_chatsList Instagram conversationsLecture

Instagram direct messages, most recent first. Use unread=true to triage. Returns chat_id values for instagram_get_messages / instagram_send_message, and person_id (the contact's Instagram user id) for 1-to-1 chats. With several Instagram accounts, lists them all merged (each item has its account_id: pass it as account to the other instagram_* tools); account narrows to one.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringOnly this account (account_id from inbox_list_accounts); default: every connected Instagram account, merged
unreadbooleanOnly conversations with unread messages
limitinteger (par défaut : 20, 1–50)
cursorstringnext_cursor from a previous call
freshbooleanBypass the 1h cache (costs a Instagram call) (par défaut : false)
instagram_get_messagesRead an Instagram conversationLecture

Messages in one Instagram conversation, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with instagram_react.

Autorisation : Read messagesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
chat_idobligatoirestring
limitinteger (par défaut : 30, 1–100)
cursorstring
freshboolean (par défaut : false)
instagram_send_messageSend an Instagram messageÉcriture

Reply in an existing Instagram direct conversation. Plain text. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : Messages
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
chat_idobligatoirestring
textobligatoirestring (8000 caractères max.)
instagram_start_chatStart a new Instagram conversationÉcriture

Send a direct message to an Instagram user you have no conversation with yet, by user id (a chat's person_id, or from instagram_get_profile). Messages to people who don't follow the account land in their message requests, and Instagram restricts accounts that message many strangers: only message people who expect it; at most 10 new conversations a day. Show the user the exact text before calling this.

Autorisation : Send messagesLimite : New conversations
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
user_idobligatoirestringInstagram user id of the recipient
textobligatoirestring (8000 caractères max.)
instagram_mark_readMark Instagram conversation as readÉcriture

Marks an Instagram conversation read (or unread).

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
chat_idobligatoirestring
readboolean (par défaut : true)
instagram_reactReact to a Instagram messageÉcriture

Add an emoji reaction to a message (message_id from instagram_get_messages). Instagram keeps one reaction per person: a new one replaces yours.

Autorisation : Send messagesLimite : Inbox updates (mark read, reactions)
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
chat_idobligatoirestring
message_idobligatoirestring
reactionobligatoirestringOne emoji, like 👍 (16 caractères max.)
instagram_get_profileGet a Instagram profileLecture

A Instagram user's profile: name, username, phone when Instagram shares it, bio, followers and picture. Counts as a profile view.

Autorisation : ProfilesLimite : Profile views
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
user_idobligatoirestringInstagram user id (a chat's person_id) or username
freshboolean (par défaut : false)
instagram_list_postsList Instagram postsLecture

Posts of an Instagram user, most recent first: the account's own by default, or someone else's with user_id. Returns caption, link, date, likes and comments.

Autorisation : ProfilesLimite : Reads (inbox, invitations, group members, posts list)
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
user_idstringInstagram user id or username; default: the account's own posts
limitinteger (par défaut : 10, 1–50)
cursorstringnext_cursor from a previous call
instagram_create_postPublish an Instagram postÉcriture

Publish a photo on the account's Instagram feed: image_url is an https link to a JPEG, PNG or WebP (at most 8 MB), text is the caption. Public and irreversible from here: confirm the image and the caption with the user first.

Autorisation : Send messagesLimite : Posts
accountstringaccount_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected.
image_urlobligatoirestring (uri)https link to the image
textstringCaption (par défaut : "", 2200 caractères max.)

Account & plan5

linkedin_statusLinkedIn account status and limitsLecture

Call before planning several LinkedIn actions. Says whether the account can act now (blocked_reason), how many actions are left today (profile_views → linkedin_get_profile, searches → linkedin_search_people, messages → linkedin_send_message, new_conversations → linkedin_start_chat, invitations → linkedin_send_invitation, posts → linkedin_create_post; invitations also have a weekly limit), and ready_in_seconds for each: the wait before that action can run. Reading the inbox has a high limit and is not listed. No account or a disconnected one: use linkedin_connect_account. Plan or seats: use inboxmcp_billing. For WhatsApp, Telegram and Instagram accounts, use inbox_status.

Autorisation : aucuneLimite : aucun appel à la plateforme
accountstringaccount_id from inbox_list_accounts; default: the first LinkedIn account
inbox_statusAccount status and limitsLecture

Status and limits of one connected account, any provider (LinkedIn, WhatsApp, Telegram, Instagram). Call before planning several actions. Says whether the account can act now (blocked_reason), how many actions are left today (messages → *_send_message, new_conversations → *_start_chat, profile_views → *_get_profile, posts → linkedin_create_post / instagram_create_post; on LinkedIn also searches and invitations), and ready_in_seconds for each. Reading has a high limit and is not listed. No account or a disconnected one: use connect_account. Plan or seats: use inboxmcp_billing.

Autorisation : aucuneLimite : aucun appel à la plateforme
accountstringaccount_id from inbox_list_accounts. Needed only when several accounts are connected.
connect_accountConnect an accountLecture

Get a link for the user to connect a LinkedIn, WhatsApp, Telegram or Instagram account, or to reconnect one that was logged out. Before giving the link, tell the user what the result says about the free trial or price. They log in on our connect page in their browser (LinkedIn and Instagram: their login; WhatsApp and Telegram: scan a QR code). Never ask for passwords or codes in the chat. The link works for 30 minutes. Afterwards, call inbox_list_accounts to confirm.

Autorisation : aucuneLimite : aucun appel à la plateforme
providerobligatoire"linkedin" | "whatsapp" | "telegram" | "instagram"Which network to connect
mode"auto" | "new" | "reconnect"auto: reconnect the current account if it needs it, otherwise add one if none is connected. new: add another account. reconnect: log the current account back in. (par défaut : "auto")
accountstringaccount_id from inbox_list_accounts: the one to reconnect, when several of this network are connected
linkedin_connect_accountConnect a LinkedIn accountLecture

Get a link for the user to connect a LinkedIn account, or to reconnect one LinkedIn logged out. Before giving the link, tell the user what the result says about the free trial or price. They log in to LinkedIn in their browser on our connect page (never ask for their LinkedIn password or codes in the chat). The link works for 30 minutes. Afterwards, call linkedin_status to confirm.

Autorisation : aucuneLimite : aucun appel à la plateforme
mode"auto" | "new" | "reconnect"auto: reconnect the current account if it needs it, otherwise add one if none is connected. new: add another account. reconnect: log the current account back in. (par défaut : "auto")
inboxmcp_billingPlan and billingLecture

The user's inbox MCP plan: free trial (3 days, starts when the first account is connected) or subscription ($10/month per connected account, any provider), with a link to our billing page to subscribe, update their card, get invoices, or cancel (payment happens on Stripe, in their browser). The link works for 30 minutes. Use it when the tools say the trial or subscription ended.

Autorisation : aucuneLimite : aucun appel à la plateforme

ChatGPT deep research2

fetchFetch a LinkedIn recordLecture

Fetch a full record by id from search: person:<id> or chat:<id>.

Autorisation : ProfilesLimite : Profile views
idobligatoirestring

Limites

Les limites suivent les recommandations d’Unipile pour chaque plateforme et évitent que vos comptes soient restreints. Elles s’appliquent par compte connecté et sont partagées entre toutes les apps et clés API qui l’utilisent. Le tableau ci-dessous concerne LinkedIn ; WhatsApp, Telegram et Instagram ont les leurs.

  • Rythme humain. Sur LinkedIn, les visites de profil, recherches, messages, nouvelles conversations, invitations et publications sont espacés au hasard de 45 à 75 secondes (10–20 s sur les autres plateformes), tous outils confondus. Un appel trop rapproché est refusé avec retry_after_seconds, jamais mis en file d’attente. Pour envoyer plusieurs messages ou invitations, utilisez linkedin_schedule_outreach.
  • Par minute. Au plus 10 appels par minute et par compte au total, lectures non comprises, en plus du plafond par minute propre à chaque action.
  • Remise à zéro. Les limites quotidiennes repartent à zéro à minuit UTC ; les limites hebdomadaires, le lundi à 0 h UTC.
  • Si la plateforme freine. Dès que la plateforme signale trop de requêtes, le compte se met en pause pendant au moins 5 minutes (30 si c’est la plateforme elle-même qui l’a demandé). Pendant la pause, les appels sont refusés avec le temps restant.
  • Les lectures en cache sont gratuites. Les lectures servies depuis le cache ne comptent pas. Passez fresh: true pour forcer une lecture en direct.
  • LinkedIn gratuit ou Premium. Les limites d’invitations dépendent du type de compte LinkedIn, détecté à la connexion.
ActionPar jourPar semaineEspacementOutils
Reads (inbox, invitations, group members, posts list)3000—0 sinbox_list_chats, inbox_get_messages, linkedin_list_chats, linkedin_get_messages, linkedin_list_invitations, whatsapp_list_chats, whatsapp_get_messages, whatsapp_list_group_members, telegram_list_chats, telegram_get_messages, telegram_list_group_members, instagram_list_chats, instagram_get_messages, instagram_list_posts
Inbox updates (mark read, reactions)500—1 sinbox_mark_read, linkedin_mark_read, whatsapp_mark_read, whatsapp_react, telegram_mark_read, telegram_react, instagram_mark_read, instagram_react
Profile views80—45–75 slinkedin_get_profile, whatsapp_get_profile, telegram_get_profile, instagram_get_profile, fetch
Searches (pages)40—45–75 slinkedin_search_people, search
Messages75—45–75 sinbox_send_message, linkedin_send_message, whatsapp_send_message, telegram_send_message, instagram_send_message
New conversations25—45–75 sinbox_start_chat, linkedin_start_chat, whatsapp_start_chat, telegram_start_chat, instagram_start_chat
Invitations25 · 80 en Premium150 · 200 en Premium
15 avec note (comptes gratuits)
45–75 slinkedin_send_invitation
Posts3—45–75 slinkedin_create_post, instagram_create_post

Notes d’invitation : jusqu’à 300 caractères en Premium, 200 sur les comptes gratuits. Les pages de recherche renvoient jusqu’à 25 personnes.

WhatsApp, Telegram et Instagram

Unipile ne publie de recommandations que pour WhatsApp (plusieurs centaines de messages par jour, espacés de 10 à 20 secondes, et très peu de nouvelles conversations sur un compte récent). Nous restons bien en dessous, et appliquons des limites tout aussi prudentes à Telegram et Instagram, qui n’en publient aucune. Les recherches et les invitations sont propres à LinkedIn.

Par jourWhatsAppTelegramInstagram
Reads (inbox, invitations, group members, posts list)300030003000
Inbox updates (mark read, reactions)500500500
Profile views505050
Messages10010050
New conversations101010
Posts——3
Espacement10–20 s10–20 s10–20 s

Essai gratuit et tarifs

  • Essai gratuit de 3 jours avec les limites complètes et 1 compte connecté par app (un LinkedIn, un WhatsApp…). Il démarre quand vous connectez votre premier compte. Sans carte bancaire, et rien n’est prélevé automatiquement.
  • 10 $ par mois et par compte connecté. Un prix unique pour toutes les plateformes, sans paliers. Ajouter ou retirer un compte ajuste le montant, au prorata. Jusqu’à 50 comptes.
  • Rappels. Nous vous prévenons par e-mail la veille de la fin de l’essai, puis une fois qu’il est terminé.
  • Après l’essai, les outils sont en pause jusqu’à votre abonnement ; ils expliquent pourquoi et renvoient vers inboxmcp_billing. Les comptes connectés non payés sont retirés 12 heures plus tard ; vous pouvez les reconnecter à tout moment.
  • Payez depuis la conversation ou le tableau de bord. inboxmcp_billing vous donne un lien (valable 30 minutes) vers notre page de facturation ; paiement, carte, factures et résiliation se font sur Stripe. Chaque compte n’a droit qu’à un seul essai gratuit, quelle que soit l’adresse e-mail.
  • Échec de paiement ? Tout continue de fonctionner pendant que Stripe retente le prélèvement ; mettez à jour votre carte pour éviter une interruption.

Autorisations

Elles se choisissent sur la page de consentement (OAuth) ou à la création d’une clé API. Révoquez une app à tout moment depuis Apps connectées.

AutorisationPermetOutils
Read your messages
linkedin:messages
View conversations and messages in your connected accounts.inbox_list_chats, inbox_get_messages, linkedin_list_chats, linkedin_get_messages, whatsapp_list_chats, whatsapp_get_messages, whatsapp_list_group_members, telegram_list_chats, telegram_get_messages, telegram_list_group_members, instagram_list_chats, instagram_get_messages
View profiles
linkedin:profiles
Read the profiles and posts of people on your connected accounts.linkedin_get_profile, linkedin_list_invitations, whatsapp_get_profile, telegram_get_profile, instagram_get_profile, instagram_list_posts, fetch
Search LinkedIn
linkedin:search
Find people and explore your LinkedIn network.linkedin_search_people, search
Send messages & invitations
linkedin:send
Send messages from your connected accounts, and LinkedIn invitations.inbox_send_message, inbox_start_chat, inbox_mark_read, linkedin_send_message, linkedin_start_chat, linkedin_mark_read, linkedin_send_invitation, linkedin_create_post, linkedin_schedule_outreach, whatsapp_send_message, whatsapp_start_chat, whatsapp_mark_read, whatsapp_react, telegram_send_message, telegram_start_chat, telegram_mark_read, telegram_react, instagram_send_message, instagram_start_chat, instagram_mark_read, instagram_react, instagram_create_post

Erreurs

Les outils ne lèvent jamais d’exception. Un appel refusé renvoie isError: true avec une phrase simple que votre assistant peut vous lire, plus un code et, quand il suffit d’attendre, retry_after_seconds.

gapTrop tôt après l’action précédente sur ce compte (rythme humain), ou plafond de la minute atteint. Attendez retry_after_seconds.
limitLimite quotidienne ou hebdomadaire atteinte, action indisponible sur cette plateforme, ou note d’invitation trop longue. Remise à zéro à minuit UTC / le lundi.
cooldownLa plateforme a limité le compte ; les actions reprennent après le délai indiqué.
planEssai gratuit terminé ou abonnement inactif. inboxmcp_billing fournit un lien pour s’abonner.
accountLe compte doit être reconnecté. connect_account fournit un lien de reconnexion.
no_accountAucun compte connecté pour l’instant. connect_account fournit un lien.
permissionCette app ou clé API n’a pas le droit d’effectuer cette action. Reconnectez l’app avec l’autorisation nécessaire, ou utilisez une autre clé.
trial_limit · seat_limit · plan_inactiveconnect_account ne peut pas ajouter de compte pour le moment (l’essai inclut un compte par app, nombre maximal de comptes atteint, ou aucune offre active).

Endpoints et authentification

inboxMCP est un serveur MCP distant avec OAuth 2.1 (PKCE, jetons d’actualisation, enregistrement dynamique et documents de métadonnées d’ID client). La plupart des apps n’ont besoin que de l’URL du serveur.

POST /mcpMCP server (Streamable HTTP). Auth: OAuth 2.1 access token or an API key, as Authorization: Bearer …
GET /.well-known/oauth-protected-resourceWhich authorization server protects /mcp (clients discover OAuth here).
GET /.well-known/oauth-authorization-serverOAuth 2.1 metadata: endpoints, scopes, PKCE.
GET /authorizeSign-in and consent page: pick the account and the permissions.
POST /oauth/tokenToken endpoint (authorization code with PKCE, refresh tokens).
POST /oauth/registerDynamic client registration, for clients without a client ID metadata document.