O inboxMCP é um servidor MCP hospedado que permite que qualquer app de IA compatível com MCP (Claude, ChatGPT, Cursor e outros) use suas contas do LinkedIn, WhatsApp, Telegram e Instagram com segurança. Seu assistente lê e responde suas mensagens em cada uma delas. No LinkedIn, ele também encontra pessoas, visualiza perfis, envia convites e publica posts. Espaçamos cada ação e mantemos cada conta dentro de limites seguros, para que ela não seja confundida com um bot. A seção Limites explica exatamente como.
connect_account e te passa um link; você faz login no seu navegador (sua senha nunca passa pelo chat). Sua primeira conta inicia o teste grátis de 3 dias. Você também pode conectar pelo painel.inbox_status a qualquer momento para ver o que ainda resta hoje em uma conta.Apps com OAuth fazem seu login na nossa página. Os outros usam uma chave de API, criada na página Chaves de API e enviada como Authorization: Bearer <key>. Cada chave pertence a uma única conta conectada.
Adicione o servidor e depois faça a autenticação no Claude Code com /mcp. Prefere usar uma chave? Use o segundo comando.
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>"
Adicione o servidor e depois entre com codex mcp login. Prefere usar uma chave? Adicione o TOML em ~/.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>" }Adicione o servidor em ~/.hermes/config.yaml, entre com hermes mcp login inboxmcp e depois rode /reload-mcp no chat. Prefere usar uma chave? Use o segundo bloco.
mcp_servers:
inboxmcp:
url: "https://inbox-mcp.com/mcp"
auth: oauthmcp_servers:
inboxmcp:
url: "https://inbox-mcp.com/mcp"
headers:
Authorization: "Bearer <API_KEY>"Adicione o servidor e depois entre com openclaw mcp login. Prefere usar uma chave? Coloque o JSON em ~/.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>"
}
}
}
}
}Adicione o servidor à sua configuração MCP (~/.cursor/mcp.json).
{
"mcpServers": {
"inboxmcp": {
"url": "https://inbox-mcp.com/mcp",
"headers": {
"Authorization": "Bearer <API_KEY>"
}
}
}
}Copie isto na configuração dos seus servidores MCP.
{
"mcpServers": {
"inboxmcp": {
"serverUrl": "https://inbox-mcp.com/mcp",
"headers": {
"Authorization": "Bearer <API_KEY>"
}
}
}
}Adicione um servidor HTTP na configuração MCP do seu workspace (.vscode/mcp.json).
{
"servers": {
"inboxmcp": {
"type": "http",
"url": "https://inbox-mcp.com/mcp",
"headers": {
"Authorization": "Bearer <API_KEY>"
}
}
}
}Qualquer cliente compatível com servidores MCP remotos via Streamable HTTP pode se conectar.
{
"mcpServers": {
"inboxmcp": {
"type": "http",
"url": "https://inbox-mcp.com/mcp",
"headers": {
"Authorization": "Bearer <API_KEY>"
}
}
}
}Exatamente o que seu app de IA recebe de tools/list. Ferramentas de escrita enviam ou alteram algo na sua conta: bons assistentes mostram o texto antes de enviar. As ferramentas inbox_* funcionam com todas as plataformas (passe account quando tiver mais de uma conta); as ferramentas linkedin_* são exclusivas do LinkedIn. As ferramentas whatsapp_*, telegram_* e instagram_* aparecem assim que uma conta desse tipo é conectada (talvez seu app precise atualizar a lista de ferramentas). Cada chamada à plataforma conta para o limite indicado.
inbox_list_accountsList connected accountsLeituraThe 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.
inbox_list_chatsList conversationsLeituraConversations 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.
| account | string | Only this account (account_id from inbox_list_accounts); default: every connected account, merged |
| provider | "linkedin" | "whatsapp" | "telegram" | "instagram" | Only this provider's accounts |
| unread | boolean | Only conversations with unread messages |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | next_cursor from a previous call |
| fresh | boolean | Bypass the 1h cache (costs a provider call) (padrão: false) |
inbox_get_messagesRead a conversationLeituraMessages in one conversation, most recent first. 'from' is 'me' (the account owner) or 'them'.
| account | string | account_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 30, 1–100) |
| cursor | string | |
| fresh | boolean | (padrão: false) |
inbox_send_messageSend a messageEscritaReply in an existing conversation, on any connected provider. Plain text. Show the user the exact text before calling this.
| account | string | account_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected. |
| chat_idobrigatório | string | |
| textobrigatório | string | (máx. 8000 caracteres) |
inbox_start_chatStart a new conversationEscritaMessage 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.
| account | string | account_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected. |
| toobrigatório | string | Recipient: person_id, phone number (WhatsApp) or user id |
| textobrigatório | string | (máx. 8000 caracteres) |
inbox_mark_readMark conversation as readEscritaMarks a conversation read (or unread), on any connected provider.
| account | string | account_id from inbox_list_accounts (a listed chat's account_id). Needed only when several accounts are connected. |
| chat_idobrigatório | string | |
| read | boolean | (padrão: true) |
linkedin_list_chatsList LinkedIn conversationsLeituraConversations 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.
| account | string | Only this account (account_id from inbox_list_accounts); default: every connected LinkedIn account, merged |
| unread | boolean | Only conversations with unread messages |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | next_cursor from a previous call |
| fresh | boolean | Bypass the 1h cache (costs a LinkedIn call) (padrão: false) |
linkedin_get_messagesRead a LinkedIn conversationLeituraMessages in one conversation, most recent first. 'from' is 'me' (the account owner) or 'them'.
| account | string | account_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 30, 1–100) |
| cursor | string | |
| fresh | boolean | (padrão: false) |
linkedin_send_messageSend a LinkedIn messageEscritaReply in an existing conversation. Plain text. Show the user the exact text before calling this.
| account | string | account_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected. |
| chat_idobrigatório | string | |
| textobrigatório | string | (máx. 8000 caracteres) |
linkedin_start_chatStart a new LinkedIn conversationEscritaMessage 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.
| account | string | account_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected. |
| person_idobrigatório | string | LinkedIn user id of the recipient |
| textobrigatório | string | (máx. 8000 caracteres) |
| inmail | boolean | (padrão: false) |
| subject | string | InMail subject (máx. 200 caracteres) |
linkedin_mark_readMark LinkedIn conversation as readEscritaMarks a conversation read (or unread).
| account | string | account_id of a LinkedIn account from inbox_list_accounts (a listed chat's account_id). Needed only when several LinkedIn accounts are connected. |
| chat_idobrigatório | string | |
| read | boolean | (padrão: true) |
linkedin_search_peopleSearch people on LinkedInLeituraSearch 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.
| keywords | string | (máx. 200 caracteres) |
| url | string (uri) | A LinkedIn people-search URL |
| network_distance | 1 | 2 | 3[] | 1 = connections, 2 = 2nd degree, 3 = 3rd+ |
| limit | integer | (padrão: 10, 1–25) |
| cursor | string | |
| account | string | account_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 profileLeituraFull profile by person_id or public identifier (the part after linkedin.com/in/). Counts as a profile view on LinkedIn.
| personobrigatório | string | person_id or public identifier |
| fresh | boolean | (padrão: false) |
| account | string | account_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 requestEscritaInvite 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.
| person_idobrigatório | string | |
| note | string | (máx. 300 caracteres) |
| account | string | account_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 requestsLeituraPending invitations you sent or received.
| direction | "sent" | "received" | (padrão: "received") |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | |
| account | string | account_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 postEscritaPublish 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.
| textobrigatório | string | (máx. 3000 caracteres) |
| link | string (uri) | |
| visibility | "anyone" | "relations_only" | (padrão: "anyone") |
| account | string | account_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 messagesEscritaQueue 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.
| itemsobrigatório | object[] | (máx. 50 itens) |
| items[].kindobrigatório | "message" | "invitation" | |
| items[].chat_id | string | for kind=message: existing conversation |
| items[].person_id | string | for kind=invitation, or kind=message to start a new conversation |
| items[].textobrigatório | string | (máx. 3000 caracteres) |
| min_gap_seconds | integer | (padrão: 120, 60–3600) |
| account | string | account_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 jobLeituraProgress and per-item results of a job from linkedin_schedule_outreach.
| job_idobrigatório | string |
whatsapp_list_chatsList WhatsApp chatsLeituraWhatsApp 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.
| account | string | Only this account (account_id from inbox_list_accounts); default: every connected WhatsApp account, merged |
| unread | boolean | Only conversations with unread messages |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | next_cursor from a previous call |
| fresh | boolean | Bypass the 1h cache (costs a WhatsApp call) (padrão: false) |
whatsapp_get_messagesRead a WhatsApp chatLeituraMessages in one WhatsApp chat, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with whatsapp_react.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 30, 1–100) |
| cursor | string | |
| fresh | boolean | (padrão: false) |
whatsapp_send_messageSend a WhatsApp messageEscritaReply 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.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| chat_idobrigatório | string | |
| textobrigatório | string | (máx. 8000 caracteres) |
whatsapp_start_chatStart a new WhatsApp chatEscritaMessage 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.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| phoneobrigatório | string | Phone number with its country code, like +33 6 12 34 56 78 |
| textobrigatório | string | (máx. 8000 caracteres) |
whatsapp_mark_readMark WhatsApp chat as readEscritaMarks a WhatsApp chat read (or unread).
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| chat_idobrigatório | string | |
| read | boolean | (padrão: true) |
whatsapp_reactReact to a WhatsApp messageEscritaAdd an emoji reaction to a message (message_id from whatsapp_get_messages). Any emoji works; a new reaction replaces yours.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| chat_idobrigatório | string | |
| message_idobrigatório | string | |
| reactionobrigatório | string | One emoji, like 👍 (máx. 16 caracteres) |
whatsapp_get_profileGet a WhatsApp profileLeituraA WhatsApp user's profile: name, username, phone when WhatsApp shares it, bio, followers and picture. Counts as a profile view.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| user_idobrigatório | string | The contact's WhatsApp id (a chat's person_id, <digits>@s.whatsapp.net) or phone number with country code |
| fresh | boolean | (padrão: false) |
whatsapp_list_group_membersList WhatsApp group membersLeituraMembers 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.
| account | string | account_id of a WhatsApp account from inbox_list_accounts (a listed chat's account_id). Needed only when several WhatsApp accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 50, 1–100) |
| cursor | string | next_cursor from a previous call |
telegram_list_chatsList Telegram chatsLeituraTelegram 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.
| account | string | Only this account (account_id from inbox_list_accounts); default: every connected Telegram account, merged |
| unread | boolean | Only conversations with unread messages |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | next_cursor from a previous call |
| fresh | boolean | Bypass the 1h cache (costs a Telegram call) (padrão: false) |
telegram_get_messagesRead a Telegram chatLeituraMessages in one Telegram chat, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with telegram_react.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 30, 1–100) |
| cursor | string | |
| fresh | boolean | (padrão: false) |
telegram_send_messageSend a Telegram messageEscritaReply in an existing Telegram chat (private or group). Plain text. Show the user the exact text before calling this.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| chat_idobrigatório | string | |
| textobrigatório | string | (máx. 8000 caracteres) |
telegram_start_chatStart a new Telegram chatEscritaMessage 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.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| user_idobrigatório | string | Telegram user id of the recipient |
| textobrigatório | string | (máx. 8000 caracteres) |
telegram_mark_readMark Telegram chat as readEscritaMarks a Telegram chat read (or unread).
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| chat_idobrigatório | string | |
| read | boolean | (padrão: true) |
telegram_reactReact to a Telegram messageEscritaAdd an emoji reaction to a message (message_id from telegram_get_messages). Telegram accepts only its standard reaction emojis (👍 ❤️ 🔥 🎉 😁 👏 …); others fail.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| chat_idobrigatório | string | |
| message_idobrigatório | string | |
| reactionobrigatório | string | One emoji, like 👍 (máx. 16 caracteres) |
telegram_get_profileGet a Telegram profileLeituraA Telegram user's profile: name, username, phone when Telegram shares it, bio, followers and picture. Counts as a profile view.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| user_idobrigatório | string | Telegram user id (a chat's person_id or a group member's user_id) |
| fresh | boolean | (padrão: false) |
telegram_list_group_membersList Telegram group membersLeituraMembers of a Telegram group chat (chat_id from telegram_list_chats), with their user_id for telegram_get_profile. Group chats only.
| account | string | account_id of a Telegram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Telegram accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 50, 1–100) |
| cursor | string | next_cursor from a previous call |
instagram_list_chatsList Instagram conversationsLeituraInstagram 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.
| account | string | Only this account (account_id from inbox_list_accounts); default: every connected Instagram account, merged |
| unread | boolean | Only conversations with unread messages |
| limit | integer | (padrão: 20, 1–50) |
| cursor | string | next_cursor from a previous call |
| fresh | boolean | Bypass the 1h cache (costs a Instagram call) (padrão: false) |
instagram_get_messagesRead an Instagram conversationLeituraMessages in one Instagram conversation, most recent first. 'from' is 'me' (the account owner) or 'them'. message_id values work with instagram_react.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| chat_idobrigatório | string | |
| limit | integer | (padrão: 30, 1–100) |
| cursor | string | |
| fresh | boolean | (padrão: false) |
instagram_send_messageSend an Instagram messageEscritaReply in an existing Instagram direct conversation. Plain text. Show the user the exact text before calling this.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| chat_idobrigatório | string | |
| textobrigatório | string | (máx. 8000 caracteres) |
instagram_start_chatStart a new Instagram conversationEscritaSend 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.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| user_idobrigatório | string | Instagram user id of the recipient |
| textobrigatório | string | (máx. 8000 caracteres) |
instagram_mark_readMark Instagram conversation as readEscritaMarks an Instagram conversation read (or unread).
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| chat_idobrigatório | string | |
| read | boolean | (padrão: true) |
instagram_reactReact to a Instagram messageEscritaAdd an emoji reaction to a message (message_id from instagram_get_messages). Instagram keeps one reaction per person: a new one replaces yours.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| chat_idobrigatório | string | |
| message_idobrigatório | string | |
| reactionobrigatório | string | One emoji, like 👍 (máx. 16 caracteres) |
instagram_get_profileGet a Instagram profileLeituraA Instagram user's profile: name, username, phone when Instagram shares it, bio, followers and picture. Counts as a profile view.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| user_idobrigatório | string | Instagram user id (a chat's person_id) or username |
| fresh | boolean | (padrão: false) |
instagram_list_postsList Instagram postsLeituraPosts 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.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| user_id | string | Instagram user id or username; default: the account's own posts |
| limit | integer | (padrão: 10, 1–50) |
| cursor | string | next_cursor from a previous call |
instagram_create_postPublish an Instagram postEscritaPublish 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.
| account | string | account_id of a Instagram account from inbox_list_accounts (a listed chat's account_id). Needed only when several Instagram accounts are connected. |
| image_urlobrigatório | string (uri) | https link to the image |
| text | string | Caption (padrão: "", máx. 2200 caracteres) |
linkedin_statusLinkedIn account status and limitsLeituraCall 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.
| account | string | account_id from inbox_list_accounts; default: the first LinkedIn account |
inbox_statusAccount status and limitsLeituraStatus 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.
| account | string | account_id from inbox_list_accounts. Needed only when several accounts are connected. |
connect_accountConnect an accountLeituraGet 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.
| providerobrigatório | "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. (padrão: "auto") |
| account | string | account_id from inbox_list_accounts: the one to reconnect, when several of this network are connected |
linkedin_connect_accountConnect a LinkedIn accountLeituraGet 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.
| 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. (padrão: "auto") |
inboxmcp_billingPlan and billingLeituraThe 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.
searchSearch LinkedIn peopleLeituraSearch LinkedIn people by keywords. Returns ids usable with fetch.
| queryobrigatório | string |
fetchFetch a LinkedIn recordLeituraFetch a full record by id from search: person:<id> or chat:<id>.
| idobrigatório | string |
Os limites seguem as recomendações da Unipile para cada plataforma e evitam que suas contas sejam restringidas. Eles valem por conta conectada e são compartilhados por todos os apps e chaves de API que usam essa conta. A tabela abaixo é a do LinkedIn; WhatsApp, Telegram e Instagram têm os próprios limites.
retry_after_seconds, nunca colocada na fila. Para enviar várias mensagens ou convites, use linkedin_schedule_outreach.fresh: true para forçar uma leitura em tempo real.| Ação | Por dia | Por semana | Espaçamento | Ferramentas |
|---|---|---|---|---|
| Reads (inbox, invitations, group members, posts list) | 3000 | — | 0 s | inbox_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 s | inbox_mark_read, linkedin_mark_read, whatsapp_mark_read, whatsapp_react, telegram_mark_read, telegram_react, instagram_mark_read, instagram_react |
| Profile views | 80 | — | 45–75 s | linkedin_get_profile, whatsapp_get_profile, telegram_get_profile, instagram_get_profile, fetch |
| Searches (pages) | 40 | — | 45–75 s | linkedin_search_people, search |
| Messages | 75 | — | 45–75 s | inbox_send_message, linkedin_send_message, whatsapp_send_message, telegram_send_message, instagram_send_message |
| New conversations | 25 | — | 45–75 s | inbox_start_chat, linkedin_start_chat, whatsapp_start_chat, telegram_start_chat, instagram_start_chat |
| Invitations | 25 · 80 no Premium | 150 · 200 no Premium 15 com nota (contas gratuitas) | 45–75 s | linkedin_send_invitation |
| Posts | 3 | — | 45–75 s | linkedin_create_post, instagram_create_post |
Notas de convite: até 300 caracteres no Premium e 200 em contas gratuitas. As páginas de busca retornam até 25 pessoas.
A Unipile só publica recomendações para o WhatsApp (algumas centenas de mensagens por dia, com 10 a 20 segundos de intervalo, e pouquíssimas conversas novas em uma conta recente). Ficamos bem abaixo disso e aplicamos limites igualmente conservadores ao Telegram e ao Instagram, que não publicam nenhuma. Buscas e convites são exclusivos do LinkedIn.
| Por dia | Telegram | ||
|---|---|---|---|
| Reads (inbox, invitations, group members, posts list) | 3000 | 3000 | 3000 |
| Inbox updates (mark read, reactions) | 500 | 500 | 500 |
| Profile views | 50 | 50 | 50 |
| Messages | 100 | 100 | 50 |
| New conversations | 10 | 10 | 10 |
| Posts | — | — | 3 |
| Espaçamento | 10–20 s | 10–20 s | 10–20 s |
inboxmcp_billing. Contas conectadas sem pagamento são removidas 12 horas depois; você pode conectá-las de novo quando quiser.inboxmcp_billing te dá um link (válido por 30 minutos) para nossa página de cobrança; pagamento, cartão, faturas e cancelamento ficam no Stripe. Cada conta tem direito a um único teste grátis, seja qual for o e-mail.Escolhidas na página de consentimento (OAuth) ou ao criar uma chave de API. Revogue o acesso de um app a qualquer momento em Apps conectados.
| Permissão | Permite | Ferramentas |
|---|---|---|
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 |
As ferramentas nunca lançam exceções. Uma chamada recusada retorna isError: true com uma frase simples que seu assistente pode ler para você, além de um code e, quando vale a pena esperar, retry_after_seconds.
| gap | Cedo demais depois da ação anterior nesta conta (ritmo humano) ou limite deste minuto atingido. Aguarde retry_after_seconds. |
| limit | Limite diário ou semanal atingido, ação indisponível nesta plataforma ou nota de convite longa demais. Renova à meia-noite UTC / na segunda-feira. |
| cooldown | A plataforma limitou a conta; as ações voltam depois do tempo indicado. |
| plan | Teste grátis encerrado ou assinatura inativa. O inboxmcp_billing fornece um link para assinar. |
| account | A conta precisa de um novo login. O connect_account fornece um link para reconectar. |
| no_account | Nenhuma conta conectada ainda. O connect_account fornece um link. |
| permission | Este app ou chave de API não tem permissão para essa ação. Reconecte o app com a permissão ou use outra chave. |
| trial_limit · seat_limit · plan_inactive | O connect_account não pode adicionar uma conta agora (o teste inclui uma conta por app, o limite de contas foi atingido ou não há plano ativo). |
O inboxMCP é um servidor MCP remoto com OAuth 2.1 (PKCE, refresh tokens, registro dinâmico e documentos de metadados de client ID). A maioria dos apps só precisa da URL do servidor.
| POST /mcp | MCP server (Streamable HTTP). Auth: OAuth 2.1 access token or an API key, as Authorization: Bearer … |
| GET /.well-known/oauth-protected-resource | Which authorization server protects /mcp (clients discover OAuth here). |
| GET /.well-known/oauth-authorization-server | OAuth 2.1 metadata: endpoints, scopes, PKCE. |
| GET /authorize | Sign-in and consent page: pick the account and the permissions. |
| POST /oauth/token | Token endpoint (authorization code with PKCE, refresh tokens). |
| POST /oauth/register | Dynamic client registration, for clients without a client ID metadata document. |