Tools · Call for papers
The 40 MCP tools for the call for papers, from start to finish: the space's rules, opening and editing a call with tracks, days and banner, publishing, owners and reviewers, inviting speakers, proposals, reviews and scores, the decision, counter-offers, confirming in the program, voting and the proposer's side.
The whole call for papers from the conversation: opening the call with its guidelines, the tracks and the event days, publishing, setting up the committee, following the reviews, deciding, negotiating terms with the speaker and confirming in the program. Proposers use the assistant too: submitting and editing a proposal, answering a counter-offer, voting.
Each tool carries 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. See Money and confirmation.
Who uses what
All 40 tools show up for every role, members included: a call's owner can be a regular member, and so can whoever proposes, reviews or votes. Memberfy checks each call against the module's own rules, just like the screen does:
| Who | What they can do |
|---|---|
| Team (owner, admin and moderator) or the call's owner | Edit the call, the tracks, the days and the owners; set up the committee; see the progress; decide, negotiate and confirm |
| Whoever can open a call in the space | Open a new call. The rule belongs to the space: only the owners, the team or any member (get_call_space_settings) |
| Track reviewer (who accepted the invitation) | The review queue and the score for each proposal in the track |
| Whoever the call lets vote | The ballot and the vote, during the voting window |
| Any member | Propose to an open call, edit and withdraw their own proposal, answer a counter-offer |
When the role doesn't allow it, the assistant gets Memberfy's refusal and explains it.
In short
The space and the calls
| Tool | What it does | Who | Type |
|---|---|---|---|
list_calls_for_papers | A space's calls, with status | Any | Read-only |
get_call_space_settings | How the space works: one call or several, who opens them | Any | Read-only |
update_call_space_settings | Changes the space's mode and who can open a call | Admin | Changes |
get_call_for_papers | A call with dates, tracks, days, owners and what you can do | Any | Read-only |
create_call_for_papers | Opens a call as a draft, with tracks, days and banner | Whoever can open one | Changes |
update_call_for_papers | Edits text, dates, formats, costs, fee and images | Team or owner | Changes |
update_call_status | Publishes, unpublishes, closes or reopens | Team or owner | Changes |
delete_call_for_papers | Deletes the call, with tracks and proposals | Team or owner | Asks to confirm |
Tracks and event days
| Tool | What it does | Who | Type |
|---|---|---|---|
add_call_track | Adds a track | Team or owner | Changes |
update_call_track | Renames a track or changes its purpose | Team or owner | Changes |
delete_call_track | Removes a track | Team or owner | Asks to confirm |
add_call_event_date | Adds a day to the event | Team or owner | Changes |
update_call_event_date | Changes a day's times | Team or owner | Changes |
delete_call_event_date | Removes a day from the event | Team or owner | Asks to confirm |
Owners, reviewers and speakers
| Tool | What it does | Who | Type |
|---|---|---|---|
add_call_owner | Invites someone to be an owner of the call | Team or owner | Changes |
remove_call_owner | Removes an owner | Team or owner | Asks to confirm |
list_track_reviewers | A track's reviewers | Team or owner | Read-only |
invite_track_reviewer | Makes someone a reviewer for a track | Team or owner | Changes |
remove_track_reviewer | Removes a reviewer | Team or owner | Asks to confirm |
list_my_call_invitations | Your pending invitations, as owner or reviewer | Any | Read-only |
respond_to_call_invitation | Accepts or declines one of your invitations | Any | Changes |
list_speakers | Who has already proposed in the community | Team or owner | Read-only |
invite_speaker | Invites someone to propose | Team or owner | Changes |
Review, decision and program
| Tool | What it does | Who | Type |
|---|---|---|---|
list_proposals | The proposals, with status, track and scores | Depends on your role in the call | Read-only |
get_proposal | One proposal, with the reviews and the negotiation | Owners, the track's reviewers and the proposer | Read-only |
list_my_reviews | Your review queue | Reviewer | Read-only |
review_proposal | Scores a proposal from 1 to 5 | The track's reviewer | Changes |
get_review_progress | How the review is going, against the minimum | Team or owner | Read-only |
get_proposal_reviews | A proposal's scores and the consensus | Owners; reviewers after reviewing | Read-only |
decide_proposal | Accepts or rejects a proposal | Team or owner | Changes |
negotiate_proposal | Counter-offer, withdraw, accept or end the negotiation | Team or owner | Changes |
confirm_proposal | Confirms the accepted proposal in the program | Team or owner | Changes |
Voting
| Tool | What it does | Who | Type |
|---|---|---|---|
list_votable_proposals | The ballot: what you can vote on and your vote | Whoever can vote | Read-only |
vote_on_proposal | Votes from 1 to 5, or removes the vote | Whoever can vote | Changes |
get_vote_results | The result, as far as the call shows it | Depends on the call | Read-only |
The proposer
| Tool | What it does | Who | Type |
|---|---|---|---|
list_my_proposals | Your proposals, with status | Any | Read-only |
submit_proposal | Submits a proposal to an open call | Any member | Changes |
update_proposal | Edits the draft proposal and submits it | The proposer | Changes |
withdraw_proposal | Withdraws the proposal from the call | The proposer | Asks to confirm |
respond_to_counter_offer | Accepts the counter-offer or answers with another one | The proposer | Changes |
Ids and values
- Call (
call) and space (space): the id or the link copied from the app. A proposal's link (?proposal=) also works as the call. - Proposal (
proposal): the id or the link with?proposal=. - Track, event day, owner and reviewer (
track_id,date_id,owner_id,reviewer_id): they come fromget_call_for_papers. Theowner_idis the id of the link inowner_links, not the person's id. - Person (
profile_id): fromlist_membersor fromlist_speakers. - Dates and times: in the community's time zone. Date and time as
2026-11-30T23:59; date only as2026-11-30; time only as19:00. - Formats:
talk,lightning_talk,keynote,workshop,tutorial,masterclass,panel,roundtable,case_study,demo,posterandother. - Call statuses:
draft,open,reviewing(under review),deciding,closedandarchived. - Costs (airfare, ground transport, parking, accommodation, meals):
none(nobody),organizer(the organization) orspeaker(the speaker).
list_calls_for_papers
Read-only
List calls for papers. The calls of a call-for-papers space, with status. Minimum role: any; a draft only shows up for whoever looks after it.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The call-for-papers space |
status | one of the statuses | No | Filters by status |
Ask like this: "Which calls are open?"
get_call_space_settings
Read-only
See call-for-papers space settings. Whether the space is one call or several, who can open a call and whether opening one needs approval. Minimum role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The call-for-papers space |
Ask like this: "Can a member open a call in the Talks space?"
update_call_space_settings
Changes
Change call-for-papers space settings. Changes the space's mode and who can open a call. Minimum role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
mode | single, multi | No | One call or several |
who_can_open_call | owners, staff, members | No | Owner and admin; moderators too; or any member |
require_approval_to_open | yes or no | No | A new call waits for approval |
Ask like this: "Let moderators open calls in the Talks space."
Notes: it changes who can do what right away. See The space: one call or several.
get_call_for_papers
Read-only
See call for papers. Everything the call's page shows: status, dates, formats, costs and fee, the tracks (with their reviewers), the event days and the owners, plus what you can do in it. Minimum role: any; a draft only for whoever looks after it.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | A proposal's link also works |
Returns: the call and, for whoever can edit it, the owners' links (owner_links), with the ids that remove_call_owner asks for.
Ask like this: "Show me the Congress 2027 call: which tracks are there and who reviews each one?"
create_call_for_papers
Changes
Open call for papers. Opens a call in a call-for-papers space, as a draft. Whoever creates it becomes the call's owner. Role: whoever the space's rule allows to open a call.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The call-for-papers space (list_spaces with the call4papers module) |
title | text, 3 to 255 | Yes | |
slug | text | No | The address; without it, it comes from the title |
description | Markdown, up to 20,000 | No | The guidelines, in Markdown (or HTML) |
summary | text, up to 1,000 | No | One or two lines for the cards and the feed |
type | simple, advanced | No | Simple or advanced. See The call type |
modality | in_person, online, hybrid | No | In person, online or hybrid |
submission_opens_at, submission_closes_at | date and time | No | The period for proposing |
review_opens_at, review_closes_at, results_announced_at | date and time | No | The review and the announcement |
voting_opens_at, voting_closes_at | date and time | No | The voting window |
evaluation_mode | none, committee, community | No | No review, committee per track or community vote |
blind_review | yes or no | No | The reviewer doesn't see who proposed |
min_reviews_per_submission | number, up to 20 | No | Minimum reviews per proposal |
max_submissions_per_speaker | number, up to 100 | No | Proposals per person |
vote_visibility | hidden, counts, full | No | What the voting result shows |
who_can_vote | owners, staff, members | No | |
allow_counter_offer, counter_offer_timeout_days | yes or no; days | No | Advanced only: counter-offers and the deadline to answer |
allowed_formats | list of formats | No | |
allowed_durations | list of minutes | No | For example [20, 40] |
speaker_benefits | list of texts | No | For example Ticket, Speakers' dinner |
air_travel_cost, ground_transport_cost, parking_cost, accommodation_cost, meal_cost | none, organizer, speaker | No | Who pays each cost |
speaker_fee_mode, speaker_fee_amount | none, fixed, speaker_defined; amount | No | The fee: none, fixed or stated by the proposer |
tracks | list of name, purpose | No | The tracks, all at once (up to 30). The purpose is the reviewers' yardstick |
event_dates | list of date, start_time, end_time | No | The event days (up to 60) |
image_url or image_base64 | link or file | No | The banner (16:9) |
featured_image_url | link | No | The square image (1:1) |
idempotency_key | text | No | Repeating with the same key doesn't create it again |
Returns: the created call. A bad image doesn't stop the creation; the reason comes in warnings.
Ask like this: "Open the call for Congress 2027, in person in São Paulo on March 12 and 13, with the tracks Product, Data and Career. Proposals until November 30. We pay for lodging and meals; travel is on the speaker. Leave it as a draft and show me."
Notes: the call starts as a draft; publish it with update_call_status. After it's created, the response suggests what's missing: tracks, reviewers, publishing. The fee is recorded in the agreement; payment happens outside the platform.
update_call_for_papers
Changes
Edit call for papers. The same fields as create_call_for_papers, except tracks and days, which have their own tools. Only what is sent changes. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
| the call's fields | No | Title, text, dates, type, formats, durations, costs, fee, voting, review, banner and square image |
Ask like this: "Extend the Congress 2027 proposal deadline to December 15."
Notes: a call that already has scores or a negotiation can't go back from advanced to simple.
update_call_status
Changes
Publish, close or reopen call. Changes a call's status. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
action | publish, unpublish, close, reopen, set_status | Yes | Publish, go back to draft, close, reopen or set a specific status |
status | one of the statuses | With set_status |
Ask like this: "Publish the Congress 2027 call." · "Close the call: the deadline has passed."
delete_call_for_papers
Asks to confirm
Delete call for papers. Deletes the call, with its tracks and proposals. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes |
Returns: on the first call, the summary (title, status, how many proposals) and the confirmation code.
add_call_track
Changes
Add track to call. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
name | text, up to 255 | Yes | |
purpose | text, up to 5,000 | Yes | What the track is looking for and what it isn't: the reviewers' yardstick |
Ask like this: "Add the Data track, for real data analysis and engineering cases, no tool tutorials."
update_call_track
Changes
Edit track. Renames a track or changes its purpose. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id | id | Yes | From get_call_for_papers |
name, purpose | text | No |
delete_call_track
Asks to confirm
Delete track. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id | id | Yes | From get_call_for_papers |
add_call_event_date
Changes
Add event day to call. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
date | date (2027-03-12) | Yes | |
start_time, end_time | time (09:00) | Yes | In the community's time zone |
update_call_event_date
Changes
Change event day times. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
date_id | id | Yes | From get_call_for_papers |
start_time, end_time | time | No | At least one |
delete_call_event_date
Asks to confirm
Remove event day. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
date_id | id | Yes | From get_call_for_papers |
add_call_owner
Changes
Invite call co-owner. Invites a member to share the call with you: an owner looks after the call, the tracks, the reviewers and the decisions. The person accepts with respond_to_call_invitation. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
profile_id | id | Yes | From list_members |
Notes: it gives power over the call, and the person gets the invitation by e-mail.
remove_call_owner
Asks to confirm
Remove call owner. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
owner_id | id | Yes | The id in owner_links from get_call_for_papers, not the person's id |
list_track_reviewers
Read-only
List track reviewers. A track's reviewers and whether each one has accepted. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id | id | Yes | From get_call_for_papers |
invite_track_reviewer
Changes
Add track reviewer. Makes a member a reviewer for a track: they score every proposal in that track. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
track_id | id | Yes | From get_call_for_papers |
profile_id | id | Yes | From list_members |
Ask like this: "Make Ana and Bruno reviewers for the Data track."
Notes: the person finds out by e-mail, on the first call.
remove_track_reviewer
Asks to confirm
Remove track reviewer. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
reviewer_id | id | Yes | The id in trackReviewers from get_call_for_papers, or from list_track_reviewers |
list_my_call_invitations
Read-only
My call invitations. Your pending invitations to be a call's owner or a track's reviewer. Minimum role: any.
Parameters: none.
Ask like this: "Do I have any invitations to review proposals?"
respond_to_call_invitation
Changes
Answer call invitation. Minimum role: any, on your own invitations.
| Parameter | Type | Required | Description |
|---|---|---|---|
kind | owner, reviewer | Yes | Invitation as owner or as reviewer |
invitation_id | id | Yes | From list_my_call_invitations |
answer | accept, decline | Yes |
Notes: accepting a reviewer invitation leads to your review queue (list_my_reviews).
list_speakers
Read-only
List speakers. Everyone who has proposed in the community, grouped by person, so you can invite them again. Role: the team or a call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | No | Only those who proposed in one call-for-papers space |
invite_speaker
Changes
Invite speaker to submit. Invites a member to send a proposal to a call, with an optional note. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
profile_id | id | Yes | From list_speakers or list_members |
message | text, up to 2,000 | No | Goes in the e-mail |
Ask like this: "Invite last year's speakers to propose again for Congress 2027."
Notes: it sends an e-mail on the first call.
list_proposals
Read-only
List a call's proposals. The proposals, with status, track and scores. Role: what shows up depends on your role in the call: owners see all of them, a reviewer those in their track, a proposer their own.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes |
Ask like this: "Which proposals in the Product track have the best scores?"
Notes: with proposals waiting for a decision, the response suggests deciding each one.
get_proposal
Read-only
See proposal. The text, the track, the status, the reviews you can see and the negotiation rounds. Role: the call's owners, the track's reviewers and the proposer.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link (with ?proposal=) | Yes |
list_my_reviews
Read-only
My review queue. The proposals in the tracks you review, with your score when you've already given one. Role: reviewers.
Parameters: none.
Ask like this: "What do I still have to review?"
review_proposal
Changes
Review proposal. Scores a proposal in a track you review. Role: a track reviewer who accepted the invitation.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
score | 1 to 5 | Yes | |
recommendation | accept, reject | No | |
internal_notes | text | No | Only reviewers and owners see it; the proposer, never |
comments_to_speaker | text | No | The feedback for the proposer |
submit | yes or no | No | Default yes. With no, it stays as a draft to change later; once submitted, the review is locked |
Ask like this: "Give Ana's proposal a 4, recommending acceptance: the topic is great, but the outline needs a real case."
Notes: only during the review period, and never on your own proposal.
get_review_progress
Read-only
See review progress. How many reviews each proposal and each reviewer has, against the call's minimum. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes |
Ask like this: "Who on the committee hasn't reviewed yet?"
get_proposal_reviews
Read-only
See proposal reviews. Each score and recommendation, and the consensus. Role: the call's owners; a reviewer, after sending theirs.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes |
decide_proposal
Changes
Accept or reject proposal. With an optional message to the proposer. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link (with ?proposal=) | Yes | |
decision | accept, reject | Yes | |
message | text | No | Goes in the e-mail, as the organizers' note |
Ask like this: "Accept Ana's proposal and thank her for submitting."
Notes: the person receives an e-mail on the first call, which is why the assistant checks the decision and the message with you first. After accepting, the response suggests confirming in the program. See Call for papers emails.
negotiate_proposal
Changes
Negotiate proposal. The organizers' side of a negotiation (advanced call, with counter-offers turned on). Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
action | counter_offer, retract, accept, decline | Yes | Make a counter-offer, withdraw the open one, accept the speaker's counter-offer or end it, rejecting the proposal |
terms | format, duration_minutes, track_id, scheduled_at, delivery_mode, the costs, fee_amount | No | Only the terms that change |
message | text | No |
Ask like this: "Propose to Ana that she runs the workshop in 90 minutes instead of 3 hours, with lodging on us."
Notes: each step e-mails the proposer, on the first call.
confirm_proposal
Changes
Confirm proposal in the program. The final step of an accepted proposal, with the date and time if there is one already. Role: the team or the call's owner.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
scheduled_at | date and time | No | In the community's time zone |
list_votable_proposals
Read-only
See voting ballot. The proposals you can vote on in a call with a community vote, and your current vote. Role: whoever the call lets vote.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes |
vote_on_proposal
Changes
Vote on proposal. From 1 to 5, within the voting window, or removes the vote. Role: whoever the call lets vote.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
value | 1 to 5 | No | The vote |
remove | yes or no | No | Removes your vote |
get_vote_results
Read-only
See voting results. As far as the call's vote visibility allows. Role: depends on the call.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes |
list_my_proposals
Read-only
My proposals. Your proposals in the community, or in one call, with status. Minimum role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | No | Only those in this call |
submit_proposal
Changes
Submit proposal. Proposes a session to an open call. The proposal goes out under the name of whoever connected the assistant. Role: any member, while the call is open.
| Parameter | Type | Required | Description |
|---|---|---|---|
call | id or link | Yes | |
title | text, 3 to 255 | Yes | |
description | Markdown, up to 20,000 | Yes | The proposal, in Markdown |
format | one of the formats | Yes | |
duration_minutes | minutes | Yes | |
level | beginner, intermediate, advanced | No | |
track | the track's id or name | When the call has tracks | |
delivery_mode | in_person, online, either | In a hybrid call | |
format_other, language, target_audience, prerequisites, resources_needed | text | No | |
pitch_video_url, speaker_video_url | link | No | |
requested_fee_amount | amount | No | When the call lets the proposer state the fee |
send | yes or no | No | Default yes. With no, it stays as a draft to send later |
idempotency_key | text | No |
Ask like this: "Submit my talk 'Data without spreadsheets' to Congress 2027, 40 minutes, intermediate level, in the Data track."
update_proposal
Changes
Edit my proposal. Changes the proposal while it's a draft, and submits it with send. Only what is sent changes. Role: the proposer.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
| the proposal's fields | No | The same as in submit_proposal | |
send | yes or no | No | Submits the proposal |
withdraw_proposal
Asks to confirm
Withdraw my proposal. With an optional note to the organizers. Role: the proposer.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
message | text, up to 2,000 | No |
Notes: it can't be undone, which is why it asks for your yes.
respond_to_counter_offer
Changes
Answer counter-offer. The proposer's answer to the organizers' counter-offer: accept (the proposal is accepted on those terms) or answer with their own terms and a note. Role: the proposer.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposal | id or link | Yes | |
answer | accept, counter | Yes | |
terms | the same terms as in negotiate_proposal | No | With counter |
message | text | No |
Notes: it commits the proposer and notifies the organizers, on the first call.