MCP

Dokumentacja narzędzi

Wszystkie narzędzia udostępniane przez serwer MCP More.You, z danymi wejściowymi, kształtem odpowiedzi i przykładem do skopiowania.

Uwierzytelnianie

Każde żądanie do https://mcp.more.you/api wymaga nagłówka Authorization z tokenem Bearer. Masz dwa sposoby, by go zdobyć.

OAuth (zalecane dla klientów AI)

Klienty AI przy pierwszym połączeniu wykonują Dynamic Client Registration, a potem prowadzą użytkownika przez ekran zgody OAuth. Strona /mcp/connect obsługuje to automatycznie. Twój klient dostaje token dostępu ważny 30 dni.

Klucz API

Dla skryptów i CI wygeneruj osobisty klucz API w aplikacji More.You w sekcji Konto → Klucze API. Klucz zaczyna się od apikey_ i jest przekazywany jak każdy inny token bearer.

Punkt końcowy

Wszystkie wywołania narzędzi trafiają do jednego punktu końcowego JSON-RPC 2.0 przez HTTPS POST.

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

Narzędzia

list_scheduled_posts

Wyświetl swoje zaplanowane posty (w kolejce do publikacji, ale jeszcze niewysłane).

Argumenty

limitliczba ·opcjonalny · domyślnie 20
Maksymalna liczba zwracanych wyników (1-100, domyślnie 20).
fromciąg znaków (ISO 8601) ·opcjonalny
Znacznik czasu ISO; zwraca tylko posty zaplanowane na ten moment lub później.

Zwraca

Obiekt z posts: [{id, platform, content, scheduledAt, status}]. Maksymalnie limit wyników.

Przykład

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

Wyświetl swoje szkice postów (jeszcze niezaplanowane).

Argumenty

limitliczba ·opcjonalny · domyślnie 20
Maksymalna liczba zwracanych wyników (1-100, domyślnie 20).

Zwraca

Obiekt z drafts: [{id, platform, content, updatedAt}]. Maksymalnie limit wyników.

Przykład

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

list_connected_accounts

Wyświetl konta społecznościowe połączone z Twoim zespołem.

Argumenty

Bez argumentów.

Zwraca

Obiekt z accounts: [{platform, handle, connected, lastSyncAt}].

Przykład

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

get_account_healthPlan płatny

Pobierz podsumowanie kondycji wszystkich połączonych platform.

Argumenty

platformenum ·opcjonalny
Platforma społecznościowa: twitter, instagram, linkedin, threads lub tiktok.
windowDays7 | 30 | 90 ·opcjonalny · domyślnie 30
Okres wsteczny w dniach: 7, 30 lub 90 (domyślnie 30).

Zwraca

Obiekt z windowDays, postsScheduled, postsPublished, postsFailed, podziałem byPlatform i topErrors[].

Przykład

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

create_post_draft

Utwórz nowy szkic posta. Szkice nie są publikowane automatycznie.

Argumenty

platformenum ·wymagany
Platforma społecznościowa: twitter, instagram, linkedin, threads lub tiktok.
contentciąg znaków ·wymagany
Treść posta (1-2200 znaków).
mediaUrlstablica<string> ·opcjonalny
Do 10 adresów URL obrazów lub wideo.
clientRequestIdciąg znaków ·opcjonalny
Opcjonalny klucz idempotentności. Ten sam klucz w ciągu 5 minut zwraca wynik z pamięci podręcznej.

Zwraca

Obiekt z nowym szkicem: {id, platform, content, status: "DRAFT", createdAt}.

Przykład

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

update_post_draft

Zaktualizuj istniejący szkic. Trzeba podać co najmniej jedno z: content lub mediaUrls.

Argumenty

postIdciąg znaków ·wymagany
Identyfikator posta More.You z wywołania list.
contentciąg znaków ·opcjonalny
Treść posta (1-2200 znaków).
mediaUrlstablica<string> ·opcjonalny
Do 10 adresów URL obrazów lub wideo.
clientRequestIdciąg znaków ·opcjonalny
Opcjonalny klucz idempotentności. Ten sam klucz w ciągu 5 minut zwraca wynik z pamięci podręcznej.

Zwraca

Obiekt z zaktualizowanym szkicem: {id, platform, content, mediaUrls, status, updatedAt}.

Przykład

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

connect_channel

Wygeneruj jednorazowy adres URL, który użytkownik może otworzyć, by autoryzować połączenie z nową platformą.

Argumenty

platformenum ·wymagany
Platforma społecznościowa: twitter, instagram, linkedin, threads lub tiktok.

Zwraca

Obiekt z authUrl (jednorazowy link, który użytkownik otwiera, by autoryzować), expiresAt i platform.

Przykład

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

schedule_post

Przenieś szkic (status DRAFT) do kolejki publikacji BullMQ na przyszły znacznik czasu. Idempotentne w granicach ±60 s; odrzuca próby ponownego zaplanowania na inny czas bez wcześniejszego jawnego anulowania.

Argumenty

postIdciąg znaków ·wymagany
Identyfikator posta More.You z wywołania list.
scheduledAtciąg znaków (ISO 8601) ·wymagany
Znacznik czasu ISO 8601; nie może być więcej niż 5 minut w przeszłości.

Zwraca

Obiekt z postId, scheduledAt (ISO), status: SCHEDULED.

Przykład

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

cancel_scheduled_post

Anuluj zaplanowany post i usuń go z kolejki publikacji. Szkic źródłowy zostaje zachowany.

Argumenty

postIdciąg znaków ·wymagany
Identyfikator posta More.You z wywołania list.

Zwraca

Obiekt z postId i status: CANCELLED.

Przykład

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

delete_draft

Trwale usuń szkic posta. Odrzuca posty inne niż DRAFT (dla SCHEDULED użyj cancel_scheduled_post).

Argumenty

postIdciąg znaków ·wymagany
Identyfikator posta More.You z wywołania list.

Zwraca

Obiekt z postId i deleted: true.

Przykład

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

get_post

Zwróć pełny PostGroup dla danego postId z treścią według platform, statusem i znacznikami czasu.

Argumenty

postIdciąg znaków ·wymagany
Identyfikator posta More.You z wywołania list.

Zwraca

Obiekt z postId, status, scheduledAt, createdAt, updatedAt i providers (rekord platforma → treść).

Przykład

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

search_posts

Wyszukiwanie fragmentu tekstu (bez rozróżniania wielkości liter) w treści postów aktywnego zespołu. Filtry: status, platform, limit (1-100, domyślnie 20).

Argumenty

queryciąg znaków ·wymagany
Fragment do wyszukania (3-200 znaków; metaznaki wyrażeń regularnych są escapowane).
statusenum ·opcjonalny
Opcjonalnie: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·opcjonalny
Platforma społecznościowa: twitter, instagram, linkedin, threads lub tiktok.
limitliczba ·opcjonalny · domyślnie 20
Maksymalna liczba zwracanych wyników (1-100, domyślnie 20).

Zwraca

Obiekt z posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. Snippet zawiera pasujący kontekst z wielokropkiem po obu stronach.

Przykład

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

list_teams

Zwróć zespoły, których uwierzytelniony użytkownik jest właścicielem lub administratorem, z oznaczonym aktualnie aktywnym zespołem.

Argumenty

Bez argumentów.

Zwraca

Obiekt z currentTeamId i teams: [{teamId, teamName, isCurrent}].

Przykład

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

set_current_team

Przełącz aktywny zespół dla tego tokena Bearer. Użytkownik musi być członkiem. Zapisywane w dokumencie tokena OAuth; zmiana w sesji działa natychmiast dla kolejnych narzędzi w tej samej rozmowie.

Argumenty

teamIdciąg znaków ·wymagany
Docelowy teamId z list_teams. Członkostwo jest ponownie sprawdzane po stronie serwera.

Zwraca

Obiekt z teamId, teamName, persisted (true dla OAuth, false dla klucza API) i opcjonalną notatką.

Przykład

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

get_plan_limits

Odczytaj aktualny poziom subskrypcji użytkownika i limity w poszczególnych poziomach (kanały, miejsce, kredyty AI, publikowanie). Dostępne w każdym planie. Przydatne przed narzędziami zmieniającymi dane, by przewidzieć, czy wywołanie zostanie zablokowane.

Argumenty

Bez argumentów.

Zwraca

Obiekt z tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts, każde jako {limit, current, exceeded} lub {limit, allowed}) i creditsAvailable ({total, subscriptionRemaining, purchasedBalance} lub null).

Przykład

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

get_post_metrics

Pobierz metryki zaangażowania opublikowanego posta ze wszystkich platform, na które został wysłany. Twitter i Instagram zwracają pełne metryki (polubienia, retweety/udostępnienia, komentarze/odpowiedzi, wyświetlenia); LinkedIn, Threads i TikTok zwracają tylko status publikacji i adres URL (zbieranie zaangażowania odłożono do późniejszej wersji). Znormalizowana suma łączy polubienia/komentarze/udostępnienia/wyświetlenia z platform, które je zgłosiły.

Argumenty

postId Identyfikator posta More.You z wywołania list.

Zwraca

Obiekt z postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] i totals: {likes, comments, shares, impressions}. metrics to obiekt z liczbami dla każdej platformy lub null, gdy platforma jeszcze nie zbiera zaangażowania.

Przykład

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

get_publish_status

Sprawdź, co stało się z zaplanowanym postem: stan w kolejce, sukces/błąd na każdej platformie, czas przetwarzania i identyfikator zadania workera. Zwraca isScheduled=false dla postów, które istnieją jako szkice, ale nigdy nie trafiły do kolejki publikacji, z podpowiedzią wskazującą schedule_post.

Argumenty

postId Identyfikator posta More.You z wywołania list.

Zwraca

Obiekt z postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError i results: [{platform, success, publishedPostId, publishedAt, error}]. Zawiera hint, gdy isScheduled ma wartość false.

Przykład

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

update_brand_profile

Zmień aktywny profil marki użytkownika. Dozwolone pola: bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Wszystko inne jest po cichu pomijane. „Aktywny” oznacza najpierw domyślny profil zespołu, a potem pierwszy własny aktywny profil użytkownika.

Argumenty

brandVoice Tablica opisów głosu marki (np. ["professional", "concise"]).

Inne pola do zmiany: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Zwraca

Obiekt z profileId, name, updated: [nazwy zmienionych pól] oraz aktualnymi wartościami bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize po zmianie.

Przykład

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

get_best_time_to_post Plan płatny

Zarekomenduj N najlepszych terminów (dayOfWeek, hour) dla następnego posta na wybranej platformie, uszeregowanych według zaangażowania na post z ostatnich 90 dni. Twitter i Instagram zwracają wyniki ważone zaangażowaniem; LinkedIn, Threads i TikTok są szeregowane tylko według częstotliwości postów. Godziny podawane są w przekazanej strefie czasowej IANA (domyślnie UTC). Wymagany płatny plan.

Argumenty

platform Platforma społecznościowa: twitter, instagram, linkedin, threads lub tiktok.

timezone Nazwa strefy czasowej IANA (np. Europe/Berlin, America/New_York). Domyślnie UTC.

topN Liczba zwracanych rekomendacji terminów (1-24, domyślnie 5).

Zwraca

Obiekt z platform, timezone, sampleWindowDays, sampleSize, metricsAvailable i recommendations: [{dayOfWeek (1-7, Mon=1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Zawiera hint dla zimnego startu lub braku metryk.

Przykład

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

Przeszukaj katalog narzędzi MCP według zapytania tekstowego, kategorii lub zamiaru. Zwraca kategorie, requiresScope, jednozdaniowe opisy i tagi przypadków użycia, które pasowały. Za darmo we wszystkich planach (powierzchnia wyszukiwania).

Argumenty

Wszystko opcjonalne. Wywołaj bez argumentów, aby wyświetlić wszystkie dostępne narzędzia.

query Wyszukiwanie tekstowe po nazwach narzędzi, opisach i tagach przypadków użycia.

category Filtr do jednej kategorii: posts, accounts, analytics, brand, teams, discovery, other.

Zwraca

Obiekt z totalTools, matchCount, categories: [string[]] i tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Zawiera hint, gdy brak dopasowań lub filtra.

Przykład

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

Zasoby MCP

Zasoby to kontekst tylko do odczytu, który klient może pobrać metodą MCP resources/read. Claude pobiera je na początku rozmowy, więc ma kontekst konta, zespołu i marki bez pytania Cię o to w każdej sesji.

moreyou://account/summary

E-mail i nick konta (żeby Claude mógł potwierdzić, na którym koncie działa), plan, wykorzystane kredyty AI / limit, liczba szkiców, liczba zaplanowanych postów i liczba połączonych kanałów. Liczniki mają limit 100 każdy dla szybkiego ładowania.

moreyou://channels/connected

Ten sam kształt co wynik list_connected_accounts; udostępniony jako zasób, więc Claude pobiera go raz na początku rozmowy (bez dodatkowego wywołania narzędzia).

moreyou://brand-profiles/active

Aktywny profil marki użytkownika (domyślny zespołu, a w razie braku pierwszy własny profil). Zwraca tylko pola istotne dla LLM: bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

moreyou://teams/current

Metadane bieżącego zespołu (teamId, teamName) oraz liczba totalTeamsAvailable. Połącz z list_teams + set_current_team, aby przełączyć.

Nazwane przepływy

Skróty w menu poleceń, które łączą kilka narzędzi. Wybierz jeden, a Twój asystent AI przeprowadzi Cię przez zadanie w wielu krokach, prosząc o potwierdzenie przed jakąkolwiek zmianą.

/weekly-plan

Odczytaj profil marki, połączone kanały i zaplanowane posty, a potem zaproponuj 5-10 szkiców rozłożonych od poniedziałku do piątku.

/draft-thread

Napisz wątek na Twitterze lub w Threads, złożony z 5-10 postów, na temat lub adres URL, który podasz, w głosie Twojej marki.

/audit-queue

Przejrzyj zaplanowane posty z najbliższych 7 dni i oznacz powtórzenia, przeciążenie platform i luki.

/channel-sweep

Porównaj połączone kanały z obsługiwanym zestawem i zasugeruj, które połączyć lub odświeżyć.

Punkty końcowe wykrywania i OAuth

Metadane zgodne ze standardami, dzięki którym każdy klient MCP może skonfigurować się automatycznie.

  • 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: autoryzacja (wymagane PKCE-S256)
  • POST /oauth/token: wymiana tokena

Otwarty kod

Gotowe przepisy do wklejenia i dokumentacja dla programistów znajdują się w naszym publicznym repozytorium dokumentacji. Licencja MIT; pull requesty mile widziane. github.com/moreyouhq/moreyou-mcp

Zarządzaj social mediami przez dowolnego asystenta AI

Planuj, pisz, harmonogramuj i audytuj posty na 7 platformach, rozmawiając z Claude, ChatGPT lub Cursorem. Jedno bezpieczne połączenie, każda funkcja More.You.

Język