MCP

Toolreferentie

Elke tool die de More.You MCP-server aanbiedt, met invoer, uitvoer en een voorbeeld om te kopiëren.

Authenticatie

Elk verzoek aan https://mcp.more.you/api vereist een Authorization-header met een Bearer-token. Je hebt twee manieren om er een te krijgen.

OAuth (aanbevolen voor AI-clients)

AI-clients voeren bij de eerste verbinding Dynamic Client Registration uit en leiden de gebruiker daarna door een OAuth-toestemmingsscherm. De pagina /mcp/connect regelt dit automatisch. Je client krijgt een toegangstoken van 30 dagen.

API-sleutel

Genereer voor scripts en CI een persoonlijke API-sleutel in de More.You-app onder Account → API Keys. De sleutel begint met apikey_ en wordt net als elk ander token als bearer-token doorgegeven.

Endpoint

Alle tool-aanroepen gaan naar één JSON-RPC 2.0-endpoint via HTTPS POST.

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

Tools

list_scheduled_posts

Toon je ingeplande posts (in de wachtrij om te publiceren, maar nog niet verzonden).

Argumenten

limitnumber ·optioneel · standaard 20
Maximaal aantal resultaten (1-100, standaard 20).
fromstring (ISO 8601) ·optioneel
ISO-tijdstempel; geeft alleen posts terug die op of na dit moment zijn gepland.

Geeft terug

Een object met posts: [{id, platform, content, scheduledAt, status}]. Maximaal limit resultaten.

Voorbeeld

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

Toon je conceptposts (nog niet gepland).

Argumenten

limitnumber ·optioneel · standaard 20
Maximaal aantal resultaten (1-100, standaard 20).

Geeft terug

Een object met drafts: [{id, platform, content, updatedAt}]. Maximaal limit resultaten.

Voorbeeld

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

list_connected_accounts

Toon de social accounts die aan je team zijn gekoppeld.

Argumenten

Geen argumenten.

Geeft terug

Een object met accounts: [{platform, handle, connected, lastSyncAt}].

Voorbeeld

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

get_account_healthBetaald abonnement

Haal een gezondheidssamenvatting op voor alle gekoppelde platforms.

Argumenten

platformenum ·optioneel
Social platform: twitter, instagram, linkedin, threads of tiktok.
windowDays7 | 30 | 90 ·optioneel · standaard 30
Terugkijkperiode in dagen: 7, 30 of 90 (standaard 30).

Geeft terug

Een object met windowDays, postsScheduled, postsPublished, postsFailed, een byPlatform-uitsplitsing en topErrors[].

Voorbeeld

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

create_post_draft

Maak een nieuwe conceptpost. Concepten worden niet automatisch gepubliceerd.

Argumenten

platformenum ·verplicht
Social platform: twitter, instagram, linkedin, threads of tiktok.
contentstring ·verplicht
Tekst van de post (1-2200 tekens).
mediaUrlsarray<string> ·optioneel
Maximaal 10 afbeeldings- of video-URL's.
clientRequestIdstring ·optioneel
Optionele idempotentiesleutel. Dezelfde sleutel binnen 5 minuten geeft het gecachte resultaat terug.

Geeft terug

Een object met het nieuwe concept: {id, platform, content, status: "DRAFT", createdAt}.

Voorbeeld

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

update_post_draft

Werk een bestaand concept bij. Je moet minstens content of mediaUrls meegeven.

Argumenten

postIdstring ·verplicht
De More.You-post-id uit een list-aanroep.
contentstring ·optioneel
Tekst van de post (1-2200 tekens).
mediaUrlsarray<string> ·optioneel
Maximaal 10 afbeeldings- of video-URL's.
clientRequestIdstring ·optioneel
Optionele idempotentiesleutel. Dezelfde sleutel binnen 5 minuten geeft het gecachte resultaat terug.

Geeft terug

Een object met het bijgewerkte concept: {id, platform, content, mediaUrls, status, updatedAt}.

Voorbeeld

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

connect_channel

Maak een eenmalige URL die de gebruiker kan openen om een nieuwe platformkoppeling te autoriseren.

Argumenten

platformenum ·verplicht
Social platform: twitter, instagram, linkedin, threads of tiktok.

Geeft terug

Een object met authUrl (eenmalige link die de gebruiker opent om te autoriseren), expiresAt en platform.

Voorbeeld

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

schedule_post

Zet een concept (status DRAFT) op een later tijdstip in de BullMQ-publicatiewachtrij. Idempotent binnen ±60 s afwijking; weigert pogingen om op een ander tijdstip opnieuw te plannen zonder eerst expliciet te annuleren.

Argumenten

postIdstring ·verplicht
De More.You-post-id uit een list-aanroep.
scheduledAtstring (ISO 8601) ·verplicht
ISO 8601-tijdstempel; mag niet meer dan 5 minuten in het verleden liggen.

Geeft terug

Een object met postId, scheduledAt (ISO), status: SCHEDULED.

Voorbeeld

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

cancel_scheduled_post

Annuleer een ingeplande post en haal hem uit de publicatiewachtrij. Het onderliggende concept blijft bewaard.

Argumenten

postIdstring ·verplicht
De More.You-post-id uit een list-aanroep.

Geeft terug

Een object met postId en status: CANCELLED.

Voorbeeld

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

delete_draft

Verwijder een conceptpost definitief. Weigert posts die geen DRAFT zijn (gebruik cancel_scheduled_post voor SCHEDULED).

Argumenten

postIdstring ·verplicht
De More.You-post-id uit een list-aanroep.

Geeft terug

Een object met postId en deleted: true.

Voorbeeld

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

get_post

Geef de volledige PostGroup voor een postId terug, met content per provider en platform, status en tijdstempels.

Argumenten

postIdstring ·verplicht
De More.You-post-id uit een list-aanroep.

Geeft terug

Een object met postId, status, scheduledAt, createdAt, updatedAt en providers (record van platform → content).

Voorbeeld

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

search_posts

Zoek op deeltekst (niet hoofdlettergevoelig) in de postinhoud van het actieve team. Filters: status, platform, limit (1-100, standaard 20).

Argumenten

querystring ·verplicht
Deeltekst om op te zoeken (3-200 tekens; regex-metatekens worden geëscaped).
statusenum ·optioneel
Optioneel: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·optioneel
Social platform: twitter, instagram, linkedin, threads of tiktok.
limitnumber ·optioneel · standaard 20
Maximaal aantal resultaten (1-100, standaard 20).

Geeft terug

Een object met posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. De snippet bevat de overeenkomende context met een weglatingsteken aan beide kanten.

Voorbeeld

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

list_teams

Geef de teams terug die de ingelogde gebruiker bezit of beheert, met het huidige actieve team gemarkeerd.

Argumenten

Geen argumenten.

Geeft terug

Een object met currentTeamId en teams: [{teamId, teamName, isCurrent}].

Voorbeeld

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

set_current_team

Wissel het actieve team voor dit Bearer-token. De gebruiker moet lid zijn. Wordt bewaard in het OAuth-tokendocument; een wijziging binnen de sessie is direct van kracht voor volgende tools in hetzelfde gesprek.

Argumenten

teamIdstring ·verplicht
Doel-teamId uit list_teams. Het lidmaatschap wordt server-side opnieuw gecontroleerd.

Geeft terug

Een object met teamId, teamName, persisted (true bij OAuth, false bij een API-sleutel) en een optionele note.

Voorbeeld

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

get_plan_limits

Lees het huidige abonnementsniveau van de gebruiker en de quota per niveau (kanalen, opslag, AI-credits, posten). Beschikbaar bij elk abonnement. Handig vóór tools die iets wijzigen, om te voorspellen of de aanroep wordt geblokkeerd.

Argumenten

Geen argumenten.

Geeft terug

Een object met tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts elk als {limit, current, exceeded} of {limit, allowed}) en creditsAvailable ({total, subscriptionRemaining, purchasedBalance} of null).

Voorbeeld

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

get_post_metrics

Haal betrokkenheidsstatistieken op voor een gepubliceerde post op elk platform waarnaar hij is verzonden. Twitter en Instagram geven gevulde statistieken terug (likes, retweets/shares, reacties, vertoningen); LinkedIn, Threads en TikTok geven alleen de publicatiestatus en URL terug (verzamelen van betrokkenheid volgt in een latere release). Een genormaliseerd totaal telt likes/reacties/shares/vertoningen op over de platforms die ze rapporteerden.

Argumenten

postId De More.You-post-id uit een list-aanroep.

Geeft terug

Een object met postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] en totals: {likes, comments, shares, impressions}. metrics is een object met aantallen per platform, of null als het platform nog geen betrokkenheid verzamelt.

Voorbeeld

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

get_publish_status

Onderzoek wat er met een ingeplande post is gebeurd: wachtrijstatus, succes of fout per platform, verwerkingstijd en de job-id van de worker. Geeft isScheduled=false terug voor posts die als concept bestaan maar nooit in de publicatiewachtrij zijn gezet, met een hint die naar schedule_post verwijst.

Argumenten

postId De More.You-post-id uit een list-aanroep.

Geeft terug

Een object met postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError en results: [{platform, success, publishedPostId, publishedAt, error}]. Bevat hint wanneer isScheduled false is.

Voorbeeld

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

update_brand_profile

Pas het actieve merkprofiel van de gebruiker aan. Toegestane velden: bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Al het andere wordt stilzwijgend genegeerd. “Active” wordt eerst opgelost als teamstandaard, daarna als het eerste eigen actieve profiel van de gebruiker.

Argumenten

brandVoice Array van omschrijvingen van de merkstem (bijv. ["professional", "concise"]).

Overige aanpasbare velden: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Geeft terug

Een object met profileId, name, updated: [namen van de aangepaste velden] en de huidige waarden van bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize na de aanpassing.

Voorbeeld

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

get_best_time_to_post Betaald abonnement

Geef de top N (dayOfWeek, hour)-momenten voor de volgende post op een bepaald platform, gerangschikt op betrokkenheid per post over de afgelopen 90 dagen. Twitter en Instagram geven scores gewogen op betrokkenheid; LinkedIn, Threads en TikTok rangschikken alleen op postfrequentie. Tijden staan in de opgegeven IANA-tijdzone (standaard UTC). Vereist een betaald abonnement.

Argumenten

platform Social platform: twitter, instagram, linkedin, threads of tiktok.

timezone Naam van de IANA-tijdzone (bijv. Europe/Berlin, America/New_York). Standaard UTC.

topN Aantal aanbevolen momenten dat wordt teruggegeven (1-24, standaard 5).

Geeft terug

Een object met platform, timezone, sampleWindowDays, sampleSize, metricsAvailable en recommendations: [{dayOfWeek (1-7, ma=1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Bevat hint voor een koude start of als statistieken niet beschikbaar zijn.

Voorbeeld

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

Doorzoek de MCP-toolcatalogus op vrije tekst, categorie of doel. Geeft categorieën, requiresScope, beschrijvingen van één regel en de gebruiksscenario-tags die overeenkwamen. Gratis bij elk abonnement (ontdekkingsfunctie).

Argumenten

Alles optioneel. Roep aan zonder argumenten om alle beschikbare tools te tonen.

query Zoek op vrije tekst in toolnamen, beschrijvingen en gebruiksscenario-tags.

category Filter op één categorie: posts, accounts, analytics, brand, teams, discovery, other.

Geeft terug

Een object met totalTools, matchCount, categories: [string[]] en tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Bevat hint als er geen resultaat of geen filter is.

Voorbeeld

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

MCP Resources

Resources zijn alleen-lezen context die de client kan ophalen via de MCP-methode resources/read. Claude haalt ze aan het begin van een gesprek op, zodat het account-, team- en merkcontext heeft zonder dat je het elke sessie opnieuw vraagt.

moreyou://account/summary

E-mailadres en gebruikersnaam van het account (zodat Claude kan bevestigen met welk account het werkt), abonnement, gebruikte AI-credits / limiet, aantal concepten, aantal ingeplande posts en aantal gekoppelde kanalen. Aantallen zijn voor een snelle start gemaximeerd op 100.

moreyou://channels/connected

Dezelfde vorm als het resultaat van list_connected_accounts; aangeboden als resource zodat Claude hem één keer aan het begin van het gesprek ophaalt (zonder tool-aanroep).

moreyou://brand-profiles/active

Het actieve merkprofiel van de gebruiker (teamstandaard, anders het eerste eigen profiel). Geeft alleen velden terug die voor een LLM relevant zijn: bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

moreyou://teams/current

Metadata van het huidige team (teamId, teamName) plus het aantal beschikbare teams (totalTeamsAvailable). Combineer met list_teams + set_current_team om te wisselen.

Vaste workflows

Snelkoppelingen in het slash-menu die meerdere tools aansturen. Kies er een en laat je AI-assistent een taak in meerdere stappen doorlopen, met bevestiging voordat er iets wordt aangepast.

/weekly-plan

Lees merkprofiel, gekoppelde kanalen en ingeplande posts en stel dan 5-10 concepten voor, verdeeld van maandag tot vrijdag.

/draft-thread

Schrijf een Twitter- of Threads-thread van 5-10 posts over een onderwerp of URL die jij opgeeft, in de stem van je merk.

/audit-queue

Loop de ingeplande posts van de komende 7 dagen langs en markeer dubbelen, overbelasting van een platform en gaten.

/channel-sweep

Vergelijk gekoppelde kanalen met de ondersteunde set en stel voor welke je moet koppelen of vernieuwen.

Discovery- en OAuth-endpoints

Metadata volgens de standaarden, zodat elke MCP-client zichzelf automatisch kan instellen.

  • 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: autorisatie (PKCE-S256 vereist)
  • POST /oauth/token: token-uitwisseling

Open source

Kant-en-klare recepten en een referentie voor ontwikkelaars staan in onze openbare docs-repo. MIT-licentie; pull requests welkom. github.com/moreyouhq/moreyou-mcp

Beheer je social media met elke AI-assistent

Bedenk, schrijf, plan en controleer posts op 7 platforms door te chatten met Claude, ChatGPT of Cursor. Eén veilige verbinding, alle functies van More.You.

Taal