Сборка процесса через MCP
Читайте граф процесса, добавляйте узлы, связывайте их, прикрепляйте рендереры и трансформеры и составляйте посты для соцсетей из своего клиента ИИ.
Проект содержит один или несколько процессов, а процесс это граф узлов: узлы контента, выводы рендерера (презентация, документ, статья блога, пост в соцсети), трансформеры, подключённые аккаунты, темы и триггеры. Это тот же граф, который вы видите на холсте процесса в приложении.
Инструменты на этой странице и есть этот холст, доступный из вашего клиента.
Каждый из них называет процесс, с которым работает, по идентификатору
проекта и идентификатору процесса. Оба вы получаете из save_project,
create_workflow или из адреса проекта.
Чтение графа
get_workflowвозвращает форму графа: все узлы и все связи. Содержимое узлов не включается, поэтому вызывать его между шагами дёшево. Начинайте отсюда, если процесс собирали не в этом разговоре.get_node_outputвозвращает содержимое одного узла: то, что создал рендерер, или разрешённый текст узла контента. Для поста в соцсети передайтеplatform, чтобы увидеть версию для этой площадки вместо общей версии по умолчанию. То, что слишком велико, чтобы вернуть целиком, приходит с пометкой, а не молча обрезанным.
Добавление и связывание узлов
-
create_workflowдобавляет в проект новый пустой процесс и возвращает его идентификатор. С него вы начинаете, когда собираете процесс с нуля. -
add_nodeразмещает один узел и возвращает его идентификатор. Виды такие:Вид Примечания contentУзел контента. Передайте title, аmarkdownчтобы заполнить его текстом.outputВывод рендерера. Передайте renderer_id:slides,document,blogилиsocial-post.transformerОтбирает и переупорядочивает разделы из того, что в него входит. accountСсылается на аккаунт, подключённый в приложении. Передайте его connection_id.triggerЗапускает публикацию для постов, до которых дотягивается. cacheДержит значение между шагом, который его создаёт, и шагом, который его использует. themeОбщее оформление, с которым выводятся результаты. Передайте theme.Можно также передать
position, чтобы узел встал в разумном месте, когда вы откроете холст. -
connect_nodesпроводит связь между двумя узлами. Papera понимает смысл связи по её концам: контент к выводу прикрепляет источник, пост к аккаунту отправляет пост туда, триггер к узлу заставляет триггер его запускать. Недопустимая связь отклоняется с причиной, например «у этого вывода уже есть источник контента».
Сокращённые пути
Они экономят обращения. Они не делают ничего, чего нельзя сделать через
add_node и connect_nodes, и возвращают то, что создал новый узел, чтобы вы
сразу могли это проверить.
attach_rendererсоздаёт вывод над узлом контента или трансформером и связывает его одним вызовом. Так контент становится презентацией, документом, статьёй блога или постом в соцсети.attach_transformerсоздаёт трансформер над источником и подключает его. Трансформер отбирает и переупорядочивает разделы, которые берёт сверху по графу. Безsection_idsон пропускает всё насквозь. Используйте его, когда вывод должен показывать часть узла контента, а не весь.target_accountsотправляет один пост сразу в несколько аккаунтов. Каждый аккаунт обрабатывается отдельно, поэтому те, что не могут принять пост, сообщают причину, а остальные всё равно подключаются.edit_postзадаёт содержимое поста.
Составление поста для соцсети
У поста в соцсети есть общая версия по умолчанию и необязательные версии под площадки. Версия перекрывает только те поля, которые задаёт, и наследует остальные, поэтому вы пишете пост один раз и подгоняете только то, что нужно подогнать.
edit_post принимает:
default_blocks: общее содержимое как упорядоченный список блоков контента.variants: перекрытия по идентификатору площадки (instagram,bluesky,telegram,linkedin), каждое из которых может задаватьcaption,hashtagsилиmedia.
{
"default_blocks": [
{
"id": "b1",
"type": "paragraph",
"content": [{ "type": "text", "text": "Our Q3 numbers are in." }]
}
],
"variants": {
"bluesky": { "caption": "Q3 is in. Three charts, one takeaway.", "hashtags": ["q3"] },
"instagram": { "media": [{ "blockId": "b2", "src": "https://example.com/chart.png" }] }
}
}
Хэштеги пишутся без ведущего #. Медиа должны быть адресами http(s), потому
что пути загрузки файлов через MCP нет: загружайте изображения в приложении или
указывайте на уже публичный адрес.
Подключённые аккаунты
Подключение аккаунта соцсети всегда происходит в приложении и никогда через MCP.
Узел account ссылается на подключение, которое вы там уже сделали, поэтому
сначала подключите аккаунт (см.
Подключение аккаунта Bluesky или
Подключение канала Telegram), а затем добавьте для
него узел с его connection_id.
Что дальше
Процесс с постом и аккаунтами готов к выходу наружу. См. Публикация и планирование или пройдите весь сценарий по статье Пример: один пост во все аккаунты.