Skip to content

Tools

The 188 tools of Memberfy's MCP server, organized by subject (community, content, courses, events, members, sales, subscriptions, finance, certificates, call for papers and reports), with the minimum role and type of each one, and the rules they all share.

Memberfy's MCP server has 188 tools, which cover every module of the community: the assistant does what the app lets the connected person do, with their role. The assistant picks which one to use from your request on its own; this page and the subject pages are there so you know what it can do, with which role, and how to ask. The names are in English, as the assistant sees them, and they are the same in every language; the title shown in Claude or ChatGPT comes in the language of whoever connected.

By subject

SubjectWhat you can doTools
Community and structureThe connection's context, opening an app link, creating, editing, reordering and deleting sections and spaces, who sees each one, settings and language, sale notices16
Content and engagementPosts and short posts, moving a post, comments, reactions, pinning, search, gallery, ranking and moderation24
CoursesWhole courses, cover, status, modules and lessons (create, edit, move, delete), enrollment and progress13
EventsEvents, tickets, attendance, live streaming, banner and deletion8
MembersListing, inviting, changing roles, removing, groups, tags and org chart16
Sales and plansPlans, options, add-ons, products, prices, coupons, downsell and store, as drafts until approval24
SubscriptionsWho subscribes to what, CSV, complimentary access, discounts, extensions and cancellations; your own subscriptions and purchases, and changing your plan13
FinanceSales, customers, statement, balance, payouts and fees8
CertificatesTemplates, who issues, issuing, resending, revoking and reissuing; your own certificates16
Call for papersThe whole cycle: opening the call, tracks and days, owners and reviewers, proposals, scores, decision, negotiation, program and voting40
Reports and chartsSales, MRR, active members, engagement and the ranking, events, courses, one member's activity and the month's dashboard, ready to become a chart8

Each tool has a badge: Read-only changes nothing, Changes creates or changes something right away, and Asks to confirm only acts after your yes to a summary.

All tools

Minimum role: the lowest role the tool shows up for. "Any" includes members. Finance is listed separately because it isn't on the same ladder as the other roles.

ToolSubjectMinimum roleTypeWhat it does
get_community_contextCommunity and structureAnyRead-onlyCommunity, role, sections and spaces with ids: the starting point
get_connection_diagnosticsCommunity and structureAdminRead-onlyWhether the assistant's tool list is up to date
list_spacesCommunity and structureAnyRead-onlySections and spaces, filterable by module
open_linkCommunity and structureAnyRead-onlySays what a link copied from the app (or an id) is
create_sectionCommunity and structureAdminChangesCreates a menu section
create_spaceCommunity and structureAdminChangesCreates a space in a section
update_spaceCommunity and structureAdminChangesChanges a space's name, description, icon or visibility, or moves it to another section
update_sectionCommunity and structureAdminChangesChanges a section's name, description or icon, or makes it the home section
reorder_sectionsCommunity and structureAdminChangesPuts the menu sections in a new order
reorder_spacesCommunity and structureAdminChangesPuts a section's spaces in a new order
update_space_accessCommunity and structureAdminChangesWho sees a space or a section, and who posts in the space
delete_sectionCommunity and structureAdminAsks to confirmDeletes a section and its spaces
delete_spaceCommunity and structureAdminAsks to confirmDeletes a space
get_community_settingsCommunity and structureAdminRead-onlyThe community's settings: name, colors, images, SEO, language, entry
update_community_settingsCommunity and structureAdminChangesChanges name, colors, logo, favicon, SEO, language and entry rules
get_notification_settingsCommunity and structureAdminRead-onlyThe e-mail that receives sale notices
update_notification_settingsCommunity and structureAdminChangesChanges or turns off the sale notices e-mail
list_postsContent and engagementAnyRead-onlyThe feed, with comments and reactions
search_contentContent and engagementAnyRead-onlyFinds posts, events, courses, sections, spaces and calls by title
list_commentsContent and engagementAnyRead-onlyA post's comments
create_postContent and engagementAnyChangesPublishes a post
update_postContent and engagementAuthor, or moderatorChangesEdits a post's title, text, cover or pin
delete_postContent and engagementAuthor, or moderatorAsks to confirmDeletes a post, with confirmation
move_postContent and engagementModeratorChangesMoves a post to another Content or Feed space
create_short_postContent and engagementMember (not finance)ChangesPublishes a short post, with no title, in a Feed
create_commentContent and engagementAnyChangesComments or replies
update_commentContent and engagementAuthor, or moderatorChangesEdits a comment's text
delete_commentContent and engagementAuthor, or moderatorAsks to confirmDeletes a comment, with confirmation
add_reactionContent and engagementAnyChangesReacts with an emoji
pin_postContent and engagementModeratorChangesPins or unpins in the feed
add_gallery_imageContent and engagementAnyChangesAdds an image to a Gallery space
list_gallery_imagesContent and engagementAnyRead-onlyA gallery's images, with author and reactions
update_gallery_imageContent and engagementAuthor, or moderatorChangesChanges an image's title or description
react_to_gallery_imageContent and engagementAnyChangesReacts to a gallery image
delete_gallery_imageContent and engagementAuthor, or moderatorAsks to confirmDeletes a gallery image
get_leaderboardContent and engagementAnyRead-onlyThe top of the ranking
get_my_pointsContent and engagementAnyRead-onlyYour points and your position in the ranking
get_ranking_rulesContent and engagementAdminRead-onlyWhether the ranking is on, and the points per action
update_ranking_rulesContent and engagementAdminChangesTurns it on or off and changes the points
list_moderation_queueContent and engagementModeratorRead-onlyWhat is waiting for approval
moderate_itemContent and engagementModeratorChangesApproves or rejects an item in the queue
list_coursesCoursesAnyRead-onlyThe community's courses
get_courseCoursesAnyRead-onlyA course with its modules and lessons
create_courseCoursesAdminChangesSpace, course, modules, lessons and the product, in one go
update_courseCoursesAdminChangesEdits a course's title, level, status and cover
create_course_moduleCoursesAdminChangesAdds a module to a course
create_lessonCoursesAdminChangesAdds a lesson to a module
update_course_moduleCoursesAdminChangesRenames a module or changes its position
update_lessonCoursesAdminChangesChanges a lesson, or moves it to another module
delete_course_moduleCoursesAdminAsks to confirmDeletes a module with its lessons
delete_lessonCoursesAdminAsks to confirmDeletes a lesson
delete_courseCoursesAdminAsks to confirmDeletes a course
enroll_in_courseCoursesMember (not finance)ChangesEnrolls you in a published course
complete_lessonCoursesMember (not finance)ChangesRecords your progress in a lesson
list_eventsEventsAnyRead-onlyUpcoming, past, your own or all events
list_event_attendeesEventsAnyRead-onlyWho RSVP'd to an event
create_eventEventsModerator (with a ticket, admin)ChangesSpace, event and the ticket, in one go
update_eventEventsModeratorChangesEdits an event's dates, location, stream and banner
start_live_streamEventsModeratorChangesMarks the event as live, with the stream link
stop_live_streamEventsModeratorChangesEnds the live stream
rsvp_eventEventsMember (not finance)ChangesSays whether you're going: going, maybe or not going
delete_eventEventsAdminAsks to confirmDeletes an event
list_membersMembersModeratorRead-onlyMembers with role and join date
invite_memberMembersAdminChangesInvites one person, with role, groups and tags
invite_membersMembersAdminChangesInvites up to 100 people at once, with the result line by line
update_member_roleMembersAdminChangesChanges a member's role
remove_memberMembersAdminAsks to confirmRemoves a person from the community
list_groupsMembersModeratorRead-onlyGroups, with color, leader, parent group and how many people
create_groupMembersModeratorChangesCreates a member group
update_groupMembersModeratorChangesRenames or changes a group
delete_groupMembersModeratorAsks to confirmDeletes a group; the people stay in the community
update_group_membersMembersModeratorChangesAdds or removes people from a group
list_tagsMembersModeratorRead-onlyTags in use, with color and how many people
update_member_tagsMembersModeratorChangesTags or untags one or more people
update_tagMembersModeratorChangesRenames a tag or changes its color
delete_tagMembersModeratorAsks to confirmRemoves a tag from everyone
get_org_chartMembersModeratorRead-onlyWho reports to whom, with the groups
set_managerMembersModeratorChangesSets who a person reports to
list_activity_logsMembersAdminRead-onlyWho did what: team, assistant and members
list_plansSales and plansAdmin or financeRead-onlyPlans, options and add-ons
list_productsSales and plansAdmin or financeRead-onlyBilling options and products, with price and status
list_couponsSales and plansAdmin or financeRead-onlyCoupons with status and usage
create_productSales and plansAdminChangesCreates a product or billing option, as a draft
create_planSales and plansAdminChangesOptions, plan and add-ons, in one go
publish_productSales and plansAdminChangesPuts a product on sale
unpublish_productSales and plansAdminChangesTakes a product off sale
update_priceSales and plansAdminAsks to confirmChanges a price, with confirmation
create_couponSales and plansAdminAsks to confirmCreates a coupon, with confirmation
update_planSales and plansAdminChangesChanges a plan's name, address, options and add-ons
update_productSales and plansAdminChangesChanges title, spaces, stock, installments, trial and direct link
update_coupon_statusSales and plansAdminAsks to confirmPauses or reactivates a coupon
update_couponSales and plansAdminAsks to confirmChanges a coupon's name, discount, duration, limits, validity and products
delete_couponSales and plansAdminAsks to confirmDeletes a coupon
get_coupon_usageSales and plansAdmin or financeRead-onlyWho used a coupon
list_downsell_offersSales and plansAdminRead-onlyA plan's last-chance offers, with conversion
create_downsell_offerSales and plansAdminAsks to confirmCreates a last-chance offer
update_downsell_offerSales and plansAdminAsks to confirmChanges or pauses a last-chance offer
delete_downsell_offerSales and plansAdminAsks to confirmDeletes a last-chance offer
delete_productSales and plansAdminAsks to confirmDeletes a product or billing option
delete_planSales and plansAdminAsks to confirmDeletes a plan
reorder_plansSales and plansAdminChangesPuts the plans in a new order on the pricing page
get_storefrontSales and plansAdminRead-onlyWhat a Store space shows
update_storefrontSales and plansAdminChangesChooses a Store's products
list_subscriptionsSubscriptionsAdmin or financeRead-onlySubscriptions with status, amount and next charge
cancel_subscriptionSubscriptionsAdmin or financeAsks to confirmCancels a member's subscription, with confirmation
get_subscriptionSubscriptionsAdmin or financeRead-onlyOne subscription, with charges and next charge
create_manual_subscriptionSubscriptionsAdmin or financeAsks to confirmComplimentary or future charge, without checkout
update_subscriptionSubscriptionsAdmin or financeAsks to confirmDiscount, extend, add-ons, reactivate, payment link
export_subscriptions_csvSubscriptionsAdmin or financeRead-onlyThe subscriptions as CSV, with the same filters
list_my_subscriptionsSubscriptionsAnyRead-onlyYour subscriptions
list_my_purchasesSubscriptionsAnyRead-onlyYour one-time purchases
manage_my_subscriptionSubscriptionsAnyAsks to confirmCancels, pauses, resumes or reactivates your subscription
quote_plan_changeSubscriptionsAnyRead-onlyHow much it costs and what changes when moving to another plan
change_my_planSubscriptionsAnyAsks to confirmChanges your plan: now, charging the difference to the saved card, or at the end of the period
get_scheduled_plan_changeSubscriptionsAnyRead-onlyThe plan change scheduled for the end of the period
cancel_scheduled_plan_changeSubscriptionsAnyAsks to confirmUndoes the scheduled plan change
get_sales_summaryFinanceAdmin or financeRead-onlyRevenue, monthly series, revenue by product and subscribers
list_customersFinanceAdmin or financeRead-onlyWho pays and how much they've paid
list_ledger_entriesFinanceAdmin or financeRead-onlyStatement entries
get_balanceFinanceAdmin or financeRead-onlyTotal, available, held and pending balance
list_payoutsFinanceAdmin or financeRead-onlyPayouts and their status
simulate_feeFinanceAdminRead-onlyHow much the community receives from a sale
request_payoutFinanceAdminAsks to confirmRequests a payout, with confirmation
cancel_payoutFinanceAdminAsks to confirmCancels a pending payout, with confirmation
list_certificate_templatesCertificatesModerator or adminRead-onlyA Certificates space's templates
get_certificate_templateCertificatesModerator or adminRead-onlyOne template, with the preview as an image
create_certificate_templateCertificatesModerator or adminChangesCreates a template, from the platform default or with the brand's art
update_certificate_templateCertificatesModerator or adminChangesChanges texts, signers, boxes and the artwork
activate_certificate_templateCertificatesModerator or adminChangesActivates or archives a template
issue_certificateCertificatesModerator or adminChangesIssues to people, groups and tags, after a dry run
list_issued_certificatesCertificatesModerator or adminRead-onlyThe issued ones, with status and search
revoke_certificateCertificatesAdminAsks to confirmRevokes a certificate
reissue_certificateCertificatesAdminChangesIssues it again with the current name
delete_certificateCertificatesAdminAsks to confirmDeletes a revoked or failed one
duplicate_certificate_templateCertificatesModerator or adminChangesCopies a template as a new draft
update_certificate_space_settingsCertificatesAdminChangesWho issues in the space: the team or only admins
resend_certificate_emailCertificatesModerator or adminChangesSends the certificate e-mail again
retry_certificateCertificatesModerator or adminChangesRetries a certificate that failed
list_my_certificatesCertificatesAnyRead-onlyYour certificates, with code and links
set_certificate_indexingCertificatesAnyChangesShows or hides one of your certificates in search engines
list_calls_for_papersCall for papersAnyRead-onlyA space's calls, with status
get_call_space_settingsCall for papersAnyRead-onlyHow the space works: one call or several, who opens them
update_call_space_settingsCall for papersAdminChangesChanges the space's mode and who can open a call
get_call_for_papersCall for papersAnyRead-onlyA call with dates, tracks, days, owners and what you can do
create_call_for_papersCall for papersWhoever can open oneChangesOpens a call as a draft, with tracks, days and banner
update_call_for_papersCall for papersTeam or ownerChangesEdits text, dates, formats, costs, fee and images
update_call_statusCall for papersTeam or ownerChangesPublishes, unpublishes, closes or reopens
delete_call_for_papersCall for papersTeam or ownerAsks to confirmDeletes the call, with tracks and proposals
add_call_trackCall for papersTeam or ownerChangesAdds a track
update_call_trackCall for papersTeam or ownerChangesRenames a track or changes its purpose
delete_call_trackCall for papersTeam or ownerAsks to confirmRemoves a track
add_call_event_dateCall for papersTeam or ownerChangesAdds a day to the event
update_call_event_dateCall for papersTeam or ownerChangesChanges a day's times
delete_call_event_dateCall for papersTeam or ownerAsks to confirmRemoves a day from the event
add_call_ownerCall for papersTeam or ownerChangesInvites someone to be an owner of the call
remove_call_ownerCall for papersTeam or ownerAsks to confirmRemoves an owner
list_track_reviewersCall for papersTeam or ownerRead-onlyA track's reviewers
invite_track_reviewerCall for papersTeam or ownerChangesMakes someone a reviewer for a track
remove_track_reviewerCall for papersTeam or ownerAsks to confirmRemoves a reviewer
list_my_call_invitationsCall for papersAnyRead-onlyYour pending invitations, as owner or reviewer
respond_to_call_invitationCall for papersAnyChangesAccepts or declines one of your invitations
list_speakersCall for papersTeam or ownerRead-onlyWho has already proposed in the community
invite_speakerCall for papersTeam or ownerChangesInvites someone to propose
list_proposalsCall for papersDepends on your role in the callRead-onlyThe proposals, with status, track and scores
get_proposalCall for papersOwners, the track's reviewers and the proposerRead-onlyOne proposal, with the reviews and the negotiation
list_my_reviewsCall for papersReviewerRead-onlyYour review queue
review_proposalCall for papersThe track's reviewerChangesScores a proposal from 1 to 5
get_review_progressCall for papersTeam or ownerRead-onlyHow the review is going, against the minimum
get_proposal_reviewsCall for papersOwners; reviewers after reviewingRead-onlyA proposal's scores and the consensus
decide_proposalCall for papersTeam or ownerChangesAccepts or rejects a proposal
negotiate_proposalCall for papersTeam or ownerChangesCounter-offer, withdraw, accept or end the negotiation
confirm_proposalCall for papersTeam or ownerChangesConfirms the accepted proposal in the program
list_votable_proposalsCall for papersWhoever can voteRead-onlyThe ballot: what you can vote on and your vote
vote_on_proposalCall for papersWhoever can voteChangesVotes from 1 to 5, or removes the vote
get_vote_resultsCall for papersDepends on the callRead-onlyThe result, as far as the call shows it
list_my_proposalsCall for papersAnyRead-onlyYour proposals, with status
submit_proposalCall for papersAny memberChangesSubmits a proposal to an open call
update_proposalCall for papersThe proposerChangesEdits the draft proposal and submits it
withdraw_proposalCall for papersThe proposerAsks to confirmWithdraws the proposal from the call
respond_to_counter_offerCall for papersThe proposerChangesAccepts the counter-offer or answers with another one
sales_reportReports and chartsAdmin or financeRead-onlySales by day, week or month, by plan, product or payment method, and the total since the first sale
subscriptions_reportReports and chartsAdmin or financeRead-onlyMRR, new and canceled subscriptions, churn, courtesies and downsell
members_reportReports and chartsModeratorRead-onlyNew, active and inactive members, by group and by tag
engagement_reportReports and chartsModeratorRead-onlyPosts, comments, reactions, the most engaged, unanswered posts and the ranking points
events_reportReports and chartsModeratorRead-onlyEvents and how many answered going, maybe and not going
courses_reportReports and chartsModeratorRead-onlyEnrollments, completions and progress per course
member_activityReports and chartsAdminRead-onlyWhat one person did: counts, ranking points and links
community_overviewReports and chartsModerator or financeRead-onlyThis month against last month, in one call

How many each role sees

RoleTools
Owner and adminAll 188
Moderator111: the 40 call-for-papers tools, the read tools open to everyone, posts and short posts (including moving and pinning), comments, reactions and gallery, moderation, create_event, update_event and live streaming, list_members and the 11 for groups, tags and the org chart, certificate templates, issuing, resending and retrying (per Who issues in the space), their own enrollments, attendance, points, subscriptions, purchases and certificates, and the member, engagement, event and course reports and community_overview
Finance90: the 40 call-for-papers tools, the read tools open to everyone, posts, comments, reactions and gallery, reading plans, products and coupons, the 9 finance read tools, the community's subscriptions (list, view, export, complimentary, actions and cancel), their own subscriptions, purchases, points and certificates, and the sales and subscription reports and community_overview
Member76: the 40 call-for-papers tools, the read tools open to everyone, posts and short posts, comments, reactions and gallery (editing and deleting only their own), enrollment and progress in courses, event attendance, and their own subscriptions, purchases, points and certificates

All 40 call-for-papers tools show up for everyone because a call's owner can be a regular member, and any member proposes, reviews or votes when the call allows it. Memberfy checks each call against the module's rules. See Call for papers.

A connection authorized for reading only sees just the role's read tools.

Seeing a tool in the list doesn't guarantee every call goes through: Memberfy checks each action as if it were done on screen. A member sees create_post, but posting in a space with Who can post = Staff is refused. See Roles and permissions.

Shared rules

Ids

The tools work with ids, and wherever they ask for an id they also accept the link copied from the app (see open_link). Almost every conversation starts with get_community_context, which returns the sections and spaces with their ids; the list tools return the ids of what they list. Each tool's description says where each id comes from, and the assistant chains them on its own: you ask "post in the Announcements space", it looks up the Announcements space id and posts.

Pagination

List tools accept page (the page, starting at 1) and limit (how many per page). The response includes the items and the total, so the assistant knows whether to ask for the next page.

Draft first

Everything that is sold starts as a draft: create_product, the product from create_course, the ticket from create_event and the options from create_plan. Nothing goes on sale without publish_product (or publish: true in the composite tool). That way you review first.

Creating doesn't depend on approved business information; publishing does. In a community without approval, a composite tool that was asked to publish undoes nothing: the course, event or plan stays as a draft, the response gives the reason in publish_blocked, and the suggested next step is to fill in the business information and publish later. See Drafts before approval.

Idempotency in the composite tools

The three composite tools accept idempotency_key (up to 100 characters). Repeating the call with the same key returns the result of the first one, without creating anything again. It's for when the connection drops mid-call and the assistant doesn't know whether the call went through.

Undoing when a step fails

The composite tools create things in order and, if a step fails, delete what they had already created (except when what failed was publishing without approved business information: then everything stays as a draft), newest first, and say which step failed: "The step "módulo 2" failed and everything this call created was undone." If something can't be undone, the response lists what was left behind so you can check it in the dashboard.

Next steps

When a follow-up makes sense, the tool's response carries next_steps: up to three suggested actions, each with the tool, the reason (in the language of whoever connected) and, sometimes, the arguments ready to use. They depend on what came back and on your role: only tools you can use are included. The assistant offers these actions before suggesting anything else, and none of them happens unless you ask.

WhenWhat Memberfy suggests
There are proposals waiting for a decisionDecide each one (decide_proposal)
The engagement report shows posts with no replyReply to them (create_comment)
A post was published without a coverGenerate an image and set it as the cover (update_post)
A certificate template was just createdCheck the preview and adjust it (update_certificate_template), then activate it (activate_certificate_template)
A sales reportThe same report for the previous period, to compare (sales_report, with the dates filled in)
Items waiting for moderationApprove or reject them (moderate_item)
Past-due subscriptionsSend the payment link (update_subscription)
Available balanceRequest a payout (request_payout)
A product, course or ticket created as a draftPublish it (publish_product)
Publishing was refused for lack of approved business informationFill in Settings › Business Information, wait for approval and publish (publish_product)
A call for papers created without tracks, or still a draftAdd tracks (add_call_track), add reviewers (invite_track_reviewer) and publish (update_call_status)
An accepted proposalConfirm it in the program (confirm_proposal)

Errors

When Memberfy refuses, the assistant gets Memberfy's message, the same one you'd see on screen:

SituationWhat the assistant gets
The role doesn't allow it"Your role (moderator) does not allow this action in this community.", plus the reason
An invalid value"The API refused (400): …", with the field and the message
Too many calls"Too many calls in a short time. Wait a minute and try again."

Server and tool list version

Every Memberfy deploy changes the server version, and the tool list a connection receives has its own fingerprint. That's how you tell whether an assistant's list is up to date.

WhereWhat comes back
serverInfo.version, in initialize<version>+<commit>, for example 1.0.0+4a9b547. Changes on every deploy
_meta.memberfy, in initialize and tools/listserver_version, tools_fingerprint (a short code that changes when a name or input schema in this connection's list changes) and tool_count
The server instructionsEnd with a line that repeats the list version

Calling a tool that isn't on the connection's list returns a tool error (isError) asking the person to open a new conversation or reconnect; if the name is one of the old Portuguese ones, the response includes renamed_to with the new name. The call is logged in the audit as tool.unknown.

The owner and admins compare the last list a connection received with the current one at GET /api/oauth/connections/{id}/diagnostics: the listUpToDate field says whether it's up to date. See Audit.

Ask for confirmation

Only the tools that touch money and the ones that delete (those starting with delete_, remove_, revoke_, withdraw_ or cancel_) ask for confirmation. With the Asks to confirm badge, they don't act on the first call: they return a summary and a code, and only act when the assistant repeats the call with the code, after your yes. All the others, including invites, role changes, settings and issuing certificates, run on the first call. The table above shows each one's badge. See Money and confirmation.

Markdown text

The assistant writes and reads Memberfy text in Markdown. Memberfy converts it to the app's formatted text on the way in, and back to Markdown on the way out: the post shows in the app with bold and lists, not with asterisks.

FieldWhat it takes
The text of a post (create_post, update_post), an event's description (create_event, update_event), the call for papers text (create_call_for_papers, update_call_for_papers) and a proposal's description (submit_proposal, update_proposal)Full Markdown: bold, italic, lists, links, subheadings (# becomes a level-2 subheading; there is no level-1 heading inside the text), quote and code
The text of a short post (create_short_post, or update_post with type: status)Only bold, italic, links and line breaks
Titles, names, comments, and the description of a course, product, plan, group, space and sectionPlain text: Markdown marks are stripped, because the app shows these fields without formatting

What doesn't carry over to the app:

  • An image inside the text becomes a link to the image. For a post's cover or an event's banner, use image_url (see Images).
  • A table becomes lines of text, one per table row.
  • Scripts, event attributes and javascript: links are removed.

Ready-made HTML is accepted too and goes through the same filter. When reading, the tools return formatted text in Markdown and mark the result with text_format: "markdown". Reading and saving the same text again changes nothing.

Images

create_post, add_gallery_image, create_course, create_event, update_post, update_event and update_course accept the image in two ways:

  • image_url: the link to an image that is on the internet. Memberfy downloads it and keeps it as if you had uploaded it in the dashboard.
  • image_base64 (with image_type, optional): the file itself, up to 5 MB. It's the way to use an image the assistant generated in the conversation. SVG is accepted and becomes PNG; an SVG that points to external files is refused.
Rule
AddressOnly public http or https. Internal and private addresses are refused, also after a redirect
FormatJPEG, PNG, WebP or GIF, checked from the file's content
SizeUp to 10 MB
TimeThe download has 10 seconds

A link to a page (rather than to the image itself) is refused with "the file is not a JPEG, PNG, WebP or GIF image".

In the composite tools, a bad image doesn't undo the rest: the course or event is created without the cover, and the response gives the reason in warnings ("Could not use the image at …: the image is larger than 10 MB."). Ask again with another link, or add the image in the dashboard. In the single-item tools (create_post, add_gallery_image), a bad image prevents the creation.