MCP

Strumenti del server MCP

Tutti gli strumenti esposti dal server MCP di More.You, con input, formato della risposta ed esempio da copiare.

Autenticazione

Ogni richiesta a https://mcp.more.you/api richiede un header Authorization con un token Bearer. Hai due modi per ottenerlo.

OAuth (consigliato per i client AI)

I client AI eseguono la Dynamic Client Registration al primo collegamento, poi guidano l'utente in una schermata di consenso OAuth. La pagina /mcp/connect gestisce tutto in automatico. Il tuo client riceve un token di accesso valido 30 giorni.

Chiave API

Per script e CI, genera una chiave API personale nell'app More.You in Account → Chiavi API. La chiave inizia con apikey_ e viene presentata come un normale token bearer.

Endpoint

Tutte le chiamate agli strumenti vanno a un unico endpoint JSON-RPC 2.0 via HTTPS POST.

POST https://mcp.more.you/api

Strumenti

list_scheduled_posts

Elenca i tuoi post programmati (in coda per la pubblicazione ma non ancora inviati).

Argomenti

limitnumero ·facoltativo · predefinito 20
Numero massimo di risultati da restituire (1-100, predefinito 20).
fromstringa (ISO 8601) ·facoltativo
Timestamp ISO; restituisce solo i post programmati a partire da questo momento.

Restituisce

Un oggetto con posts: [{id, platform, content, scheduledAt, status}]. Fino a limit risultati.

Esempio

curl -X POST https://mcp.more.you/api \
  -H "Authorization: Bearer apikey_xxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":1,
       "params":{"name":"list_scheduled_posts",
                 "arguments":{"limit":5}}}'

list_drafts

Elenca le tue bozze (non ancora programmate).

Argomenti

limitnumero ·facoltativo · predefinito 20
Numero massimo di risultati da restituire (1-100, predefinito 20).

Restituisce

Un oggetto con drafts: [{id, platform, content, updatedAt}]. Fino a limit risultati.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":2,
 "params":{"name":"list_drafts","arguments":{"limit":10}}}

list_connected_accounts

Elenca gli account social collegati al tuo team.

Argomenti

Nessun argomento.

Restituisce

Un oggetto con accounts: [{platform, handle, connected, lastSyncAt}].

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":3,
 "params":{"name":"list_connected_accounts","arguments":{}}}

get_account_healthPiano a pagamento

Ottieni un riepilogo dello stato di tutte le piattaforme collegate.

Argomenti

platformenum ·facoltativo
Piattaforma social: twitter, instagram, linkedin, threads o tiktok.
windowDays7 | 30 | 90 ·facoltativo · predefinito 30
Finestra di analisi in giorni: 7, 30 o 90 (predefinito 30).

Restituisce

Un oggetto con windowDays, postsScheduled, postsPublished, postsFailed, un dettaglio byPlatform e topErrors[].

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":4,
 "params":{"name":"get_account_health",
           "arguments":{"windowDays":30}}}

create_post_draft

Crea una nuova bozza di post. Le bozze non vengono pubblicate in automatico.

Argomenti

platformenum ·obbligatorio
Piattaforma social: twitter, instagram, linkedin, threads o tiktok.
contentstringa ·obbligatorio
Testo del post (1-2200 caratteri).
mediaUrlsarray<string> ·facoltativo
Fino a 10 URL di immagini o video.
clientRequestIdstringa ·facoltativo
Chiave di idempotenza facoltativa. La stessa chiave entro 5 minuti restituisce il risultato in cache.

Restituisce

Un oggetto con la nuova bozza: {id, platform, content, status: "DRAFT", createdAt}.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":5,
 "params":{"name":"create_post_draft",
           "arguments":{"platform":"twitter",
                        "content":"Hello from MCP"}}}

update_post_draft

Aggiorna una bozza esistente. Devi indicare almeno uno tra content e mediaUrls.

Argomenti

postIdstringa ·obbligatorio
ID del post More.You ottenuto da una chiamata di elenco.
contentstringa ·facoltativo
Testo del post (1-2200 caratteri).
mediaUrlsarray<string> ·facoltativo
Fino a 10 URL di immagini o video.
clientRequestIdstringa ·facoltativo
Chiave di idempotenza facoltativa. La stessa chiave entro 5 minuti restituisce il risultato in cache.

Restituisce

Un oggetto con la bozza aggiornata: {id, platform, content, mediaUrls, status, updatedAt}.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":6,
 "params":{"name":"update_post_draft",
           "arguments":{"postId":"",
                        "content":"Updated copy"}}}

connect_channel

Genera un URL monouso che l'utente può aprire per autorizzare il collegamento a una nuova piattaforma.

Argomenti

platformenum ·obbligatorio
Piattaforma social: twitter, instagram, linkedin, threads o tiktok.

Restituisce

Un oggetto con authUrl (link monouso che l'utente apre per autorizzare), expiresAt e platform.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":7,
 "params":{"name":"connect_channel",
           "arguments":{"platform":"linkedin"}}}

schedule_post

Sposta una bozza (stato DRAFT) nella coda di pubblicazione BullMQ a un orario futuro. Idempotente entro ±60 s di scarto; rifiuta i tentativi di riprogrammare a un orario diverso senza prima un annullamento esplicito.

Argomenti

postIdstringa ·obbligatorio
ID del post More.You ottenuto da una chiamata di elenco.
scheduledAtstringa (ISO 8601) ·obbligatorio
Timestamp ISO 8601; non può essere più di 5 minuti nel passato.

Restituisce

Un oggetto con postId, scheduledAt (ISO), status: SCHEDULED.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":8,
 "params":{"name":"schedule_post",
           "arguments":{"postId":"",
                        "scheduledAt":"2026-05-10T09:00:00Z"}}}

cancel_scheduled_post

Annulla un post programmato e lo toglie dalla coda di pubblicazione. La bozza di partenza resta salvata.

Argomenti

postIdstringa ·obbligatorio
ID del post More.You ottenuto da una chiamata di elenco.

Restituisce

Un oggetto con postId e status: CANCELLED.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":9,
 "params":{"name":"cancel_scheduled_post",
           "arguments":{"postId":""}}}

delete_draft

Elimina definitivamente una bozza. Rifiuta i post che non sono DRAFT (usa cancel_scheduled_post per quelli SCHEDULED).

Argomenti

postIdstringa ·obbligatorio
ID del post More.You ottenuto da una chiamata di elenco.

Restituisce

Un oggetto con postId e deleted: true.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":10,
 "params":{"name":"delete_draft",
           "arguments":{"postId":""}}}

get_post

Restituisce il PostGroup completo per un postId, con contenuto per piattaforma, stato e timestamp.

Argomenti

postIdstringa ·obbligatorio
ID del post More.You ottenuto da una chiamata di elenco.

Restituisce

Un oggetto con postId, status, scheduledAt, createdAt, updatedAt e providers (record piattaforma → contenuto).

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":11,
 "params":{"name":"get_post",
           "arguments":{"postId":""}}}

search_posts

Cerca una sottostringa (senza distinzione tra maiuscole e minuscole) nel testo dei post del team attivo. Filtri: status, platform, limit (1-100, predefinito 20).

Argomenti

querystringa ·obbligatorio
Sottostringa da cercare (3-200 caratteri; i metacaratteri delle regex vengono sottoposti a escape).
statusenum ·facoltativo
Facoltativo: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·facoltativo
Piattaforma social: twitter, instagram, linkedin, threads o tiktok.
limitnumero ·facoltativo · predefinito 20
Numero massimo di risultati da restituire (1-100, predefinito 20).

Restituisce

Un oggetto con posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. Lo snippet contiene il contesto trovato, con i puntini di sospensione ai due lati.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":12,
 "params":{"name":"search_posts",
           "arguments":{"query":"launch","limit":10}}}

list_teams

Restituisce i team di cui l'utente autenticato è proprietario o amministratore, con il team attivo segnalato.

Argomenti

Nessun argomento.

Restituisce

Un oggetto con currentTeamId e teams: [{teamId, teamName, isCurrent}].

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":13,
 "params":{"name":"list_teams","arguments":{}}}

set_current_team

Cambia il team attivo per questo token Bearer. L'utente deve esserne membro. Viene salvato nel documento del token OAuth; la modifica in sessione ha effetto subito sugli strumenti successivi della stessa conversazione.

Argomenti

teamIdstringa ·obbligatorio
teamId di destinazione ottenuto da list_teams. L'appartenenza viene ricontrollata lato server.

Restituisce

Un oggetto con teamId, teamName, persisted (true con OAuth, false con chiave API) e una nota facoltativa.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":14,
 "params":{"name":"set_current_team",
           "arguments":{"teamId":"team_xxxxx"}}}

get_plan_limits

Legge il livello di abbonamento attuale dell'utente e le quote per livello (canali, spazio, crediti AI, pubblicazione). Disponibile in ogni piano. Utile prima degli strumenti che modificano dati, per prevedere se la chiamata sarà bloccata.

Argomenti

Nessun argomento.

Restituisce

Un oggetto con tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts, ciascuno come {limit, current, exceeded} o {limit, allowed}) e creditsAvailable ({total, subscriptionRemaining, purchasedBalance} oppure null).

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":15,
 "params":{"name":"get_plan_limits","arguments":{}}}

get_post_metrics

Recupera le metriche di interazione di un post pubblicato su ogni piattaforma a cui è stato inviato. Twitter e Instagram restituiscono metriche complete (Mi piace, retweet/condivisioni, commenti/risposte, impression); LinkedIn, Threads e TikTok restituiscono solo stato di pubblicazione e URL (la raccolta delle interazioni arriverà in una versione successiva). Un riepilogo normalizzato somma Mi piace, commenti, condivisioni e impression delle piattaforme che le hanno fornite.

Argomenti

postId ID del post More.You ottenuto da una chiamata di elenco.

Restituisce

Un oggetto con postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] e totals: {likes, comments, shares, impressions}. metrics è un oggetto con conteggi numerici per piattaforma, oppure null se la piattaforma non raccoglie ancora le interazioni.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":16,
 "params":{"name":"get_post_metrics",
           "arguments":{"postId":""}}}

get_publish_status

Scopri cosa è successo a un post programmato: stato in coda, esito o errore per piattaforma, tempo di elaborazione e job id del worker. Restituisce isScheduled=false per i post che esistono come bozze ma non sono mai entrati nella coda di pubblicazione, con un suggerimento che rimanda a schedule_post.

Argomenti

postId ID del post More.You ottenuto da una chiamata di elenco.

Restituisce

Un oggetto con postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError e results: [{platform, success, publishedPostId, publishedAt, error}]. Include hint quando isScheduled è false.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":17,
 "params":{"name":"get_publish_status",
           "arguments":{"postId":""}}}

update_brand_profile

Modifica il profilo del brand attivo dell'utente. Campi consentiti: bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Qualsiasi altro campo viene scartato senza avviso. «Attivo» viene risolto prima come predefinito del team, poi come primo profilo attivo dell'utente.

Argomenti

brandVoice Array di descrittori della voce del brand (per esempio ["professional", "concise"]).

Altri campi modificabili: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Restituisce

Un oggetto con profileId, name, updated: [nomi dei campi modificati] e i valori attuali di bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize dopo la modifica.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":18,
 "params":{"name":"update_brand_profile",
           "arguments":{"brandVoice":["professional","concise"]}}}

get_best_time_to_post Piano a pagamento

Consiglia i primi N slot (dayOfWeek, hour) per il prossimo post su una piattaforma, ordinati per interazioni per post negli ultimi 90 giorni. Twitter e Instagram restituiscono punteggi pesati sulle interazioni; LinkedIn, Threads e TikTok ordinano solo per frequenza di pubblicazione. Gli orari usano il fuso IANA indicato (predefinito UTC). Richiede un piano a pagamento.

Argomenti

platform Piattaforma social: twitter, instagram, linkedin, threads o tiktok.

timezone Nome del fuso IANA (per esempio Europe/Berlin, America/New_York). Predefinito UTC.

topN Numero di slot consigliati da restituire (1-24, predefinito 5).

Restituisce

Un oggetto con platform, timezone, sampleWindowDays, sampleSize, metricsAvailable e recommendations: [{dayOfWeek (1-7, lun=1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Include hint per i casi di avvio a freddo o di metriche non disponibili.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":19,
 "params":{"name":"get_best_time_to_post",
           "arguments":{"platform":"twitter","timezone":"Europe/Berlin","topN":5}}}

search_tools

Cerca nel catalogo degli strumenti MCP con testo libero, categoria o intento. Restituisce categorie, requiresScope, descrizioni di una riga e i tag di utilizzo che hanno corrisposto. Gratis in tutti i piani (serve a scoprire gli strumenti).

Argomenti

Tutti facoltativi. Chiama senza argomenti per elencare ogni strumento disponibile.

query Ricerca a testo libero su nomi, descrizioni e tag di utilizzo degli strumenti.

category Filtra per una categoria: posts, accounts, analytics, brand, teams, discovery, other.

Restituisce

Un oggetto con totalTools, matchCount, categories: [string[]] e tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Include hint quando non ci sono risultati o non c'è alcun filtro.

Esempio

{"jsonrpc":"2.0","method":"tools/call","id":20,
 "params":{"name":"search_tools",
           "arguments":{"query":"why did my post fail"}}}

Risorse MCP

Le risorse sono contesto di sola lettura che il client può recuperare con il metodo MCP resources/read. Claude le legge all'inizio della conversazione, così conosce account, team e brand senza che tu lo ripeta a ogni sessione.

moreyou://account/summary

Email e nome utente dell'account (così Claude può confermare su quale account sta lavorando), piano, crediti AI usati / limite, numero di bozze, di post programmati e di canali collegati. I conteggi sono limitati a 100 ciascuno per un caricamento rapido.

moreyou://channels/connected

Stessa struttura del risultato di list_connected_accounts; esposto come risorsa così Claude lo legge una volta all'inizio della conversazione (senza il passaggio di una chiamata a uno strumento).

moreyou://brand-profiles/active

Il profilo del brand attivo dell'utente (predefinito del team, altrimenti il primo profilo proprio). Restituisce solo i campi utili al modello: bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

moreyou://teams/current

Metadati del team attuale (teamId, teamName) più il conteggio totalTeamsAvailable. Abbinala a list_teams + set_current_team per cambiare team.

Flussi con nome

Scorciatoie dal menu dei comandi slash che coordinano più strumenti. Scegline una e lascia che il tuo assistente AI porti a termine un'attività in più passaggi, chiedendo conferma prima di modificare qualsiasi cosa.

/weekly-plan

Legge profilo del brand, canali collegati e post in coda, poi propone 5-10 bozze distribuite da lunedì a venerdì.

/draft-thread

Scrive un thread di 5-10 post per Twitter o Threads su un argomento o un URL che indichi, nella voce del tuo brand.

/audit-queue

Passa in rassegna i post programmati dei prossimi 7 giorni e segnala duplicati, piattaforme sovraccariche e buchi.

/channel-sweep

Confronta i canali collegati con quelli supportati e suggerisce quali collegare o aggiornare.

Endpoint di discovery e OAuth

Metadati conformi agli standard, così qualsiasi client MCP può configurarsi da solo.

  • GET /.well-known/oauth-protected-resource/api: RFC 9728
  • GET /.well-known/oauth-authorization-server: RFC 8414
  • GET /oauth/.well-known/openid-configuration: OIDC
  • POST /oauth/reg: Dynamic Client Registration (RFC 7591)
  • GET /oauth/auth: autorizzazione (PKCE-S256 obbligatorio)
  • POST /oauth/token: scambio del token

Open source

Ricette pronte da incollare e un riferimento per sviluppatori si trovano nel nostro repository pubblico della documentazione. Licenza MIT; le pull request sono benvenute. github.com/moreyouhq/moreyou-mcp

Gestisci i social da qualsiasi assistente AI

Pianifica, scrivi, programma e controlla i post su 7 piattaforme chattando con Claude, ChatGPT o Cursor. Una connessione sicura, tutte le funzioni di More.You.

Lingua