MCP

Справочник по инструментам

Полный список инструментов сервера MCP More.You с описанием входных параметров, структуры ответа и готовым примером для каждого.

Аутентификация

Каждый запрос к https://mcp.more.you/api требует заголовок Authorization с Bearer-токеном. Получить токен можно двумя способами.

OAuth (рекомендуется для ИИ-клиентов)

ИИ-клиенты при первом подключении выполняют Dynamic Client Registration и проводят пользователя через экран согласия OAuth. Страница /mcp/connect делает это автоматически, и клиент получает токен доступа на 30 дней.

API-ключ

Для скриптов и CI создайте персональный API-ключ в приложении More.You в разделе Аккаунт → API-ключи. Ключ начинается с apikey_ и передаётся как обычный Bearer-токен.

Эндпоинт

Все вызовы инструментов идут на один JSON-RPC 2.0 endpoint по HTTPS POST.

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

Инструменты

list_scheduled_posts

Список ваших запланированных публикаций (поставленных в очередь на публикацию, но ещё не отправленных).

Аргументы

limitnumber ·необязательный · по умолчанию 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).
fromstring (ISO 8601) ·необязательный
ISO-метка времени: возвращать только публикации, запланированные не ранее этого момента.

Возвращает

Объект с posts: [{id, platform, content, scheduledAt, status}]. Не больше limit результатов.

Пример

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

Список ваших черновиков (ещё не запланированных).

Аргументы

limitnumber ·необязательный · по умолчанию 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).

Возвращает

Объект с drafts: [{id, platform, content, updatedAt}]. Не больше limit результатов.

Пример

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

list_connected_accounts

Список социальных аккаунтов, подключённых к вашей команде.

Аргументы

Без аргументов.

Возвращает

Объект с accounts: [{platform, handle, connected, lastSyncAt}].

Пример

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

get_account_healthПлатный план

Сводка состояния по всем подключённым платформам.

Аргументы

platformenum ·необязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
windowDays7 | 30 | 90 ·необязательный · по умолчанию 30
Период анализа в днях: 7, 30 или 90 (по умолчанию 30).

Возвращает

Объект с windowDays, postsScheduled, postsPublished, postsFailed, разбивкой byPlatform и topErrors[].

Пример

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

create_post_draft

Создание нового черновика публикации. Черновики не публикуются автоматически.

Аргументы

platformenum ·обязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
contentstring ·обязательный
Текст публикации (1-2200 символов).
mediaUrlsarray<string> ·необязательный
До 10 URL-адресов изображений или видео.
clientRequestIdstring ·необязательный
Необязательный ключ идемпотентности. Одинаковый ключ в течение 5 минут возвращает кэшированный результат.

Возвращает

Объект с новым черновиком: {id, platform, content, status: "DRAFT", createdAt}.

Пример

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

update_post_draft

Обновление существующего черновика. Необходимо указать хотя бы одно из полей: content или mediaUrls.

Аргументы

postIdstring ·обязательный
Идентификатор публикации More.You из результатов запроса списка.
contentstring ·необязательный
Текст публикации (1-2200 символов).
mediaUrlsarray<string> ·необязательный
До 10 URL-адресов изображений или видео.
clientRequestIdstring ·необязательный
Необязательный ключ идемпотентности. Одинаковый ключ в течение 5 минут возвращает кэшированный результат.

Возвращает

Объект с обновлённым черновиком: {id, platform, content, mediaUrls, status, updatedAt}.

Пример

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

connect_channel

Генерация одноразового URL, который пользователь может открыть для авторизации подключения новой платформы.

Аргументы

platformenum ·обязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.

Возвращает

Объект с authUrl (одноразовая ссылка, которую пользователь открывает для авторизации), expiresAt и platform.

Пример

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

schedule_post

Перемещает черновик (статус DRAFT) в очередь публикации BullMQ на будущий timestamp. Идемпотентен в пределах дрейфа ±60 секунд; отклоняет попытки перепланирования на другое время без явной отмены.

Аргументы

postIdstring ·обязательный
Идентификатор публикации More.You из результатов запроса списка.
scheduledAtstring (ISO 8601) ·обязательный
ISO 8601 timestamp; не может быть более чем на 5 минут в прошлом.

Возвращает

Объект с postId, scheduledAt (ISO), status: SCHEDULED.

Пример

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

cancel_scheduled_post

Отменяет запланированный пост и удаляет его из очереди публикации. Базовый черновик сохраняется.

Аргументы

postIdstring ·обязательный
Идентификатор публикации More.You из результатов запроса списка.

Возвращает

Объект с postId и status: CANCELLED.

Пример

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

delete_draft

Окончательно удаляет черновик. Отклоняет посты не в статусе DRAFT (используйте cancel_scheduled_post для SCHEDULED).

Аргументы

postIdstring ·обязательный
Идентификатор публикации More.You из результатов запроса списка.

Возвращает

Объект с postId и deleted: true.

Пример

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

get_post

Возвращает полный PostGroup для postId с контентом по платформам + статус + timestamps.

Аргументы

postIdstring ·обязательный
Идентификатор публикации More.You из результатов запроса списка.

Возвращает

Объект с postId, status, scheduledAt, createdAt, updatedAt и providers (карта платформа → контент).

Пример

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

search_posts

Подстрочный поиск (без учёта регистра) по контенту постов активной команды. Фильтры: status, platform, limit (1-100, по умолчанию 20).

Аргументы

querystring ·обязательный
Подстрока для поиска (3-200 символов; regex-метасимволы экранируются).
statusenum ·необязательный
Опционально: DRAFT | SCHEDULED | PUBLISHED | FAILED | CANCELLED.
platformenum ·необязательный
Социальная платформа: twitter, instagram, linkedin, threads или tiktok.
limitnumber ·необязательный · по умолчанию 20
Максимальное количество возвращаемых результатов (1-100, по умолчанию 20).

Возвращает

Объект с posts: [{postId, status, platforms, snippet, scheduledAt, updatedAt}]. Поле snippet содержит найденный контекст с многоточием с обеих сторон.

Пример

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

list_teams

Возвращает команды, которыми владеет или администрирует аутентифицированный пользователь, с пометкой активной команды.

Аргументы

Без аргументов.

Возвращает

Объект с currentTeamId и teams: [{teamId, teamName, isCurrent}].

Пример

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

set_current_team

Переключает активную команду для этого Bearer-токена. Пользователь должен быть участником. Сохраняется в OAuth-токене; in-session-мутация делает эффект немедленным для последующих инструментов в той же беседе.

Аргументы

teamIdstring ·обязательный
Целевой teamId из list_teams. Членство повторно проверяется на сервере.

Возвращает

Объект с teamId, teamName, persisted (true для OAuth, false для API-ключа) и опциональным note.

Пример

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

get_plan_limits

Возвращает текущий тариф пользователя и квоты по тарифу (каналы, хранилище, AI-кредиты, публикация). Доступен на любом плане. Полезен перед изменяющими инструментами, чтобы предсказать, будет ли вызов заблокирован.

Аргументы

Без аргументов.

Возвращает

Объект с tier, tierDisplayName, isPaid, isTrial, upgradeUrl, limits (channels/storage/aiCalls/posts, каждое в виде {limit, current, exceeded} или {limit, allowed}) и creditsAvailable ({total, subscriptionRemaining, purchasedBalance} или null).

Пример

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

get_post_metrics

Получает метрики вовлечённости для опубликованного поста по каждой платформе, на которую он был отправлен. Twitter и Instagram возвращают заполненные метрики (лайки, ретвиты/репосты, комментарии/ответы, показы); LinkedIn, Threads и TikTok возвращают только статус публикации и URL (сбор метрик вовлечённости отложен на более поздний релиз). Нормализованный сводный totals суммирует лайки/комментарии/репосты/показы по тем платформам, которые сообщили данные.

Аргументы

postId ID поста в More.You из вызова list.

Возвращает

Объект с postId, status, providers: [{platform, publishedPostId, publishedUrl, publishedAt, status, metrics}] и totals: {likes, comments, shares, impressions}. metrics: объект с числовыми показателями по каждой платформе или null, если платформа пока не собирает данные о вовлечённости.

Пример

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

get_publish_status

Диагностирует запланированную публикацию: статус очереди, успех/ошибка по платформам, время обработки и jobId воркера. Возвращает isScheduled=false для публикаций, которые существуют как черновики, но не были перемещены в очередь публикации, с подсказкой на schedule_post.

Аргументы

postId ID поста в More.You из вызова list.

Возвращает

Объект с postId, isScheduled, status, scheduledAt, publishedAt, platforms, processingTimeMs, jobId, topLevelError и results: [{platform, success, publishedPostId, publishedAt, error}]. Включает hint, если isScheduled равно false.

Пример

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

update_brand_profile

Обновляет активный профиль бренда пользователя. Разрешённые поля: bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize. Всё остальное молча отбрасывается. Разрешает "активный" сначала как дефолт команды, затем как первый активный профиль пользователя.

Аргументы

brandVoice Массив описаний голоса бренда (например, ["professional", "concise"]).

Другие поля, которые можно изменить: bio, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize.

Возвращает

Объект с profileId, name, updated: [имена полей, которые были изменены] и текущими значениями bio, brandVoice, personalityTraits, mainThemes, expertiseAreas, preferredHashtags, audienceSize после изменения.

Пример

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

get_best_time_to_post Платный план

Рекомендует лучшие N слотов (деньНедели, час) для следующей публикации на платформе, отсортированные по вовлечённости на пост за последние 90 дней. Twitter и Instagram возвращают взвешенные по вовлечённости оценки; LinkedIn, Threads, TikTok сортируют только по частоте. Время в указанной IANA-таймзоне (по умолчанию UTC). Требуется платный план.

Аргументы

platform Соцсеть: twitter, instagram, linkedin, threads или tiktok.

timezone Название часового пояса IANA (например, Europe/Berlin, America/New_York). По умолчанию UTC.

topN Сколько рекомендуемых слотов вернуть (1-24, по умолчанию 5).

Возвращает

Объект с platform, timezone, sampleWindowDays, sampleSize, metricsAvailable и recommendations: [{dayOfWeek (1-7, пн = 1), dayLabel, hour (0-23), score, basedOn: {posts, avgEngagement}}]. Включает hint, если данных мало или метрики недоступны.

Пример

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

Ищет в каталоге инструментов MCP по тексту, категории или намерению. Возвращает категории, requiresScope, однострочные описания и теги вариантов использования, которые совпали. Доступно на любом плане (поверхность обнаружения).

Аргументы

Все параметры необязательные. Вызовите без аргументов, чтобы получить список всех доступных инструментов.

query Поиск по тексту: названия инструментов, описания и теги сценариев использования.

category Фильтр по одной категории: posts, accounts, analytics, brand, teams, discovery, other.

Возвращает

Объект с totalTools, matchCount, categories: [string[]] и tools: [{name, category, requiresScope, description, useCases, matchedOn: [name|category|description|use_case]}]. Включает hint, если совпадений нет или фильтр не задан.

Пример

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

MCP-ресурсы

Ресурсы представляют собой контекст только для чтения, который клиент может получить через MCP-метод resources/read. Claude загружает их в начале каждой беседы, поэтому имеет контекст аккаунта/команды/бренда без необходимости каждый раз объяснять заново.

moreyou://account/summary

E-mail и имя пользователя аккаунта (чтобы Claude мог подтвердить, с каким аккаунтом он работает), план, использованные AI-кредиты / лимит, количество черновиков, количество запланированных, подключённые каналы. Подсчёты ограничены 100 каждый для быстрой загрузки.

moreyou://channels/connected

Та же форма, что и результат list_connected_accounts; экспонировано как ресурс, чтобы Claude загрузил его один раз в начале беседы (без round-trip вызова инструмента).

moreyou://brand-profiles/active

Активный профиль бренда пользователя (default команды, с fallback на первый собственный профиль). Возвращает только LLM-релевантные поля: bio, expertiseAreas, personalityTraits, brandVoice, mainThemes, audienceSize, preferredHashtags.

moreyou://teams/current

Метаданные текущей команды (teamId, teamName) плюс totalTeamsAvailable. Используйте вместе с list_teams + set_current_team для переключения.

Именованные рабочие сценарии

Команды слэш-меню, которые объединяют несколько инструментов. Выберите сценарий, и ИИ-ассистент проведёт вас через многошаговую задачу, запрашивая подтверждение перед каждым изменением.

/weekly-plan

Анализирует профиль бренда, подключённые каналы и очередь публикаций, затем предлагает 5-10 черновиков, распределённых с понедельника по пятницу.

/draft-thread

Создаёт тред из 5-10 постов для Twitter или Threads по заданной теме или ссылке в голосе вашего бренда.

/audit-queue

Проверяет запланированные публикации на ближайшие 7 дней и отмечает дубликаты, перегруз платформ и пробелы в расписании.

/channel-sweep

Сравнивает подключённые каналы с поддерживаемым набором и предлагает, какие из них стоит подключить или обновить.

Endpoint-ы discovery и OAuth

Метаданные по стандартам, чтобы любой MCP-клиент мог настроиться автоматически.

  • 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: динамическая регистрация клиентов (RFC 7591)
  • GET /oauth/auth: авторизация (обязателен PKCE-S256)
  • POST /oauth/token: обмен токена

Открытый исходный код

Готовые рецепты и справочник для разработчиков лежат в нашем публичном репозитории. Лицензия MIT, pull request'ы приветствуются. github.com/moreyouhq/moreyou-mcp

Управляйте соцсетями из любого ИИ-ассистента

Планируйте, пишите, ставьте в очередь и проверяйте посты на 7 платформах в чате с Claude, ChatGPT или Cursor. Одно безопасное подключение, все функции More.You.

Язык