Le serveur MCP pour les réseaux sociaux

Une URL donne à Claude, ChatGPT, Cursor, Codex ou à votre propre agent 79 outils pour publier, programmer, créer et analyser sur 13 réseaux.

Streamable HTTP JSON-RPC 2.0 OAuth ou clé API MCP 2025-06-18
POST/mcp/v1/messages
  1. → Clientinitialize
    {"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.

    ← RobinReach
    {"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.

  2. → Clienttools/list
    {"jsonrpc":"2.0","id":2,"method":"tools/list"}

    Elle demande ce qu'elle peut faire.

    ← RobinReach
    {"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"account_status"},{"name":"posts_validate"},{"name":"posts_create"}, … 76 more]}}

    Elle reçoit 79 outils, chacun avec une description et les informations dont il a besoin.

  3. → Clienttools/call posts_validate
    {"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.

    ← RobinReachresult.content[0].text
    {"status":"success","message":"All validation checks passed. Ready to create."}

    RobinReach confirme que la publication respecte les règles de chaque réseau.

  4. → Clienttools/call posts_create
    {"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-11-06T09:00","timezone":"America/New_York"}}}

    Elle programme la publication pour vendredi à 9 h, heure de New York.

    ← RobinReachresult.content[0].text
    {"success":true,"post_id":18342,"status":"scheduled","platforms":["instagram","linkedin"],"message":"Post scheduled for November 6 at 9:00 AM EST."}

    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.

Connexion

Tout ce qu'un client doit savoir

Un endpoint, une connexion ou une clé, du JSON-RPC tout simple. Si votre outil parle MCP en HTTP, il peut parler à RobinReach.

POSThttps://robinreach.com/mcp/v1/messages
Endpoint
POST /mcp/v1/messages sur robinreach.com. Chaque message JSON-RPC va vers cette seule URL.
Authentification
Claude et ChatGPT se connectent en OAuth 2.1 : code d'autorisation avec PKCE (S256), enregistrement dynamique du client et découverte via .well-known, l'utilisateur n'a donc qu'à coller l'URL. Tous les autres clients envoient une clé API en Authorization: Bearer, ou ajoutent ?api_key= à l'URL.
Transport
Streamable HTTP. Les messages sont des POST qui reçoivent une réponse en JSON. 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.
Protocole
JSON-RPC 2.0, versions MCP 2025-06-18 et 2025-03-26. Un message par requête : les lots sont refusés, pour qu'une nouvelle tentative ne publie jamais deux fois.
Méthodes
initialize, ping, tools/list et tools/call. Les notifications reçoivent 202 Accepted.
Forfaits
Inclus dans Bloom, Thrive et Scale. Sur les autres forfaits, chaque appel renvoie une erreur JSON-RPC claire qui explique comment passer à un forfait supérieur.
Clés
Une clé principale atteint toutes les marques du compte (passez brand_id). Une clé de marque n'atteint qu'une marque et n'a pas besoin de brand_id. Une connexion OAuth est l'un ou l'autre : l'utilisateur choisit tout le compte ou une seule marque en se connectant.
Prise de contact
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.
Référence des outils

Les 79 outils

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.

79 outils affichés sur 79

  • 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. When the update will use replace_media: true, pass replace_media: true here too, so the post is checked with only the new media_urls.

    Requiertsocial_profile_ids 9 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. LinkedIn: up to 20 images per post; set platform_options.linkedin.carousal "1" to publish them as one PDF document instead (no 20-image cap), and always set platform_options.linkedin.document_title for a carousel or PDF. A PDF in media_urls posts as a LinkedIn document and needs LinkedIn to be the only platform. For LinkedIn image posts, write platform_options.linkedin.alt_text (one description per image, separated by semicolons).

    Requiertsocial_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.

    Requiertpost_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.

    Requiertpost_id 1 paramètre facultatif
  • posts_delete Publications et programmation Confirmer d'abord

    Permanently delete a post. Always confirm with the user first.

    Requiertpost_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.

    Requiertpost_idsocial_profile_ids 1 paramètre facultatif
  • posts_reschedule Publications et programmation

    Change the publish_time of a scheduled post.

    Requiertpost_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.

    4 paramètres facultatifs
  • posts_get_status Publications et programmation

    Get per-platform publish status for a post, with suggested fixes for any failures.

    Requiertpost_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.

    Requiertposts 1 paramètre facultatif
  • 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'.

    3 paramètres facultatifs
  • media_rename Images et médias

    Rename a media library file, e.g. to fix a name the public will see: a PDF's name is the title LinkedIn shows on a document post when no document_title is set. The file keeps its extension and its url, so posts already using it are unaffected and pick up the new name. Take attachment_id from media_search.

    Requiertattachment_idmedia_new_name 1 paramètre facultatif
  • media_delete Images et médias

    Permanently delete media library files (up to 20 per call). Always confirm with the user first, naming the files. If a file is used by a post that hasn't gone out yet, nothing is deleted and the answer has needs_confirmation with those posts: show them to the user, and only after a clear yes call again with force_delete: true. Files only used in already-published posts are deleted right away; the live posts are unaffected.

    Requiertattachment_ids 2 paramètres facultatifs
  • media_folders Images et médias

    List media library folders with attachment counts.

    1 paramètre facultatif
  • media_search_unsplash Images et médias

    Search Unsplash for stock photos. Credit the photographer when used.

    Requiertquery
  • media_generate_ai_image Images et médias

    Generate an AI image from a text prompt. It is saved to the RobinPixel folder of the media library and shows in Recent images on the RobinPixel page. Optional: model ("gpt_image" default, or "nano_banana_pro"), image_format (1:1, 16:9, 4:3, 9:16, 3:4) or the older size list, image_style, and image_guidelines (up to 1,000 characters). Standard resolution only; 2K and 4K are on the RobinPixel page. 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.

    Requiertimage_prompt 8 paramètres facultatifs
  • media_upload Images et médias

    Download a public file_url (image, video or PDF) 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.

    Requiertfile_url 3 paramètres facultatifs
  • media_upload_status Images et médias

    Check the status of a media_upload job_id.

    Requiertjob_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.

    Requiertcontent_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.

    Requiertsigned_id 2 paramètres facultatifs
  • media_upload_from_chat Images et médias

    Upload image, video or PDF files attached directly in this chat (e.g. an image you just generated; a PDF posts as a LinkedIn document) into the RobinReach media library. Put each file in its own field, file_1 to file_5 (call again for more than five); 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.

    8 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.

    Requiertsocial_profile_id 4 paramètres facultatifs
  • analytics_top_posts Statistiques

    Get the best-performing posts by engagement over a date range.

    6 paramètres facultatifs
  • analytics_calendar Statistiques

    Get the next 14 days of scheduled posts, with any gap days flagged.

    1 paramètre facultatif
  • analytics_performance_summary Statistiques

    Compare this week's engagement and post count to last week's, with a plain-language recommendation.

    2 paramètres facultatifs
  • 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. A result with `warnings` is missing some metrics (for example a Facebook Reel's views): tell the user which and why. X (Twitter) numbers are not live: they are the ones RobinReach read 1, 3 and 7 days after publishing, on the Scale plan.

    Requiertpost_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. Google Business reviews appear here too, as threads with kind "review", a rating from 1 to 5 and has_reply; they can't be liked. YouTube comments (Thrive and Scale plans) appear as threads with platform "youtube", one per video; they can't be liked, and each brand can send 30 YouTube replies a day, so never bulk-reply.

    4 paramètres facultatifs
  • comments_reply Commentaires

    Reply to a comment thread. Requires Bloom or higher (YouTube threads: Thrive or Scale, capped at 30 replies per brand per day); rate-limited to 10/minute per company. On a Google review (kind "review") the reply is public on Google and replaces any earlier reply; reply_to_comment_id is ignored. Always show the user the draft before replying to a 1, 2 or 3 star review.

    Requiertthread_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.

    Requiertthread_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.

    3 paramètres facultatifs
  • 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". Also used by the composer's AI caption chat in the app.

    Requiertfeedback 2 paramètres facultatifs
  • account_best_time Planification

    Get the next available posting slot based on the brand's preferred times/days.

    1 paramètre facultatif
  • account_audience_best_times Planification

    Best posting times per platform from the brand's own post engagement over the last 90 days (the Best time to post rule of the Reports page), each with a suggested time, a confidence level and why, falling back to the brand's saved posting times or the network's usual peak hours where its numbers are thin. start_date and end_date pick the past posts to read, not the dates to schedule. Prefer this over guessing a schedule time.

    5 paramètres facultatifs
  • account_hashtag_groups Planification

    List saved hashtag groups for a brand.

    1 paramètre facultatif
  • 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.

    Requiertpillars 1 paramètre facultatif
  • pillars_list Planification

    Get the saved content pillar mix. Call when planning any content calendar.

    1 paramètre facultatif
  • templates_save Planification

    Save reusable post content as a template. Use {placeholder} syntax for variables.

    Requierttemplate_nametemplate_content 2 paramètres facultatifs
  • templates_list Planification

    List saved templates. Call before creating recurring content types.

    1 paramètre facultatif
  • templates_use Planification

    Fill a saved template's placeholders with values to produce ready-to-post content.

    Requierttemplate_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.

    1 paramètre facultatif
  • 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.

    14 paramètres facultatifs
  • 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; consecutive cards can be set to a swipeable carousel), a post_grid (latest posts published through RobinReach from one profile, taken from post_grid_profiles in bio_page_get), an embed (YouTube, Vimeo, TikTok, Spotify, SoundCloud or Apple Music player) or a heading (a section label, shown as a bold title or a divider line, such as Shop or Watch). Put the content in bio_block_settings; bio_block_image_url sets a card's image. Use bio_blocks_reorder to move it.

    Requiertbio_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.

    Requiertbio_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.

    Requiertbio_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.

    Requiertbio_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.

    1 paramètre facultatif
  • comment_automations_list Commentaire vers DM

    List Comment to DM automations for a brand, with every setting of each one, the social profiles that can run one (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. Each profile's triggers_on_all_posts says whether its automations fire on every post (always true for a Facebook Page) or only on posts published through RobinReach (an Instagram account that needs reconnecting once with Connect Via Instagram); tell the user when it is false.

    1 paramètre facultatif
  • comment_automations_create Commentaire vers DM

    Create a Comment to DM automation on one Facebook Page or Instagram professional account: people who comment get an automatic private DM. Call comment_automations_list first for a valid social_profile_id and the plan quota; the profile is fixed for the life of the automation (create a new one to target another page/account). Starts on: comment_automation_trigger_mode "keywords" (default; comment_automation_keywords then required, matched case-insensitively, single words with light stemming, multi-word phrases as an exact substring) or "any_comment" (everyone who comments). Timing: right away, or comment_automation_delay_minutes later. What they get: comment_automation_dm_message as plain text (comment_automation_button_style "none"), with one link button ("link"), or with a tap button that sends the link after the tap ("tap"); "link" and "tap" need comment_automation_button_url, and every button text has a default. Only "tap" can check that the person follows the account before the link goes out (comment_automation_require_follow, Instagram only) or send one reminder to people who got the link but didn't open it (comment_automation_follow_up_enabled); a "link" automation that asks for either is switched to "tap" automatically, as in the dashboard, and the response's note says so. Optional public reply under the comment (comment_automation_send_public_reply, which requires comment_automation_public_reply_message). Each person is only ever DM'd once per automation, even if they comment again later or while a delayed DM is waiting: deliberate spam prevention, not a bug. Facebook fires on top-level comments on any Page post. Instagram fires on every comment, replies included, on every post when the profile's triggers_on_all_posts (from comment_automations_list) is true, and otherwise only on posts published through RobinReach until the account is reconnected.

    Requiertsocial_profile_idcomment_automation_namecomment_automation_dm_message 17 paramètres facultatifs
  • comment_automations_update Commentaire vers DM

    Change any setting of an existing Comment to DM automation: name, trigger mode and keywords, delay, DM message, button style, link and button texts, follower check and its message, reminder with its message and timing, public reply, and whether it is active. Pass only what changes; everything else stays as it is. The same rules as comment_automations_create apply: the follower check (Instagram only) and the reminder need the "tap" style, and a "link" automation is switched to it automatically when either is turned on. The social profile it's attached to cannot be changed; create a new automation instead.

    Requiertcomment_automation_id 20 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.

    Requiertcomment_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.

    Requiertcomment_automation_id 1 paramètre facultatif
  • rss_list Flux RSS

    List all RSS feeds for the brand.

    1 paramètre facultatif
  • 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.

    13 paramètres facultatifs
  • rss_create Flux RSS

    Create an RSS feed. Call rss_validate first. rss_publish_immediately and rss_auto_schedule are mutually exclusive.

    Requiertrss_feed_namerss_feed_url 15 paramètres facultatifs
  • rss_update Flux RSS

    Update an existing RSS feed. Call rss_validate first.

    Requiertrss_feed_id 17 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.

    Requiertrss_feed_id 1 paramètre facultatif
  • rss_toggle_pause Flux RSS

    Pause or resume an RSS feed. Resuming checks the feed for new items right away and restarts its schedule.

    Requiertrss_feed_id 1 paramètre facultatif
  • rss_sync Flux RSS

    Manually trigger an RSS feed sync now.

    Requiertrss_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.

    1 paramètre facultatif
  • 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.

    Requiertsource_profile_iddestination_profile_ids 6 paramètres facultatifs
  • repurposing_update Recycler et importer

    Update a repurposing task's source, destinations, or settings.

    Requiertrepurposing_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.

    Requiertrepurposing_task_id 1 paramètre facultatif
  • repurposing_toggle_pause Recycler et importer

    Pause or resume a repurposing task.

    Requiertrepurposing_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).

    Requiertrepurposing_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.

    Requiertarticle_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.

    2 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.

    1 paramètre facultatif
  • 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.

    Aucun paramètre
  • account_profiles Compte et réseaux

    List connected social profiles for a brand, with per-platform character limits. requires_media: true means the profile rejects a post with no image or video.

    1 paramètre facultatif
  • account_locations Compte et réseaux

    List the locations this brand can tag on Instagram and Facebook posts: its connected Facebook Pages that have an address. Each says whether Instagram can use it (instagram: true needs a map pin on the Page). Pass page_id as platform_options.instagram.location_id and/or platform_options.facebook.place_id.

    1 paramètre facultatif
  • pinterest_list_boards Compte et réseaux

    List Pinterest boards for a connected profile.

    2 paramètres facultatifs
  • youtube_list_playlists Compte et réseaux

    List YouTube playlists for a connected profile.

    3 paramètres facultatifs
  • wordpress_list_categories Compte et réseaux

    List WordPress categories. Never guess category IDs; call this first.

    2 paramètres facultatifs
  • wordpress_list_tags Compte et réseaux

    List WordPress tags. Never guess tag IDs; call this first.

    2 paramètres facultatifs

Les noms et les descriptions s'affichent tels que le serveur les envoie, en anglais.

Pensé pour les agents

Conçu pour que votre agent ne se trompe pas

La plupart des publications IA ratées viennent de suppositions. Le serveur est conçu pour supprimer les suppositions.

  • Valider, puis écrire

    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.

  • Aucun identifiant deviné

    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.

  • En masse, avec un résultat par publication

    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.

  • Des médias de partout

    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.

  • Des erreurs qu'un client peut rapprocher

    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.

  • La confirmation fait partie du contrat

    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.

Configuration des clients

Copier, coller, connecté

Des extraits pour les clients les plus courants. Claude et ChatGPT se connectent à RobinReach, leur configuration ne contient donc aucune clé. Votre tableau de bord affiche les autres avec votre clé déjà en place.

Terminal
claude mcp add --transport http robinreach https://robinreach.com/mcp/v1/messages

Ajoute RobinReach à Claude Code en HTTP, sans clé dans l'URL. Lancez ensuite /mcp dans Claude Code, sélectionnez robinreach et choisissez Authenticate : votre navigateur ouvre RobinReach pour que vous vous connectiez et choisissiez tout le compte ou une seule marque. Pas de navigateur ? Utilisez plutôt l'URL avec clé API de votre tableau de bord.

YOUR_API_KEY est un espace réservé pour les clients qui utilisent une clé API. Générez une clé dans Intégrations, depuis votre tableau de bord. Claude et ChatGPT se connectent à la place et n'ont besoin d'aucune clé.

Skill pour Claude

Apprenez à Claude les règles de la maison

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.

  • Écrit avec la voix de votre marque dès la première publication
  • Choisit des horaires pertinents et respecte les règles de chaque réseau
  • Fonctionne dans Claude sur le web, dans l'application de bureau et dans Claude Code
Installer pour Claude Code
curl -fsSL "https://robinreach.com/downloads/robinreach-claude-skill.zip?v=80b2def7" -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."
FAQ

Les questions des développeurs

Qu'est-ce qu'un serveur MCP ?

MCP (Model Context Protocol) est un standard ouvert pour connecter des assistants IA à des applications. Un serveur MCP propose des outils que l'assistant peut appeler. Le serveur de RobinReach en propose 79, pour les publications, les médias, les statistiques, les commentaires et plus encore.

Quels clients peuvent se connecter ?

Tout client qui parle MCP en HTTP : Claude (web, bureau et Claude Code), ChatGPT, Codex, Gemini CLI, Cursor, VS Code, Windsurf, n8n et d'autres, ainsi que votre propre code via la Claude API ou l'OpenAI API. Claude et ChatGPT se connectent en s'identifiant sur RobinReach, les autres avec une clé API. Les clients qui ne lancent que des serveurs locaux peuvent utiliser le pont mcp-remote.

Comment m'authentifier ?

Claude et ChatGPT utilisent OAuth 2.1 : l'utilisateur colle l'URL, clique sur Connect, se connecte à RobinReach et choisit tout le compte ou une seule marque. Le client trouve ce qu'il lui faut sur /.well-known/oauth-protected-resource, s'enregistre lui-même sur /oauth/register et utilise PKCE. Les jetons d'accès durent une heure et sont accompagnés d'un jeton de rafraîchissement, et la connexion s'arrête aussitôt si la personne qui l'a créée perd son rôle d'admin. Tous les autres clients utilisent votre clé API RobinReach, envoyée comme jeton Bearer dans l'en-tête Authorization ou comme paramètre api_key dans l'URL. Générez-la dans Intégrations, depuis le tableau de bord. Régénérer ou supprimer la clé coupe l'accès de tous les clients qui l'utilisent.

Le serveur est-il sans état ?

Oui. Il n'attribue aucun identifiant de session et chaque requête est indépendante, vous pouvez donc l'appeler depuis des fonctions serverless ou derrière un répartiteur de charge sans sessions persistantes.

De quel forfait ai-je besoin ?

L'accès MCP est inclus dans les forfaits Bloom, Thrive et Scale, les mêmes que pour l'API REST. Consultez la page des tarifs.

Y a-t-il aussi une API REST ?

Oui. L'API RobinReach couvre les actions principales en REST classique, avec la même clé. Utilisez MCP quand un modèle d'IA choisit les étapes, et REST quand c'est votre propre code qui le fait.

Une connexion peut-elle gérer plusieurs marques ?

Avec la clé principale, oui : account_brands les liste et chaque outil accepte un brand_id. Une clé de marque est limitée à une marque, ce qui est plus sûr pour la confier à un client ou à un outil à usage unique. Les connexions depuis Claude et ChatGPT fonctionnent de la même façon : connectez tout le compte, ou choisissez la marque d'un client sous "Or connect a single brand" pour que l'IA n'atteigne que cette marque, sans qu'aucune clé ne change de mains.

Les anciennes connexions fonctionnent-elles encore ?

Oui. Le serveur proposait autrefois un seul outil robinreach, avant de le diviser en outils nommés comme posts_create. Les clients qui appellent encore l'outil unique continuent de fonctionner.

Que se passe-t-il sur un forfait sans accès ?

Chaque requête renvoie une erreur JSON-RPC expliquant que MCP nécessite un forfait avec accès à l'API, pour que le client puisse afficher un message clair au lieu d'échouer sans rien dire.

Mon agent peut-il demander avant de publier ?

Le serveur demande déjà à chaque client de confirmer avant ses 9 outils irréversibles. Les clients ajoutent leurs propres confirmations par-dessus, et vous pouvez garder les publications en brouillon ou les envoyer en validation plutôt que de les programmer. La page des intégrations IA l'explique pour les non-développeurs.

Pointez votre agent vers une seule URL

Collez l'URL, connectez-vous ou ajoutez une clé, et votre agent peut gérer 13 réseaux.

L'accès MCP est inclus dans Bloom, Thrive et Scale.