Une URL donne à Claude, ChatGPT, Cursor, Codex ou à votre propre agent 76 outils pour publier, programmer, créer et analyser sur 13 réseaux.
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}
Votre IA dit bonjour et indique la version de MCP qu'elle parle.
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","serverInfo":{"name":"robinreach","title":"RobinReach"},"capabilities":{"tools":{}},"instructions":"RobinReach is a social media scheduling tool..."}}
RobinReach accepte la version et envoie des notes sur l'utilisation de ses outils, ainsi que les réglages de voix de votre marque.
{"jsonrpc":"2.0","id":2,"method":"tools/list"}
Elle demande ce qu'elle peut faire.
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"account_status"},{"name":"posts_validate"},{"name":"posts_create"}, … 73 more]}}
Elle reçoit 76 outils, chacun avec une description et les informations dont il a besoin.
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"posts_validate","arguments":{"social_profile_ids":[41,57],"content":"Speckled mugs are back on Friday."}}}
Avant d'enregistrer quoi que ce soit, elle vérifie la publication pour Instagram et LinkedIn.
{"status":"success","message":"All validation checks passed. Ready to create."}
RobinReach confirme que la publication respecte les règles de chaque réseau.
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"posts_create","arguments":{"social_profile_ids":[41,57],"content":"Speckled mugs are back on Friday.","post_status":"scheduled","publish_time":"2026-10-16T09:00","timezone":"America/New_York"}}}
Elle programme la publication pour vendredi à 9 h, heure de New York.
{"success":true,"post_id":18342,"status":"scheduled","platforms":["instagram","linkedin"],"message":"Post scheduled for October 16 at 9:00 AM EDT."}
La publication est dans le calendrier des deux réseaux.
Un vrai échange avec des identifiants d'exemple. Chaque message est un POST vers la même URL.
Un endpoint, une clé, du JSON-RPC tout simple. Si votre outil parle MCP en HTTP, il peut parler à RobinReach.
https://robinreach.com/mcp/v1/messages
POST /mcp/v1/messages sur robinreach.com. Chaque message JSON-RPC va vers cette seule URL.Authorization: Bearer, ou ajoutez ?api_key= à l'URL pour les clients qui n'acceptent qu'une URL.GET renvoie 405 car le serveur n'envoie jamais rien de lui-même, et OPTIONS répond aux requêtes CORS de pré-vérification de toute origine.initialize, ping, tools/list et tools/call. Les notifications reçoivent 202 Accepted.brand_id). Une clé de marque n'atteint qu'une marque et n'a pas besoin de brand_id.initialize renvoie des notes d'utilisation pour le modèle, ainsi que le ton, la mission, la langue et le fuseau horaire de la marque, pour que les publications sonnent juste dès le premier appel.Cette liste est générée à partir du même registre que celui avec lequel le serveur répond à tools/list, elle est donc toujours à jour.
76 outils affichés sur 76
posts_validate
Publications et programmation
Validate post content/platform_options before creating, updating, or publishing. Always call this first. Fix any returned errors and re-validate before posts_create / posts_update / posts_publish_now. Pass post_id when validating changes to an existing post so validation checks its already-attached media (e.g. an Instagram post with no new media_urls but existing images) instead of assuming no media is attached.
social_profile_ids
8 paramètres facultatifs
posts_create
Publications et programmation
Create and schedule (or save as draft) a post across one or more social profiles. Call posts_validate first.
social_profile_ids
12 paramètres facultatifs
posts_update
Publications et programmation
Update an existing, unpublished post. Call posts_validate first with the merged content/options. media_urls is APPEND-ONLY by default; pass replace_media: true to replace existing attachments instead of adding to them. A library url whose file is already on the post is not added again (it is listed in media_already_attached). labels is also APPEND-ONLY by default; pass replace_labels: true to replace the post's entire label set instead of merging into it.
post_id
12 paramètres facultatifs
posts_publish_now
Publications et programmation
Confirmer d'abord
Publish a draft/scheduled/approved post immediately. Always show the content preview and get explicit user confirmation first.
post_id
1 paramètre facultatif
posts_delete
Publications et programmation
Confirmer d'abord
Permanently delete a post. Always confirm with the user first.
post_id
1 paramètre facultatif
posts_delete_from_platform
Publications et programmation
Confirmer d'abord
Delete a published post from specific social platforms (same as the dashboard's Delete from Platform). Supported: Facebook, LinkedIn, X, Threads, Telegram, Bluesky, Pinterest, YouTube, WordPress, Mastodon. Always confirm with the user first.
post_idsocial_profile_ids
1 paramètre facultatif
posts_reschedule
Publications et programmation
Change the publish_time of a scheduled post.
post_idnew_publish_time
1 paramètre facultatif
posts_list
Publications et programmation
List posts for a brand, optionally filtered by status and/or labels (matches ANY given label). Paginated, 10 per page.
posts_get_status
Publications et programmation
Get per-platform publish status for a post, with suggested fixes for any failures.
post_id
1 paramètre facultatif
posts_bulk_create
Publications et programmation
Create up to 20 posts in one call. Each post is validated independently; partial failures are reported per-index.
posts
1 paramètre facultatif
media_search
Images et médias
Search the media library by filename, optionally scoped to a folder. Call media_folders first to confirm the exact folder name. Returns metadata and a URL only, NOT the image content. Call media_view before writing a caption for, or describing, any specific result; never guess content from the filename.
media_view
Images et médias
The only way to actually see image content (returns downscaled base64, up to 10 at once). ALWAYS call this before writing a caption for, or describing, a specific image; never guess from a filename like 'big.jpg'.
media_folders
Images et médias
List media library folders with attachment counts.
media_search_unsplash
Images et médias
Search Unsplash for stock photos. Credit the photographer when used.
query
media_generate_ai_image
Images et médias
Generate an AI image from a text prompt and save it to the media library. Optionally choose model: "gpt_image" (default) or "nano_banana_pro", and size (defaults to 1024x1024). Pass post_id to attach it directly to a post (add replace_media: true to replace that post's existing media instead of appending). Check quota first; fall back to media_search_unsplash if low.
image_prompt
5 paramètres facultatifs
media_upload
Images et médias
Download a public file_url into the media library. Returns job_id; poll media_upload_status a few seconds later to get the final url before using it in media_urls.
file_url
3 paramètres facultatifs
media_upload_status
Images et médias
Check the status of a media_upload job_id.
job_id
1 paramètre facultatif
media_direct_upload_create
Images et médias
Start a direct upload for a local file with no public URL yet (screenshots, videos). Returns a signed upload_url; PUT the raw file bytes there immediately (it expires in minutes), then call media_direct_upload_finalize.
content_typebyte_sizechecksum
2 paramètres facultatifs
media_direct_upload_finalize
Images et médias
Finalize a direct upload after PUTting the file bytes, using the signed_id from media_direct_upload_create. Returns the permanent attachment url. Safe to retry: finalizing the same signed_id again returns the same attachment.
signed_id
2 paramètres facultatifs
media_upload_from_chat
Images et médias
Upload image/video files attached directly in this chat (e.g. an image you just generated) into the RobinReach media library. Pass each file's download_url and file_id exactly as given; never ask the user for a public URL for these. Returns library URLs; use them in media_urls on posts_create / posts_update / posts_bulk_create.
media_files
2 paramètres facultatifs
analytics_get
Statistiques
Get raw engagement metrics for one social profile over a date range (default: last 30 days). A Google Business Profile answers with Google's own daily numbers under business (profile views on Search and Maps, website clicks, calls, direction requests, conversations, bookings, menu clicks) and post_analytics false, since Google has no per-post numbers.
social_profile_id
4 paramètres facultatifs
analytics_top_posts
Statistiques
Get the best-performing posts by engagement over a date range.
analytics_calendar
Statistiques
Get the next 14 days of scheduled posts, with any gap days flagged.
analytics_performance_summary
Statistiques
Compare this week's engagement and post count to last week's, with a plain-language recommendation.
analytics_post
Statistiques
Get live engagement metrics for a published post, across every profile it was published to (or one specific profile if social_profile_id is given). Aggregates per-platform results. X (Twitter) numbers are not live: they are the ones RobinReach read 1, 3 and 7 days after publishing, on the Scale plan.
post_id
2 paramètres facultatifs
comments_list
Commentaires
List comment threads across social profiles, sorted by most recent, with unread counts. A thread is one post's comment section. Each thread has likeable (whether comments_like works on it), last_comment (the newest message, which may be the brand's own reply), and recent_comments: the newest comments from other people, up to 5, each with external_id and liked (incoming_count is the full total). Goodwill comments (thanks, hearts, emoji, congratulations) usually deserve a like rather than a reply; group them and offer to like them with comments_like.
comments_reply
Commentaires
Reply to a comment thread. Requires a Bloom/Thrive plan; rate-limited to 10/minute per company.
thread_idmessage
2 paramètres facultatifs
comments_like
Commentaires
Like a comment as the brand, given thread_id and comment_id (an external_id from the thread's recent_comments in comments_list). The right response to goodwill comments where a reply would feel overbearing. Only works on threads where likeable is true (Facebook Pages and LinkedIn today); otherwise suggest a reply. Never like complaints, criticism, spam, or anything offensive. Only comments from other people can be liked, not the brand's own replies. One-way: likes can't be undone through this tool, so confirm with the user before liking more than a few at once. Liking an already-liked comment is a safe no-op. Requires a plan that includes comment replies; rate-limited to 30/minute per company.
thread_idcomment_id
1 paramètre facultatif
style_learn
Voix de marque
Analyze the brand's past posts (or, for fresh accounts, brand tone) to learn tone, length, emoji/hashtag usage, and structure. Cached for a year.
style_save_feedback
Voix de marque
Save a voice/style correction after the user edits or rejects generated content, e.g. "prefers shorter captions on instagram".
feedback
2 paramètres facultatifs
account_best_time
Planification
Get the next available posting slot based on the brand's preferred times/days.
account_audience_best_times
Planification
Get peak posting times per platform. Prefer this over guessing a schedule time.
account_hashtag_groups
Planification
List saved hashtag groups for a brand.
pillars_save
Planification
Save the brand's content pillar mix, e.g. 40% Educational, 30% Promotional, 30% Behind-the-scenes. Percentages must sum to ~100.
pillars
1 paramètre facultatif
pillars_list
Planification
Get the saved content pillar mix. Call when planning any content calendar.
templates_save
Planification
Save reusable post content as a template. Use {placeholder} syntax for variables.
template_nametemplate_content
2 paramètres facultatifs
templates_list
Planification
List saved templates. Call before creating recurring content types.
templates_use
Planification
Fill a saved template's placeholders with values to produce ready-to-post content.
template_name
2 paramètres facultatifs
bio_page_get
Page bio
Get the brand's Bio Page, its link in bio page: settings, public_url, whether it is published and live, every block top to bottom, post_grid_profiles (the profiles a post grid can show) and the supported embed providers. Each brand has exactly one Bio Page, created automatically on first use and free on every plan. Call this before changing the page.
bio_page_update
Page bio
Update the Bio Page: title, bio text, slug (its address), theme color, light or dark appearance, background, profile picture, post grid columns, the social icons row, and bio_published to put it live or take it offline. Only the fields you pass change. Images must be media library urls: import them first with media_upload, media_upload_from_chat or media_direct_upload_create, or reuse a url from media_search or media_generate_ai_image. Changing bio_slug breaks the old address, so confirm with the user first. Validation errors such as a taken slug come back in errors, exactly as the dashboard shows them.
bio_blocks_create
Page bio
Add a block at the bottom of the Bio Page: a link button, a card (product or offer with optional image, price and button), a post_grid (latest posts published through RobinReach from one profile, taken from post_grid_profiles in bio_page_get) or an embed (YouTube, Vimeo, TikTok, Spotify, SoundCloud or Apple Music player). Put the content in bio_block_settings; bio_block_image_url sets a card's image. Use bio_blocks_reorder to move it.
bio_block_typebio_block_settings
2 paramètres facultatifs
bio_blocks_update
Page bio
Change a Bio Page block's content. Only the bio_block_settings keys you pass change ("" clears one); bio_block_image_url replaces a card's image. A block's type cannot change: add a new block and delete the old one instead.
bio_block_id
3 paramètres facultatifs
bio_blocks_delete
Page bio
Confirmer d'abord
Permanently remove a block from the Bio Page, along with its click stats. Always confirm with the user first.
bio_block_id
1 paramètre facultatif
bio_blocks_reorder
Page bio
Set the order of the Bio Page blocks. Pass bio_block_ids top to bottom. Blocks you leave out keep their current order below the ones you list, so passing one id moves that block to the top.
bio_block_ids
1 paramètre facultatif
bio_page_analytics
Page bio
Bio Page stats, the same figures as the dashboard's Bio Page analytics: views, clicks and click-through rate on every plan; on paid plans also unique visitors, bounce rate, a daily views and clicks trend for the last 30 days, the most clicked blocks, traffic sources, countries and devices. Bot traffic is excluded. Use it to answer how the link in bio page is doing or which link gets the most clicks.
comment_automations_list
Commentaire vers DM
List Comment to DM automations for a brand, with available social profiles (Facebook Pages and Instagram professional accounts only) and remaining plan quota. Call this before offering to create one: check can_use_comment_automation and comment_automations_remaining, and take social_profile_id from available_social_profiles.
comment_automations_create
Commentaire vers DM
Create a Comment to DM automation: whenever someone comments a trigger keyword on the given social profile's posts, they get an automatic private DM. Only facebook and instagram_direct profiles are supported; call comment_automations_list first to get a valid social_profile_id and check plan quota. The profile is fixed for the life of the automation (create a new one to target another page/account). Keywords match case-insensitively: single words with light stemming, multi-word phrases as an exact substring. Each person is only ever DM'd once per automation, even if they comment a keyword again later: deliberate spam prevention, not a bug. Instagram automations currently fire reliably only on posts published through RobinReach; comments on posts published natively in the Instagram app may not trigger yet. comment_automation_send_public_reply requires comment_automation_public_reply_message.
social_profile_idcomment_automation_namecomment_automation_keywordscomment_automation_dm_message
3 paramètres facultatifs
comment_automations_update
Commentaire vers DM
Update an existing Comment to DM automation's name, keywords, message, or public reply settings. The social profile it's attached to cannot be changed; create a new automation instead.
comment_automation_id
7 paramètres facultatifs
comment_automations_delete
Commentaire vers DM
Confirmer d'abord
Permanently delete a Comment to DM automation. Always confirm with the user first.
comment_automation_id
1 paramètre facultatif
comment_automations_toggle_active
Commentaire vers DM
Pause or resume a Comment to DM automation without changing its settings.
comment_automation_id
1 paramètre facultatif
rss_list
Flux RSS
List all RSS feeds for the brand.
rss_validate
Flux RSS
Validate RSS feed parameters. Always call before rss_create or rss_update; never call those without a preceding successful rss_validate.
rss_create
Flux RSS
Create an RSS feed. Call rss_validate first. rss_publish_immediately and rss_auto_schedule are mutually exclusive.
rss_feed_namerss_feed_url
13 paramètres facultatifs
rss_update
Flux RSS
Update an existing RSS feed. Call rss_validate first.
rss_feed_id
15 paramètres facultatifs
rss_delete
Flux RSS
Confirmer d'abord
Permanently delete an RSS feed (does not delete posts it already created). Always confirm with the user first.
rss_feed_id
1 paramètre facultatif
rss_toggle_pause
Flux RSS
Pause or resume an RSS feed.
rss_feed_id
1 paramètre facultatif
rss_sync
Flux RSS
Manually trigger an RSS feed sync now.
rss_feed_id
1 paramètre facultatif
repurposing_list
Recycler et importer
List repurposing tasks and the available_source_profiles, the only profiles valid as a source. Any connected profile can be a destination.
repurposing_create
Recycler et importer
Create a task that repurposes content from one source profile to one or more destination profiles. Call repurposing_list first; only offer source profiles from its available_source_profiles list.
source_profile_iddestination_profile_ids
6 paramètres facultatifs
repurposing_update
Recycler et importer
Update a repurposing task's source, destinations, or settings.
repurposing_task_id
8 paramètres facultatifs
repurposing_delete
Recycler et importer
Confirmer d'abord
Permanently delete a repurposing task. Always confirm with the user first.
repurposing_task_id
1 paramètre facultatif
repurposing_toggle_pause
Recycler et importer
Pause or resume a repurposing task.
repurposing_task_id
1 paramètre facultatif
repurposing_run
Recycler et importer
Run a repurposing task now. Returns how many posts it created, or why nothing could be fetched from the source (for example an expired connection).
repurposing_task_id
1 paramètre facultatif
content_article_to_posts
Recycler et importer
Convert an article URL into draft posts, optionally tagged with custom hashtags.
article_url
4 paramètres facultatifs
store_sync_products
Recycler et importer
Sync products from a connected Shopify/Etsy/WooCommerce store into new draft posts. Pass store_type: "auto" to detect automatically.
connect_links_list
Liens clients
List Connect Links for this brand: client-facing onboarding links that let a client connect their own social profiles without an account.
connect_links_create
Liens clients
Confirmer d'abord
Create a Connect Link and return its one-time plaintext URL. Gated by the brand's plan limit. Confirm with the user first; the URL is shown only once and cannot be retrieved again through this tool.
link_title
3 paramètres facultatifs
approval_links_list
Liens clients
List Approval Links for this brand: client-facing links that let a client review and approve/reject pending posts without an account. Only available on Thrive and Scale plans.
approval_links_create
Liens clients
Confirmer d'abord
Create an Approval Link and return its one-time plaintext URL. Only available on Thrive and Scale plans. Confirm with the user first; the URL is shown only once and cannot be retrieved again through this tool.
link_title
4 paramètres facultatifs
account_status
Compte et réseaux
Get plan limits/usage, brand settings, connected profiles, voice preferences, and writing style. Call once at the start of a session.
account_brands
Compte et réseaux
List every brand on this account with profile/post counts. Use when the account has multiple brands and you need to ask the user which to work in.
account_profiles
Compte et réseaux
List connected social profiles for a brand, with per-platform character limits.
pinterest_list_boards
Compte et réseaux
List Pinterest boards for a connected profile.
youtube_list_playlists
Compte et réseaux
List YouTube playlists for a connected profile.
wordpress_list_categories
Compte et réseaux
List WordPress categories. Never guess category IDs; call this first.
wordpress_list_tags
Compte et réseaux
List WordPress tags. Never guess tag IDs; call this first.
Aucun outil ne correspond à cette recherche.
Les noms et les descriptions s'affichent tels que le serveur les envoie, en anglais.
La plupart des publications IA ratées viennent de suppositions. Le serveur est conçu pour supprimer les suppositions.
posts_validate vérifie le contenu, les médias et les limites de chaque réseau. posts_create refait les mêmes vérifications sur le serveur, pour qu'une étape sautée ne passe jamais.
Les tableaux, les playlists, les catégories et les étiquettes WordPress viennent d'outils de liste, et les instructions demandent au modèle de ne jamais en deviner un.
posts_bulk_create accepte jusqu'à 20 publications. Chacune est validée séparément et les échecs reviennent avec leur index, pour qu'une mauvaise publication n'entraîne jamais les autres.
URL publiques, fichiers joints dans le chat et imports directs signés pour les fichiers locaux. media_view permet au modèle de voir jusqu'à 10 images avant d'écrire à leur sujet.
Chaque erreur JSON-RPC renvoie l'id de la requête, les échecs d'outils arrivent avec isError, et les erreurs inattendues portent un identifiant de requête à communiquer au support.
9 outils publient immédiatement, suppriment définitivement ou renvoient un lien affiché une seule fois. Leurs descriptions et les instructions du serveur demandent au modèle de confirmer d'abord avec la personne.
Des extraits pour les clients les plus courants. Votre tableau de bord affiche les mêmes avec votre clé déjà en place.
claude mcp add --transport http robinreach "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
Ajoute RobinReach à Claude Code en HTTP. Lancez claude mcp list pour vérifier.
codex mcp add robinreach -- npx -y mcp-remote "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
Codex se connecte via le pont mcp-remote, qui nécessite Node.js.
gemini mcp add --transport http robinreach "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
Ajoute RobinReach à Gemini CLI en HTTP.
{
"mcpServers": {
"robinreach": {
"url": "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
}
}
}
Ouvrez Cursor Settings, puis MCP & Integrations, puis New MCP Server, et ajoutez ce bloc.
{
"servers": {
"robinreach": {
"type": "http",
"url": "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
}
}
}
Enregistrez-le dans votre espace de travail, ou lancez MCP: Add Server depuis la palette de commandes et choisissez HTTP. Utilisez-le avec Copilot Chat en mode Agent.
{
"mcpServers": {
"robinreach": {
"serverUrl": "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"
}
}
}
Dans Windsurf, ouvrez Settings, puis Cascade, puis Manage MCPs et View raw config.
{
"mcpServers": {
"robinreach": {
"command": "npx",
"args": ["mcp-remote", "https://robinreach.com/mcp/v1/messages?api_key=YOUR_API_KEY"]
}
}
}
Dans Claude Desktop, ouvrez Settings, puis Developer, puis Edit Config. Cela utilise le pont mcp-remote, Node.js doit donc être installé. Sur claude.ai, vous pouvez plutôt coller l'URL dans Settings, Connectors.
import anthropic client = anthropic.Anthropic() response = client.beta.messages.create( model="claude-opus-5-5", max_tokens=16000, betas=["mcp-client-2025-11-20"], mcp_servers=[{ "type": "url", "url": "https://robinreach.com/mcp/v1/messages", "name": "robinreach", "authorization_token": "YOUR_API_KEY", }], tools=[{"type": "mcp_toolset", "mcp_server_name": "robinreach"}], messages=[{"role": "user", "content": "What is scheduled for next week?"}], )
Utilisez RobinReach depuis votre propre code avec le connecteur MCP de la Claude API. Claude appelle les outils pour vous, et la clé circule comme jeton Bearer.
from openai import OpenAI client = OpenAI() response = client.responses.create( model="gpt-5", tools=[{ "type": "mcp", "server_label": "robinreach", "server_url": "https://robinreach.com/mcp/v1/messages", "headers": {"Authorization": "Bearer YOUR_API_KEY"}, }], input="What is scheduled for next week?", )
L'OpenAI Responses API se connecte de la même façon aux serveurs MCP distants. Passez la clé dans l'en-tête Authorization.
curl -s https://robinreach.com/mcp/v1/messages \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Le protocole brut. Remplacez tools/list par tools/call avec un name et des arguments pour lancer un outil.
YOUR_API_KEY est un espace réservé. Générez une clé dans Intégrations, depuis votre tableau de bord.
Le skill RobinReach donne à Claude ce que les outils seuls ne peuvent pas lui donner : le fonctionnement de chaque réseau, la façon de planifier un calendrier et la manière d'écrire avec votre voix.
curl -fsSL "https://robinreach.com/downloads/robinreach-claude-skill.zip?v=8e70fda9" -o /tmp/rr-skill.zip && mkdir -p ~/.claude/skills && unzip -oq /tmp/rr-skill.zip -d ~/.claude/skills && rm /tmp/rr-skill.zip && echo "RobinReach skill installed."
Obtenez une clé, collez l'URL, et votre agent peut gérer 13 réseaux.
L'accès MCP est inclus dans Bloom, Thrive et Scale.