Il server MCP per i social

Un URL dà a Claude, ChatGPT, Cursor, Codex o al tuo agente 77 strumenti per pubblicare, programmare, creare grafiche e fare report su 13 social.

Streamable HTTP JSON-RPC 2.0 OAuth o chiave API MCP 2025-06-18
POST/mcp/v1/messages
  1. → Clientinitialize
    {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}

    La tua AI saluta e indica la versione di MCP che parla.

    ← 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 concorda la versione e manda note su come usare i suoi strumenti, più le impostazioni sulla voce del tuo brand.

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

    Chiede cosa può fare.

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

    Riceve 77 strumenti, ognuno con una descrizione e i dati che gli servono.

  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."}}}

    Prima di salvare qualsiasi cosa, controlla il post per Instagram e LinkedIn.

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

    RobinReach conferma che il post rispetta le regole di ogni social.

  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"}}}

    Programma il post per venerdì alle 9:00, ora di 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."}

    Il post è nel calendario di entrambi i social.

Uno scambio reale con ID di esempio. Ogni messaggio è un POST allo stesso URL.

Collegamento

Tutto quello che un client deve sapere

Un endpoint, un accesso o una chiave, JSON-RPC semplice. Se il tuo strumento parla MCP via HTTP, può parlare con RobinReach.

POSThttps://robinreach.com/mcp/v1/messages
Endpoint
POST /mcp/v1/messages su robinreach.com. Ogni messaggio JSON-RPC va a questo unico URL.
Autenticazione
Claude e ChatGPT accedono con OAuth 2.1: authorization code con PKCE (S256), registrazione dinamica del client e discovery tramite .well-known, così l'utente incolla solo l'URL. Ogni altro client invia una chiave API come Authorization: Bearer, oppure aggiunge ?api_key= all'URL.
Trasporto
Streamable HTTP. I messaggi sono POST con risposta in JSON. GET restituisce 405 perché il server non invia mai nulla di sua iniziativa, e OPTIONS risponde ai preflight CORS da qualsiasi origine.
Protocollo
JSON-RPC 2.0, versioni MCP 2025-06-18 e 2025-03-26. Un messaggio per richiesta: i batch vengono rifiutati, così un nuovo tentativo non pubblica mai due volte.
Metodi
initialize, ping, tools/list e tools/call. Le notifiche ricevono 202 Accepted.
Piani
Incluso in Bloom, Thrive e Scale. Negli altri piani ogni chiamata restituisce un errore JSON-RPC chiaro che spiega come passare a un piano superiore.
Chiavi
Una chiave principale raggiunge ogni brand dell'account (passa brand_id). Una chiave brand raggiunge un solo brand e non ha bisogno di brand_id. Una connessione OAuth è l'una o l'altra cosa: l'utente sceglie tutto l'account o un solo brand quando accede.
Handshake
initialize restituisce note d'uso per il modello, più tono, missione, lingua e fuso orario del brand, così i post suonano giusti fin dalla prima chiamata.
Riferimento strumenti

Tutti i 77 strumenti

Questo elenco nasce dallo stesso registro con cui il server risponde a tools/list, quindi è sempre aggiornato.

77 di 77 strumenti

  • posts_validate Post e programmazione

    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.

    Richiedesocial_profile_ids 8 parametri facoltativi
  • posts_create Post e programmazione

    Create and schedule (or save as draft) a post across one or more social profiles. Call posts_validate first.

    Richiedesocial_profile_ids 12 parametri facoltativi
  • posts_update Post e programmazione

    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.

    Richiedepost_id 12 parametri facoltativi
  • posts_publish_now Post e programmazione Prima conferma

    Publish a draft/scheduled/approved post immediately. Always show the content preview and get explicit user confirmation first.

    Richiedepost_id 1 parametro facoltativo
  • posts_delete Post e programmazione Prima conferma

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

    Richiedepost_id 1 parametro facoltativo
  • posts_delete_from_platform Post e programmazione Prima conferma

    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.

    Richiedepost_idsocial_profile_ids 1 parametro facoltativo
  • posts_reschedule Post e programmazione

    Change the publish_time of a scheduled post.

    Richiedepost_idnew_publish_time 1 parametro facoltativo
  • posts_list Post e programmazione

    List posts for a brand, optionally filtered by status and/or labels (matches ANY given label). Paginated, 10 per page.

    4 parametri facoltativi
  • posts_get_status Post e programmazione

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

    Richiedepost_id 1 parametro facoltativo
  • posts_bulk_create Post e programmazione

    Create up to 20 posts in one call. Each post is validated independently; partial failures are reported per-index.

    Richiedeposts 1 parametro facoltativo
  • media_view Immagini e media

    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 parametri facoltativi
  • media_folders Immagini e media

    List media library folders with attachment counts.

    1 parametro facoltativo
  • media_search_unsplash Immagini e media

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

    Richiedequery
  • media_generate_ai_image Immagini e media

    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.

    Richiedeimage_prompt 5 parametri facoltativi
  • media_upload Immagini e media

    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.

    Richiedefile_url 3 parametri facoltativi
  • media_upload_status Immagini e media

    Check the status of a media_upload job_id.

    Richiedejob_id 1 parametro facoltativo
  • media_direct_upload_create Immagini e media

    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.

    Richiedecontent_typebyte_sizechecksum 2 parametri facoltativi
  • media_direct_upload_finalize Immagini e media

    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.

    Richiedesigned_id 2 parametri facoltativi
  • media_upload_from_chat Immagini e media

    Upload image/video files attached directly in this chat (e.g. an image you just generated) 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 parametri facoltativi
  • analytics_get Statistiche

    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.

    Richiedesocial_profile_id 4 parametri facoltativi
  • analytics_top_posts Statistiche

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

    6 parametri facoltativi
  • analytics_calendar Statistiche

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

    1 parametro facoltativo
  • analytics_performance_summary Statistiche

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

    2 parametri facoltativi
  • analytics_post Statistiche

    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.

    Richiedepost_id 2 parametri facoltativi
  • comments_list Commenti

    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.

    4 parametri facoltativi
  • comments_reply Commenti

    Reply to a comment thread. Requires a Bloom/Thrive plan; rate-limited to 10/minute per company.

    Richiedethread_idmessage 2 parametri facoltativi
  • comments_like Commenti

    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.

    Richiedethread_idcomment_id 1 parametro facoltativo
  • style_learn Voce del brand

    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 parametri facoltativi
  • style_save_feedback Voce del brand

    Save a voice/style correction after the user edits or rejects generated content, e.g. "prefers shorter captions on instagram".

    Richiedefeedback 2 parametri facoltativi
  • account_best_time Pianificazione

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

    1 parametro facoltativo
  • account_audience_best_times Pianificazione

    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 parametri facoltativi
  • account_hashtag_groups Pianificazione

    List saved hashtag groups for a brand.

    1 parametro facoltativo
  • pillars_save Pianificazione

    Save the brand's content pillar mix, e.g. 40% Educational, 30% Promotional, 30% Behind-the-scenes. Percentages must sum to ~100.

    Richiedepillars 1 parametro facoltativo
  • pillars_list Pianificazione

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

    1 parametro facoltativo
  • templates_save Pianificazione

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

    Richiedetemplate_nametemplate_content 2 parametri facoltativi
  • templates_list Pianificazione

    List saved templates. Call before creating recurring content types.

    1 parametro facoltativo
  • templates_use Pianificazione

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

    Richiedetemplate_name 2 parametri facoltativi
  • bio_page_get Pagina 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 parametro facoltativo
  • bio_page_update Pagina 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 parametri facoltativi
  • bio_blocks_create Pagina 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.

    Richiedebio_block_typebio_block_settings 2 parametri facoltativi
  • bio_blocks_update Pagina 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.

    Richiedebio_block_id 3 parametri facoltativi
  • bio_blocks_delete Pagina bio Prima conferma

    Permanently remove a block from the Bio Page, along with its click stats. Always confirm with the user first.

    Richiedebio_block_id 1 parametro facoltativo
  • bio_blocks_reorder Pagina 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.

    Richiedebio_block_ids 1 parametro facoltativo
  • bio_page_analytics Pagina 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 parametro facoltativo
  • comment_automations_list Da commento a 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 parametro facoltativo
  • comment_automations_create Da commento a 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.

    Richiedesocial_profile_idcomment_automation_namecomment_automation_dm_message 17 parametri facoltativi
  • comment_automations_update Da commento a 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.

    Richiedecomment_automation_id 20 parametri facoltativi
  • comment_automations_delete Da commento a DM Prima conferma

    Permanently delete a Comment to DM automation. Always confirm with the user first.

    Richiedecomment_automation_id 1 parametro facoltativo
  • comment_automations_toggle_active Da commento a DM

    Pause or resume a Comment to DM automation without changing its settings.

    Richiedecomment_automation_id 1 parametro facoltativo
  • rss_list Feed RSS

    List all RSS feeds for the brand.

    1 parametro facoltativo
  • rss_validate Feed RSS

    Validate RSS feed parameters. Always call before rss_create or rss_update; never call those without a preceding successful rss_validate.

    11 parametri facoltativi
  • rss_create Feed RSS

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

    Richiederss_feed_namerss_feed_url 13 parametri facoltativi
  • rss_update Feed RSS

    Update an existing RSS feed. Call rss_validate first.

    Richiederss_feed_id 15 parametri facoltativi
  • rss_delete Feed RSS Prima conferma

    Permanently delete an RSS feed (does not delete posts it already created). Always confirm with the user first.

    Richiederss_feed_id 1 parametro facoltativo
  • rss_toggle_pause Feed RSS

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

    Richiederss_feed_id 1 parametro facoltativo
  • rss_sync Feed RSS

    Manually trigger an RSS feed sync now.

    Richiederss_feed_id 1 parametro facoltativo
  • repurposing_list Riadatta e importa

    List repurposing tasks and the available_source_profiles, the only profiles valid as a source. Any connected profile can be a destination.

    1 parametro facoltativo
  • repurposing_create Riadatta e importa

    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.

    Richiedesource_profile_iddestination_profile_ids 6 parametri facoltativi
  • repurposing_update Riadatta e importa

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

    Richiederepurposing_task_id 8 parametri facoltativi
  • repurposing_delete Riadatta e importa Prima conferma

    Permanently delete a repurposing task. Always confirm with the user first.

    Richiederepurposing_task_id 1 parametro facoltativo
  • repurposing_toggle_pause Riadatta e importa

    Pause or resume a repurposing task.

    Richiederepurposing_task_id 1 parametro facoltativo
  • repurposing_run Riadatta e importa

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

    Richiederepurposing_task_id 1 parametro facoltativo
  • content_article_to_posts Riadatta e importa

    Convert an article URL into draft posts, optionally tagged with custom hashtags.

    Richiedearticle_url 4 parametri facoltativi
  • store_sync_products Riadatta e importa

    Sync products from a connected Shopify/Etsy/WooCommerce store into new draft posts. Pass store_type: "auto" to detect automatically.

    2 parametri facoltativi
  • account_status Account e social

    Get plan limits/usage, brand settings, connected profiles, voice preferences, and writing style. Call once at the start of a session.

    1 parametro facoltativo
  • account_brands Account e social

    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.

    Nessun parametro
  • account_profiles Account e social

    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 parametro facoltativo
  • account_locations Account e social

    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 parametro facoltativo
  • pinterest_list_boards Account e social

    List Pinterest boards for a connected profile.

    2 parametri facoltativi
  • youtube_list_playlists Account e social

    List YouTube playlists for a connected profile.

    3 parametri facoltativi
  • wordpress_list_categories Account e social

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

    2 parametri facoltativi
  • wordpress_list_tags Account e social

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

    2 parametri facoltativi

Nomi e descrizioni sono mostrati esattamente come li invia il server, in inglese.

Pensato per gli agenti

Progettato perché il tuo agente non sbagli

La maggior parte dei post AI venuti male nasce da tentativi alla cieca. Il server è fatto per eliminarli.

  • Prima controlla, poi scrivi

    posts_validate controlla contenuto, media e limiti di ogni social. posts_create ripete gli stessi controlli sul server, così un passaggio saltato non passa mai.

  • Nessun ID tirato a indovinare

    Bacheche, playlist, categorie e tag di WordPress arrivano da strumenti di elenco, e le istruzioni dicono al modello di non indovinarne mai uno.

  • In blocco, con un esito per post

    posts_bulk_create accetta fino a 20 post. Ognuno viene controllato a parte e gli errori tornano con il loro indice, così un post sbagliato non trascina mai gli altri.

  • Media da qualsiasi fonte

    URL pubblici, file allegati nella chat e caricamenti diretti firmati per i file locali. media_view permette al modello di vedere fino a 10 immagini prima di scriverne.

  • Errori che un client può abbinare

    Ogni errore JSON-RPC riporta l'id della richiesta, gli errori degli strumenti arrivano con isError e quelli imprevisti hanno un id di richiesta da citare all'assistenza.

  • La conferma fa parte del contratto

    9 strumenti pubblicano subito, eliminano per sempre o restituiscono un link mostrato una sola volta. Le loro descrizioni e le istruzioni del server dicono al modello di chiedere prima conferma alla persona.

Configurazione dei client

Copia, incolla, collegato

Snippet per i client più comuni. Claude e ChatGPT accedono a RobinReach, quindi la loro configurazione non contiene chiavi. La tua dashboard ha gli altri con la tua chiave già inserita.

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

Aggiunge RobinReach a Claude Code via HTTP, senza chiave nell'URL. Poi esegui /mcp in Claude Code, seleziona robinreach e scegli Authenticate: il browser apre RobinReach, dove accedi e scegli tutto l'account o un solo brand. Niente browser? Usa invece l'URL con chiave API della tua dashboard.

YOUR_API_KEY è un segnaposto per i client che usano una chiave API. Genera una chiave in Integrazioni, nella tua dashboard. Claude e ChatGPT invece accedono con il login e non hanno bisogno di chiavi.

Skill per Claude

Insegna a Claude le regole della casa

Lo skill di RobinReach dà a Claude quello che gli strumenti da soli non possono dare: come si comporta ogni social, come pianificare un calendario e come scrivere con la tua voce.

  • Scrive con la voce del tuo brand fin dal primo post
  • Sceglie orari sensati e rispetta le regole di ogni social
  • Funziona in Claude sul web, nell'app desktop e in Claude Code
Installa per Claude Code
curl -fsSL "https://robinreach.com/downloads/robinreach-claude-skill.zip?v=0dbca3b6" -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

Le domande degli sviluppatori

Che cos'è un server MCP?

MCP (Model Context Protocol) è uno standard aperto per collegare gli assistenti AI alle app. Un server MCP offre strumenti che l'assistente può chiamare. Il server di RobinReach ne offre 77, per post, media, statistiche, commenti e altro.

Quali client possono collegarsi?

Qualsiasi client che parli MCP via HTTP: Claude (web, desktop e Claude Code), ChatGPT, Codex, Gemini CLI, Cursor, VS Code, Windsurf, n8n e altri, più il tuo codice tramite la Claude API o la OpenAI API. Claude e ChatGPT si collegano accedendo a RobinReach, gli altri con una chiave API. I client che eseguono solo server locali possono usare il ponte mcp-remote.

Come mi autentico?

Claude e ChatGPT usano OAuth 2.1: l'utente incolla l'URL, clicca su Connect, accede a RobinReach e sceglie tutto l'account o un solo brand. Il client trova ciò che gli serve su /.well-known/oauth-protected-resource, si registra da solo su /oauth/register e usa PKCE. I token di accesso durano un'ora e arrivano con un refresh token, e la connessione si interrompe subito se la persona che l'ha creata perde il ruolo di admin. Ogni altro client usa la tua chiave API di RobinReach, inviata come token Bearer nell'header Authorization o come parametro api_key nell'URL. Generala in Integrazioni dalla dashboard. Se rigeneri o elimini la chiave, tutti i client che la usano perdono l'accesso.

Il server è stateless?

Sì. Non assegna alcun ID di sessione e ogni richiesta è indipendente, quindi puoi chiamarlo da funzioni serverless o dietro un load balancer senza sessioni persistenti.

Di quale piano ho bisogno?

L'accesso MCP è incluso nei piani Bloom, Thrive e Scale, gli stessi dell'API REST. Vedi la pagina dei prezzi.

C'è anche un'API REST?

Sì. L'API di RobinReach copre le azioni principali via REST classico, con la stessa chiave. Usa MCP quando è un modello AI a scegliere i passaggi, e REST quando è il tuo codice.

Un collegamento può gestire più brand?

Con la chiave principale sì: account_brands li elenca e ogni strumento accetta un brand_id. Una chiave brand è limitata a un solo brand, il che è più sicuro da dare a un cliente o a uno strumento con un unico scopo. Gli accessi da Claude e ChatGPT funzionano allo stesso modo: collega tutto l'account, oppure scegli il brand di un cliente in "Or connect a single brand" così l'AI raggiunge solo quel brand e nessuna chiave passa di mano.

I collegamenti più vecchi funzionano ancora?

Sì. Il server prima offriva un unico strumento robinreach, poi diviso in strumenti con nome come posts_create. I client che chiamano ancora lo strumento unico continuano a funzionare.

Cosa succede in un piano senza accesso?

Ogni richiesta restituisce un errore JSON-RPC che spiega che MCP richiede un piano con accesso all'API, così il client può mostrare un messaggio chiaro invece di fallire in silenzio.

Il mio agente può chiedere prima di pubblicare?

Il server chiede già a ogni client di chiedere conferma prima dei suoi 9 strumenti irreversibili. I client aggiungono le proprie conferme, e puoi tenere i post come bozze o mandarli in approvazione invece di programmarli. La pagina delle integrazioni AI lo spiega per chi non è sviluppatore.

Punta il tuo agente su un solo URL

Incolla l'URL, accedi o aggiungi una chiave e il tuo agente può gestire 13 social.

L'accesso MCP è incluso in Bloom, Thrive e Scale.