EveryFeed
Operate EveryFeed through its MCP tools when they are available. Use the
EveryFeed CLI for terminal workflows and public API operations that MCP does not
expose, such as connection lifecycle, analytics, post state changes, deletion,
and local-file upload.
Choose the interface
- Prefer MCP for conversational drafting, provider discovery, validation,
media generation, and confirmed post creation.
- Use the CLI when the user explicitly asks for terminal automation or needs a
CLI-only operation. See references/cli.md.
- Do not silently switch organizations, profiles, channels, or interfaces.
Resolve identifiers again after switching context.
- If MCP tools are unavailable, direct the user to EveryFeed → Settings →
Developers → Access. Never ask the user to paste a token into chat.
- If a requested feature is unavailable through MCP but is supported by the
CLI, explain the switch before running the command.
Establish context
Before preparing content:
- Call
listConnectedChannels. If the user names a client group, call
listChannelGroups first and pass only the returned matching group ID.
- Call
getCurrentDateTime before interpreting relative dates or scheduling.
Treat its UTC value and returned channel time zones as authoritative.
- Call
getProviderRules before provider-specific wording, settings, media,
threads, comments, or publishing decisions.
- When the user names a project, resolve it with
listProjects. When they ask
to reuse a content set, resolve it with listContentSets, then call
getContentSet. Treat loaded content as editable draft material.
- Use only identifiers returned for the current organization. Never invent or
reuse channel, group, project, media, content-set, or generation IDs.
See references/mcp-tools.md for all 26 MCP tool
contracts and references/provider-workflows.md
for provider-specific preparation.
Prepare content
- Resolve ambiguous destinations, dates, time zones, thread structure, media,
project, short-link behavior, and draft/schedule/now mode with the user.
- Preserve the user's requested language and brand voice unless asked to adapt
them per channel.
- Build provider settings only from
getProviderRules output. Use
executeProviderFunction only with a function and parameters advertised for
that provider.
- Use ordered
values for threads and comments. Keep each value's message,
delay, and media explicit.
- Use
findNextAvailableSlot only as a suggestion; it does not authorize a
scheduled post.
- Follow the reusable patterns in
references/workflows.md for threads,
multi-platform campaigns, media, projects, content sets, and batch schedules.
Use media and AI generation
- Use
listMedia and reference only returned organization media IDs.
- For a public remote image or MP4, show the exact URL and intended alt text,
obtain confirmation, then call
uploadMediaFromUrl once with a unique
idempotency key.
- Show the exact prompt and options before any AI generation. Obtain explicit
confirmation before
generatePostDraft, generateImage,
startVideoGeneration, or startNarratedSlideVideoGeneration.
- Call
listVideoGenerationOptions before ordinary video generation and select
only an available provider, duration, size, and reference-image count.
- Call
listNarratedSlideVoices before narrated slide generation and use only a
returned voice.
- Poll only jobs returned to the current user. Use list tools to recover a known
job and resume tools only after confirmation; resuming changes workflow state.
- Attach generated media only after the generation completes and returns an
EveryFeed media record.
AI-generated copy remains an editable draft. Generation never authorizes post
creation.
Validate and review
Always call validateComposerDraft on the final payload before proposing any
write. Accept an item only when:
valid !== false;
emptyContent !== true;
tooLong !== true;
errors === true;
settingsError is empty when present.
Fix every invalid channel payload and revalidate after any change.
Present a compact final review containing:
- channel display names and providers;
- every post, thread item, or comment;
- attached or generated media;
- provider-specific settings;
- draft, immediate, or scheduled mode;
- exact scheduled timestamp and time zone;
- project and short-link behavior.
Ask for explicit confirmation tied to that exact review. An edit, question,
silence, or approval of an earlier payload is not current approval.
Execute writes
After current explicit approval:
- Generate one stable, unique idempotency key for the approved operation.
- Call
createPosts exactly once with confirmed: true.
- Put only posts sharing the same mode and scheduled date in one call. Split
different dates or modes into separately validated and approved calls with
distinct keys.
- Reuse a key only to retrieve an already completed result. If a response
failed or its outcome is unknown, inspect state before attempting a new
operation; never blindly replay it.
- Report returned post IDs, states, provider identifiers, release URLs, and
errors. Do not claim publication until EveryFeed reports it.
Apply the same review and idempotency discipline to CLI writes. Never invoke a
CLI write with --yes unless the user has already approved the exact command
and payload in the current conversation.
Manage and analyze
Use MCP listRecentPosts for a quick status check. Use the CLI for filtered
post history, post details, state changes, deletion, connection management,
notifications, connection analytics, top posts, post analytics, and missing
release-ID recovery. Follow references/cli.md and
references/troubleshooting.md.
Read-only inspection never authorizes a later write.
1---2name: everyfeed3description: Manage EveryFeed social channels, posts, media, AI generation, scheduling, analytics, and connection workflows through EveryFeed MCP or CLI. Use when a user asks to inspect channels, create or adapt social content, generate media, validate drafts, publish or schedule posts, manage existing posts, connect providers, or review publishing performance in EveryFeed.4---56# EveryFeed78Operate EveryFeed through its MCP tools when they are available. Use the9EveryFeed CLI for terminal workflows and public API operations that MCP does not10expose, such as connection lifecycle, analytics, post state changes, deletion,11and local-file upload.1213## Choose the interface14151. Prefer MCP for conversational drafting, provider discovery, validation,16 media generation, and confirmed post creation.172. Use the CLI when the user explicitly asks for terminal automation or needs a18 CLI-only operation. See [references/cli.md](references/cli.md).193. Do not silently switch organizations, profiles, channels, or interfaces.20 Resolve identifiers again after switching context.214. If MCP tools are unavailable, direct the user to **EveryFeed → Settings →22 Developers → Access**. Never ask the user to paste a token into chat.235. If a requested feature is unavailable through MCP but is supported by the24 CLI, explain the switch before running the command.2526## Establish context2728Before preparing content:29301. Call `listConnectedChannels`. If the user names a client group, call31 `listChannelGroups` first and pass only the returned matching group ID.322. Call `getCurrentDateTime` before interpreting relative dates or scheduling.33 Treat its UTC value and returned channel time zones as authoritative.343. Call `getProviderRules` before provider-specific wording, settings, media,35 threads, comments, or publishing decisions.364. When the user names a project, resolve it with `listProjects`. When they ask37 to reuse a content set, resolve it with `listContentSets`, then call38 `getContentSet`. Treat loaded content as editable draft material.395. Use only identifiers returned for the current organization. Never invent or40 reuse channel, group, project, media, content-set, or generation IDs.4142See [references/mcp-tools.md](references/mcp-tools.md) for all 26 MCP tool43contracts and [references/provider-workflows.md](references/provider-workflows.md)44for provider-specific preparation.4546## Prepare content4748- Resolve ambiguous destinations, dates, time zones, thread structure, media,49 project, short-link behavior, and draft/schedule/now mode with the user.50- Preserve the user's requested language and brand voice unless asked to adapt51 them per channel.52- Build provider settings only from `getProviderRules` output. Use53 `executeProviderFunction` only with a function and parameters advertised for54 that provider.55- Use ordered `values` for threads and comments. Keep each value's message,56 delay, and media explicit.57- Use `findNextAvailableSlot` only as a suggestion; it does not authorize a58 scheduled post.59- Follow the reusable patterns in60 [references/workflows.md](references/workflows.md) for threads,61 multi-platform campaigns, media, projects, content sets, and batch schedules.6263## Use media and AI generation6465- Use `listMedia` and reference only returned organization media IDs.66- For a public remote image or MP4, show the exact URL and intended alt text,67 obtain confirmation, then call `uploadMediaFromUrl` once with a unique68 idempotency key.69- Show the exact prompt and options before any AI generation. Obtain explicit70 confirmation before `generatePostDraft`, `generateImage`,71 `startVideoGeneration`, or `startNarratedSlideVideoGeneration`.72- Call `listVideoGenerationOptions` before ordinary video generation and select73 only an available provider, duration, size, and reference-image count.74- Call `listNarratedSlideVoices` before narrated slide generation and use only a75 returned voice.76- Poll only jobs returned to the current user. Use list tools to recover a known77 job and resume tools only after confirmation; resuming changes workflow state.78- Attach generated media only after the generation completes and returns an79 EveryFeed media record.8081AI-generated copy remains an editable draft. Generation never authorizes post82creation.8384## Validate and review8586Always call `validateComposerDraft` on the final payload before proposing any87write. Accept an item only when:8889- `valid !== false`;90- `emptyContent !== true`;91- `tooLong !== true`;92- `errors === true`;93- `settingsError` is empty when present.9495Fix every invalid channel payload and revalidate after any change.9697Present a compact final review containing:9899- channel display names and providers;100- every post, thread item, or comment;101- attached or generated media;102- provider-specific settings;103- draft, immediate, or scheduled mode;104- exact scheduled timestamp and time zone;105- project and short-link behavior.106107Ask for explicit confirmation tied to that exact review. An edit, question,108silence, or approval of an earlier payload is not current approval.109110## Execute writes111112After current explicit approval:1131141. Generate one stable, unique idempotency key for the approved operation.1152. Call `createPosts` exactly once with `confirmed: true`.1163. Put only posts sharing the same mode and scheduled date in one call. Split117 different dates or modes into separately validated and approved calls with118 distinct keys.1194. Reuse a key only to retrieve an already completed result. If a response120 failed or its outcome is unknown, inspect state before attempting a new121 operation; never blindly replay it.1225. Report returned post IDs, states, provider identifiers, release URLs, and123 errors. Do not claim publication until EveryFeed reports it.124125Apply the same review and idempotency discipline to CLI writes. Never invoke a126CLI write with `--yes` unless the user has already approved the exact command127and payload in the current conversation.128129## Manage and analyze130131Use MCP `listRecentPosts` for a quick status check. Use the CLI for filtered132post history, post details, state changes, deletion, connection management,133notifications, connection analytics, top posts, post analytics, and missing134release-ID recovery. Follow [references/cli.md](references/cli.md) and135[references/troubleshooting.md](references/troubleshooting.md).136137Read-only inspection never authorizes a later write.