MCP tools
Buzzmark's MCP server gives a connected AI app tools to read your account, write and check posts in your Hive voice, add pictures, plan a week and schedule a Buzz.
Read-only tools change nothing; the others add drafts, pictures or a plan, or change when a Buzz goes out.
No tool posts right away, and every tool follows the same rules as the app.
How the tools work
Your app picks the tools from what you ask, so you never need their names. Most tools take a social_set_id, which the app reads from list_social_sets first, and every tool runs as the person who connected the app, in that person's account.
A tool answers in a sentence plus JSON. A refusal is a sentence Buzzmark wrote, with the reason and what to fix, such as a post over a platform's length or a time that has passed.
Read-only and write tools
Read-only tools only look: your social sets, Hive profiles, posts, best times and each post's numbers. A rewrite is read-only too, because it answers up to 3 versions and saves nothing.
Write tools either add something or change something. Posts Buzz writes, a picture, a planned week and a Hive check score are added to your account and change nothing that's there. Saving over a draft, deleting one and giving it a version per platform change a draft. The scheduling tools change when or whether a Buzz goes out, and apps that ask before a change ask you before those.
What counts against your plan
Reading costs nothing. A post Buzz writes counts as one Buzz written for you, and a planned week counts one for each planned post. A picture uses one picture credit, a Hive check counts as one, and a fresh read of the news for ideas counts as one Scout run. It's the same count as in the app. Plans and usage has each plan's amounts.
Tools in Claude
Claude's address leaves out create_image and add_media_from_chat: Claude's directory doesn't take tools that make images with AI, and Claude doesn't hand a chat attachment to a tool. Every other app gets all the tools below.
Every tool
List social sets
list_social_setsReads onlyThe user's social sets: each is a group of connected social accounts with its own Hive profile (brand voice), time zone and weekly posting slots. Start here: most other tools take a social_set_id and account ids from this answer.
No inputs.
List brand profiles
list_brand_profilesReads onlyThe user's brand profiles (Buzzmark calls them Hive profiles): what Buzzmark knows about each brand, its voice, tone, audience and products. Writing tools write in a brand profile's voice; pass its id as hive_profile_id, or leave it out to use the social set's own.
No inputs.
List posts
list_postsReads onlyBuzzes in Buzzmark, newest first: drafts, scheduled, published or failed. Text is cut to 400 characters; get_post gives the whole Buzz.
statusOptional- one of "draft", "scheduled", "published", "failed", "all".
social_set_idOptional- number.
limitOptional- number, 1 to 50.
Get a post
get_postReads onlyOne Buzz in full: every part of a thread, its pictures, its first comment, the accounts it goes to, its status and time.
post_idRequired- number.
Write posts in the brand's voice
write_postsMakes changesBuzz writes 1 to 5 new posts from an idea, in a Hive profile's voice, with Buzzmark's writing rules and its after-check. Every answer is kept in the user's Library in Buzzmark. Nothing is saved as a draft: pass the text you want to save_draft.
ideaRequired- text, up to 2,000 characters. What the posts are about, in the user's words.
hive_profile_idOptional- number.
social_set_idOptional- number. Social set whose Hive profile writes the posts, when hive_profile_id is left out. Optional when the account has one set.
platformOptional- text. Buzzmark platform id (x, linkedin, instagram, threads, facebook, tiktok, bluesky) to write for.
formatOptional- one of "post", "thread".
countOptional- number, 1 to 5.
with_picture_briefOptional- yes or no. Add a brief for a picture to each post, for create_image.
Save a draft
save_draftMakes changesCreates a Buzz draft, or updates one (post_id). A draft stays a draft: nothing is posted or scheduled. Give text for one post, or thread for several. Says what a platform would refuse (length, a missing picture, a LinkedIn tag LinkedIn can't find) so it can be fixed before schedule_post. Tagging: on X, Threads, Instagram and TikTok write @handle. On LinkedIn write the profile or page link in brackets, @[https://www.linkedin.com/company/<slug>] or @[https://www.linkedin.com/in/<id>], and LinkedIn shows its own name for it; every other platform gets that name as plain text. On Facebook a mention stays plain text. A brand profile with accounts (list_brand_profiles shows them) needs none of that: write its name, and when the post is scheduled its first mention is tagged on each platform it has an account on. first_comment adds a comment posted under the post the moment it goes out, on LinkedIn, Instagram, Facebook and Threads: the place for a link or the hashtags, so the post itself stays clean.
post_idOptional- number. Update this draft instead of making a new one.
textOptional- text, up to 10,000 characters.
threadOptional- list of text, up to 25. A thread: one string per post. Replaces text.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
hive_profile_idOptional- number.
account_idsOptional- list of number, up to 20. Accounts it goes to, first one leading. Default: the set's default accounts.
first_commentOptional- text, up to 5,000 characters. A comment posted under the post right after it goes out, on LinkedIn, Instagram (not a story), Facebook and Threads; other platforms leave it out. At most 500 characters on Threads, 1,250 on LinkedIn, 2,200 on Instagram, 5,000 on Facebook. An empty string removes it; leave it out to keep the draft's comment as it is.
Schedule a post
schedule_postMakes changesSchedules a draft for a time, or for the social set's next free posting slot. Never posts right away. Times are on the set's clock unless they carry an offset. When the set has natural times on (list_social_sets says), the post goes out a few minutes either way of the time named; the answer says the real time. When the person's role in their organization needs an approval first, the draft is sent for approval instead (sent_for_approval in the answer) and goes out once a teammate approves it. For several drafts at once, use schedule_posts.
post_idRequired- number.
whenRequired- text. "next_slot", or a date and time: "2026-10-02T09:00" on the set's clock, or ISO 8601 with an offset.
account_idsOptional- list of number, up to 20. Default: the accounts saved on the draft, else the set's default accounts.
Schedule several posts
schedule_postsMakes changesSchedules up to 25 drafts in one go, each at its own time or the next free slot, for example the drafts create_weekly_content_plan saved (each one's date and time is its slot). Never posts right away. Each draft is checked on its own: one that can't go out is reported and the others are still scheduled. When the person's role needs an approval first, the drafts are sent for approval instead.
postsRequired- list of object, up to 25. Each draft with its time (post_id, when, optional account_ids).
Move a scheduled post
reschedule_postMakes changesMoves a scheduled post to a new date and time on the set's clock, kept exactly. Never posts right away. The words, pictures and accounts stay as they are.
post_idRequired- number.
whenRequired- text. A date and time: "2026-10-02T09:00" on the set's clock, or ISO 8601 with an offset.
Take a post off the schedule
unschedule_postMakes changesTakes a scheduled post off the calendar and back to the drafts, with its text, pictures and accounts, so it can be edited or scheduled again. Nothing is deleted. Pictures the posting queue held are copied into Buzzmark first; if one can't be, the post stays scheduled.
post_idRequired- number.
Delete a draft
delete_draftMakes changesDeletes a draft for good. A scheduled or published post can't be deleted here: take a scheduled one back to drafts with unschedule_post first.
post_idRequired- number.
Check a post against the brand voice
check_postMakes changesScores a post 0 to 100 on how much it sounds like the brand, with a short verdict, the one thing that works or drifts, and up to three edits that would raise the score, each as the whole post rewritten. Checks any text, including text written in this chat, or a draft (post_id), whose score is kept beside it in Buzzmark. Changes nothing in the post.
textOptional- text, up to 10,000 characters. The post to check. Leave out to check the draft named by post_id.
post_idOptional- number.
platformOptional- text. Buzzmark platform id the post is for. Default: the draft's first account.
hive_profile_idOptional- number. Brand profile id from list_brand_profiles. Default: the social set's own.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
Rewrite a post
rewrite_postReads onlyBuzz rewrites a post one way and answers up to three versions to pick from, in the brand's voice and with Buzzmark's writing rules. Nothing is saved: pass the version the user picks to save_draft. Actions: match_hive (sound like the brand), fix_grammar (spelling and grammar only), sharpen (clearer, tighter), sting (more punch), trim (about half the length), remix (fresh words), expand (one concrete detail more), structure (short lines, easy to scan), warmer, thread_hook (the opening post of a thread), emoji, emoji_bullets, announcement (framed as news), for_platform (rewritten the way the platform reads), custom (follow the user's instruction).
actionRequired- one of "match_hive", "fix_grammar", "sharpen", "sting", "trim", "remix", "expand", "structure", "warmer", "thread_hook", "emoji", "emoji_bullets", "announcement", "for_platform", "custom".
textOptional- text, up to 10,000 characters. The post to rewrite. Leave out to rewrite a draft's part (post_id, part).
post_idOptional- number.
partOptional- number, 0 to 24. Which post of a thread, from 0.
platformOptional- text. Buzzmark platform id. Needed for for_platform; otherwise it sets the length the rewrite keeps to.
instructionOptional- text, up to 600 characters. For custom: how to rewrite it, in the user's words.
hive_profile_idOptional- number. Brand profile id from list_brand_profiles. Default: the social set's own.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
Give a draft a version per platform
adapt_for_platformsMakes changesRewrites a draft the way each platform it goes to reads it (or the platforms named), and saves those versions on the draft, as Spread does in the app: the draft's first account keeps the post itself, every other platform gets its own text, with the same pictures. A version saved before for one of those platforms is replaced. Works on a single post, not a thread. A LinkedIn version keeps LinkedIn tags as @[link]; the answer warns about any LinkedIn can't find.
post_idRequired- number.
platformsOptional- list of text, up to 8. Buzzmark platform ids among the draft's accounts. Default: every platform after the first account's.
Post ideas from the news and competitors
get_post_ideasMakes changesPost ideas for a brand from Buzzmark's Scout: this week's news in its sector, each topic with why it matters now, its sources and two or three angles to post, plus angles from its competitors when Scout has read them. Answers Scout's latest read with its date. With refresh, or when Scout has never read the news for this brand, it reads the news again first (up to a minute, counted as one Scout run). Ideas only: write them up with write_posts.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
hive_profile_idOptional- number. Brand profile id from list_brand_profiles. Default: the social set's own.
refreshOptional- yes or no.
What worked this month
get_insightsMakes changesWhat a brand's posts from the last 30 days say, as a few findings and moves in plain sentences, each with the number it stands on (for example, posts that open with a question got twice the engagement) and an idea to act on. Read at most once a day: the same answer comes back until the numbers move. Needs enough posts with numbers, and says how many more when there aren't.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
hive_profile_idOptional- number. Brand profile id from list_brand_profiles. Default: the social set's own.
Best times to post
get_best_timesReads onlyWhen a social set's own posts have done best: average likes, comments, shares and saves per post in each weekday and hour, on the set's clock. Needs published posts to say anything.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
daysOptional- number, 14 to 180.
How recent posts did
get_post_statsReads onlyA social set's published posts from the last days with their numbers, best first. Only numbers a platform reports are shown.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
daysOptional- number, 1 to 180.
limitOptional- number, 1 to 30.
Make a picture
create_imageMakes changesMakes a picture with Buzzmark's image model and keeps it in the user's Library. With post_id it's also added to that draft. The picture takes the Hive profile's colours, and a named Hive product brings its real photo as the reference. Uses one of the month's picture credits; a failed or refused picture isn't counted. Takes about a minute.
promptRequired- text, up to 3,000 characters. What the picture shows. A photograph by default.
hive_profile_idOptional- number.
productOptional- text, up to 200 characters. A product name exactly as the Hive profile lists it, to use its photo.
platformsOptional- list of text, up to 8. Where it goes, for the shape (Instagram and Threads 4:5, TikTok 2:3, else square). Default: the draft's platforms.
post_idOptional- number. A draft to add the picture to.
partOptional- number, 0 to 24. Which post of a thread, from 0.
Add a picture or video from a link
add_media_from_urlMakes changesCopies a picture or video from a public https link into the user's Library in Buzzmark, and with post_id adds it to that draft. Buzzmark keeps its own copy, so the post never depends on the link staying up. Takes JPG, PNG, WebP, GIF, MP4 or MOV: pictures up to 10 MB, videos up to 200 MB. Says what a platform would refuse, like create_image does.
urlRequired- text, up to 2,000 characters. A public https link straight to the file, not to a page that shows it.
post_idOptional- number. A draft to add it to. Without one it goes to the Library only.
partOptional- number, 0 to 24. Which post of a thread, from 0.
Get an upload link
create_upload_linkMakes changesFor a picture or video the user has on their own computer or phone, not at a public link. Answers two ways in, both good for one file: upload_page, a Buzzmark page to send the user, where they pick the file and it goes straight onto the draft (pass post_id); and, with file_name, upload_url, for an app that can read the file itself (a terminal or a file system): PUT the file's bytes there with the Content-Type header the answer gives, then call add_uploaded_media with upload_id. Takes JPG, PNG, WebP, GIF, MP4 or MOV: pictures up to 10 MB, videos up to 200 MB.
file_nameOptional- text, up to 120 characters. The file's name with its ending, like "launch.png", when this app uploads the file itself. Leave it out to only get the page for the user.
post_idOptional- number. A draft to add the file to. Without one it goes to the Library only.
partOptional- number, 0 to 24. Which post of a thread, from 0.
Add an uploaded picture or video
add_uploaded_mediaMakes changesAfter the file was PUT to create_upload_link's upload_url: copies it into the user's Library in Buzzmark, and with post_id adds it to that draft. Says what a platform would refuse, like add_media_from_url does. An upload_id works for 55 minutes.
upload_idRequired- text, up to 2,000 characters. upload_id from create_upload_link.
post_idOptional- number. A draft to add it to. Without one it goes to the Library only.
partOptional- number, 0 to 24. Which post of a thread, from 0.
Add a picture or video from this chat
add_media_from_chatMakes changesA picture or video the user attached in this chat: copies it into their Library in Buzzmark, and with post_id adds it to that draft. Says what a platform would refuse. Takes JPG, PNG, WebP, GIF, MP4 or MOV: pictures up to 10 MB, videos up to 200 MB.
fileRequired- object. The file the user attached in the chat.
post_idOptional- number. A draft to add it to. Without one it goes to the Library only.
partOptional- number, 0 to 24. Which post of a thread, from 0.
Plan the week
create_weekly_content_planMakes changesA plan for a social set's next 7 days: what the week is for, 2 to 4 content pillars, and one ready-to-edit post per posting slot, each with its day, time, platform, a picture idea and why it's there. Built from the set's Hive profile, its posting slots, its best times and how recent posts did, and what's already scheduled. Needs a connected account; with fewer than 8 published posts with numbers it leans on the brand's voice and the platforms' norms, and says so. Kept in the Library. Ask the user first whether they want the posts as drafts: with save_as_drafts every post also becomes a draft, and schedule_posts then puts them all on their slots in one go. Each planned post counts as one Buzz written for you. Takes up to a minute.
social_set_idOptional- number. Social set id from list_social_sets. Optional when the account has one set.
goalOptional- text, up to 600 characters. What the week should do, in the user's words: a launch, an event, more bookings.
startOptional- text. First day, YYYY-MM-DD on the set's clock. Default: tomorrow.
save_as_draftsOptional- yes or no.
Where to next
- What to askAsk a connected AI app in your own words, the way you'd brief a person: which business or social set, which platforms, and what you want done.
- Sign-in, keys and limitsAn AI app signs in to Buzzmark on a Buzzmark page in your browser, where you press Allow, and from then on it works as you until you disconnect it.
- TroubleshootingWhen an AI app can't do something in Buzzmark, Buzzmark answers with a sentence that says what happened and what to do next, and the app passes it on.
- Other MCP appsAny app that speaks MCP over Streamable HTTP can connect to Buzzmark at https://buzzmark.ai/mcp.