---
title: "Chockstone MCP tools"
description: "Every tool Chockstone Labs offers to Claude, ChatGPT, Claude Code, Codex and other MCP clients, made from the server’s own list. What each does, read or change, and what the server enforces."
canonical: https://chockstonelabs.com/mcp-tools/
last_updated: 2026-11-10
source: "The same content as https://chockstonelabs.com/mcp-tools/"
---

Source: the same content as https://chockstonelabs.com/mcp-tools/

# Chockstone MCP tools.

Chockstone Labs is built MCP first: every feature in the app is a tool an assistant can call. Connect Claude, ChatGPT, Claude Code, Codex or any other MCP client, and it works inside the approvals, limits and messaging rules our server enforces.

## Connect an assistant

The server URL is `https://chockstonelabs.com/mcp`. You need a Chockstone Labs account; [start free](https://chockstonelabs.com/app/start) if you don’t have one.

- Claude: [Use with Claude](https://chockstonelabs.com/social/claude/) has the three steps.
- ChatGPT: [Use with ChatGPT](https://chockstonelabs.com/social/chatgpt/) has the setup and the cards it shows.
- Claude Code: run `claude mcp add --transport http chockstonelabs https://chockstonelabs.com/mcp`, then `/mcp` to sign in.
- Codex: [Schedule posts with ChatGPT](https://chockstonelabs.com/guides/schedule-posts-with-chatgpt/) covers ChatGPT and Codex over MCP.
- Other MCP clients connect with an API key. [The product overview](https://chockstonelabs.com/social/) says more.

## What the server enforces

These rules live on our server, not in the assistant, so a connected assistant cannot skip them.

- A person approves every post, unless an owner turns on auto-approve for that connection. TikTok and YouTube posts always wait for a person.
- Deleting, or publishing a post early, asks first: the assistant shows what would happen and waits for your yes.
- Each connection holds only the permissions and brands you gave it when you signed in. A tool that changes something needs its permission (`media`, `draft`, `schedule`, `publish`, `comments`, `dm`, `admin`, `workspaces`), and a read-only connection cannot call it.
- Plan limits, such as posts a month and connected accounts, apply to assistants the same way they apply to people. See [pricing](https://chockstonelabs.com/pricing/).
- Automated Instagram DMs go at most 190 an hour for each account, and the rest wait their turn.
- Every change shows in Activity, and most can be undone for 7 days. Anything already published stays published.

## The tools, counted

**315 tools**: 116 read-only, 199 that change things, and 96 available in ChatGPT, which limits an app to 100 tools. The machine-readable list is [tools.json](https://chockstonelabs.com/mcp-tools/tools.json).

### Jump to a group

- [Posting and calendar](https://chockstonelabs.com/mcp-tools/#g-posting-and-calendar) (57)
- [Video editing](https://chockstonelabs.com/mcp-tools/#g-video-editing) (42)
- [Formats and ideas](https://chockstonelabs.com/mcp-tools/#g-formats-and-ideas) (6)
- [Inbox and comments](https://chockstonelabs.com/mcp-tools/#g-inbox-and-comments) (26)
- [DM automation](https://chockstonelabs.com/mcp-tools/#g-dm-automation) (12)
- [Link in bio](https://chockstonelabs.com/mcp-tools/#g-link-in-bio) (43)
- [Brand and deals](https://chockstonelabs.com/mcp-tools/#g-brand-and-deals) (41)
- [Insights and analysis](https://chockstonelabs.com/mcp-tools/#g-insights-and-analysis) (31)
- [Library and media](https://chockstonelabs.com/mcp-tools/#g-library-and-media) (21)
- [Accounts and settings](https://chockstonelabs.com/mcp-tools/#g-accounts-and-settings) (36)

## Try it

Ask your assistant any of these. Each one names the tools it calls.

- “What needs my attention today?” Uses [`today_summary`](https://chockstonelabs.com/mcp-tools/#t-today_summary).
- “Draft a reel caption for this video and schedule it for Thursday’s best time.” Uses [`post_create`](https://chockstonelabs.com/mcp-tools/#t-post_create), [`slots_next`](https://chockstonelabs.com/mcp-tools/#t-slots_next), [`post_schedule`](https://chockstonelabs.com/mcp-tools/#t-post_schedule).
- “Which of my posts did best this month, and why?” Uses [`insights_get`](https://chockstonelabs.com/mcp-tools/#t-insights_get).
- “When someone comments LINK on my latest reel, send them my shop link by DM. Test it first.” Uses [`dm_automation_create`](https://chockstonelabs.com/mcp-tools/#t-dm_automation_create), [`dm_automation_test`](https://chockstonelabs.com/mcp-tools/#t-dm_automation_test).
- “What is rising on YouTube and Google this week, and what should I post about it?” Uses [`trends_get`](https://chockstonelabs.com/mcp-tools/#t-trends_get), [`trend_draft`](https://chockstonelabs.com/mcp-tools/#t-trend_draft).
- “Add my new affiliate link to my link page and show me how the page looks.” Uses [`link_create`](https://chockstonelabs.com/mcp-tools/#t-link_create), [`bio_page_render`](https://chockstonelabs.com/mcp-tools/#t-bio_page_render).

## All tools

Read means the tool only looks. Change means it saves, sends or removes something, inside the rules above.

### Posting and calendar

| Tool | What it does | Access |
| --- | --- | --- |
| `account_group_delete` | Delete a posting group. | Change |
| `account_group_save` | Make a posting group (name and account_ids), or change one (group_id, with a new name, new account_ids, or both). | Change |
| `account_groups_list` | The workspace's posting groups, in the order the app's Post to row shows them after All (every connected account). | Read |
| `approval_link_create` | A link for someone without an account (usually the brand's owner) to see one post waiting for approval and tap Approve or Ask for changes with a note. | Change |
| `approval_link_create_waiting` | One link for someone without an account to see every post waiting for approval in the workspace (up to 25, oldest first) and approve them all with one tap. | Change |
| `approval_link_revoke` | Stops an approval link at once (see approval_links_list). | Change |
| `approval_links_list` | A post's approval links, newest first, with whether each still works and what the recipient decided. | Read |
| `evergreen_list` | Published posts set to come back as fresh drafts, with how often and when the next copy is made. | Read |
| `evergreen_set` | Turn evergreen on or off for a published post, or change how often it comes back. | Change |
| `feed_add` | Turn on a blog or feed in one step: pass the site (the feed is found from its page) or the feed's own address. | Change |
| `feed_drafts` | Drafts that feeds made and that still wait for approval, newest first, with the blog item's title, link and summary. | Read |
| `feed_pause` | Pause a feed (paused: true, the default) or turn it back on (paused: false). | Change |
| `feed_remove` | Stop posting from a feed and forget it. | Change |
| `feeds_list` | The blogs and feeds this brand posts from, each on or paused, with how many drafts it made and why its last check failed, if it did. networks. | Read |
| `hashtags_suggest` | Hashtags for a network, best first, ranked by how the account's own posts with each did against its usual views, then competitors' on the same network, plus its. | Read |
| `highlight_create` | Plan a Highlight on an Instagram account (it goes last unless position is given). | Change |
| `highlight_filed` | Record that a published Story was added to its Highlight in Instagram (filed: false undoes it). | Change |
| `highlight_reorder` | Set the profile order of one account's Highlights, first to last. | Change |
| `highlight_update` | Rename a Highlight, change what goes in it or its refresh pace, or retire it (archived: true). | Change |
| `highlights_list` | Each Instagram account's Highlights in profile order, with how many Stories went in, which are due for a fresh Story, and the published Stories still to add in. | Read |
| `pinterest_boards` | The boards a Pinterest account's Pins can go to, and the one a post uses when options.pinterest.board_id is left out. | Read |
| `plan_get` | The org's plan and each limit with how much is used. | Read |
| `post_copy_elsewhere` | Post a video they posted on Instagram outside the app on their other networks too. | Change |
| `post_create` | For a video or reel you made, omit account_ids and never ask which accounts. | Change |
| `post_delete` | Move a post, or several, to trash (kept 30 days; undo restores them). | Change |
| `post_duplicate` | Copy a post's current version (caption, media, format, options, series) into a new draft, for the same accounts or others in its workspace. | Change |
| `post_get` | One post with its current version, version history, per-account targets and preflight issues. | Read |
| `post_hook_set` | Set how a post opens (its hook: a question, a number, a story, etc.), which insights_get hooks compares. | Change |
| `post_like_this` | Everything for a new post like one that did well, except the new photo or video. | Read |
| `post_list` | List the workspace's posts, newest first; each says who made it (made_by: person or agent) and, for a Reel with a Trial Reel, its pair. | Read |
| `post_publish_now` | Publish an approved post immediately. | Change |
| `post_schedule` | Set when a post goes out: scheduled_at, or next_slot=true for each account's next free posting time (time_reason says why). | Change |
| `post_submit` | Send a draft to the approval queue. | Change |
| `post_unschedule` | Take a post off the schedule. | Change |
| `post_update` | Change a post. | Change |
| `posts_fill_week` | Put what is ready into each account's free posting times for the next days (default 7): approved posts with no time first, then drafts with no errors. | Change |
| `posts_import` | Create many drafts at once from spreadsheet rows (up to 200): when, accounts (@handles), format, caption, first_comment, media (media library file names), series, title. | Change |
| `routine_dismissed` | Records that the person doesn't want a routine, so it is never offered again (routines_suggest, today_summary.suggested_routines). | Change |
| `routine_get` | Step-by-step instructions for a scheduled routine. | Read |
| `routine_scheduled` | Records that you scheduled a routine for this person (with routines_suggest's prompt and time), and in which client, so it is never offered again. | Change |
| `routines_suggest` | The 3 to 5 scheduled routines that fit this person, from their own data, each with why, when (plus cron and the workspace's IANA time zone) and the exact standing prompt. | Read |
| `series_create` | Start a recurring series. | Change |
| `series_get` | One series with every episode: status, when it went out and its views, likes, comments, shares, saves and engagement rate. styles lists the video styles it. | Read |
| `series_list` | Recurring series ("Market prep", "Day in the life") with progress and how each performs against the account's other posts. | Read |
| `series_update` | Rename a series, change its accounts (account_ids), hashtags, weekly target or video styles (style_ids), or archive it (archived: true). | Change |
| `target_mark_posted` | Record that a post finished in the network's app (TikTok inbox uploads, finish-in-app and post-it-yourself posts). | Change |
| `target_post_kit` | Everything a person needs to post one account's approved post by hand on their phone. | Change |
| `target_retry` | Retry one account's failed, blocked or needs-you target now, still approved. | Change |
| `template_create` | Save a caption template (text the team reuses, like a sign-off or an offer) or a hashtag set. | Change |
| `template_delete` | Delete a saved template or hashtag set for good (undo can't bring it back). | Change |
| `template_update` | Rename a template or hashtag set, or change its text. | Change |
| `templates_list` | The workspace's saved caption templates and hashtag sets, by name. | Read |
| `trial_reel_open` | The published Trial Reel's own link in Instagram, where a person shares the original with followers and keeps its views (Instagram's API can't share it). | Read |
| `trial_reel_share` | Makes a published Trial Reel's copy for followers: a new, ordinary Reel on the same account at its next free posting time, sent for approval when nothing blocks it. | Change |
| `trial_reel_version_b` | Drafts the next version (B, C, etc.) of an existing Trial Reel test. | Change |
| `trial_reels_list` | The workspace's Trial Reels, grouped by test (options.instagram.trial_test_id, else trial_test). | Read |
| `youtube_options` | What a YouTube channel can post right now. | Read |

### Video editing

| Tool | What it does | Access |
| --- | --- | --- |
| `content_loop_start` | One call for steps 2 to 4 of the content loop. | Change |
| `content_loop_status` | Where a loop is, read from the rows that already exist (no loop table). | Read |
| `edit_change` | Change a post's video edit with 1 to 50 changes, in order. | Change |
| `edit_check_networks` | Whether a post's video is short enough for each account's network: per account ok, reason, max_seconds (null when no limit is on file for that network) and actual_seconds. | Read |
| `edit_frames` | The frame sheet the phone uploaded with its last render of a post's video, shown to you as an image. | Read |
| `edit_get` | Read a post's video edit: the edit list the iPhone app renders. | Read |
| `edit_instruct` | Change a post's video edit with one plain sentence, like "make it shorter and punchier", "open with the finished plate", "fewer effects", "make the captions. | Change |
| `edit_instruct_examples` | Example sentences for edit_instruct and the list of what it understands. | Read |
| `edit_render` | Ask the person's iPhone to render a post's current video edit: now (as soon as the app is open) or charging (while the phone charges). | Change |
| `edit_set` | Replace a post's whole video edit with a list shaped like edit_get's edit (anything left out takes its default), or copy another post's edit in the same. | Change |
| `edit_versions` | A post's video edit revisions, newest first: each save's rev, when, who and what changed. | Read |
| `graphic_make` | Add a graphic to a post's video edit at a moment. | Change |
| `graphic_options` | The three variants of a graphic the server made (close, stretch, bold) as media ids, with the one now in the edit. | Change |
| `graphic_swap` | Swap a placed graphic for another of its variants (close, stretch or bold) as a new rev; the pick is logged. | Change |
| `recipe_archive` | Take one of the workspace's recipes out of recipe_list (library status retired). | Change |
| `recipe_create` | Make a new look recipe in the workspace's library (version 1) and queue its looping cover GIF. | Change |
| `recipe_default_set` | Make one of the workspace's saved recipes the default for an account, or clear it with recipe_id null. | Change |
| `recipe_duplicate` | Copy a recipe (one of the workspace's or a house one) as a new recipe at version 1, named name or the original's name plus copy. | Change |
| `recipe_from_reference` | Turns a video she likes into a look recipe (schema 2). | Change |
| `recipe_get` | One recipe in full, migrated to schema 2: the recipe, two plain lines of summary, the accounts it is the default for, and its cover. | Change |
| `recipe_import` | Copy a shared recipe into this workspace from its link or token. | Change |
| `recipe_list` | The recipes an edit can use: the house recipes that come from the style study (none until a study has produced them) and this workspace's own saved recipes. | Change |
| `recipe_preview` | Queue the looping cover GIF of one of the workspace's recipes. | Change |
| `recipe_save` | Save a recipe to the workspace's library. | Change |
| `recipe_schema` | Everything needed to write a look recipe without reading code. | Read |
| `recipe_share` | Make a link to one of the workspace's recipes. | Change |
| `recipe_update` | Change settings of one of the workspace's recipes by path and save the result as its next version (older versions stay). set is an object of path to value. | Change |
| `reference_to_brief` | From a studied video's structure (hook type, beats with their share of the length, CTA, length, shot kinds) writes a brief in her topic and voice and a shot. | Change |
| `sticker_import` | Add a sticker to the workspace's "My stickers" pack. | Change |
| `sticker_packs_list` | The workspace's sticker packs with their license and credit line: the built-in Chockstone basics, and My stickers once something was added. | Change |
| `sticker_search` | Search the sticker library by name or tag (arrow, heart, sparkle, speech, price, etc.). | Change |
| `style_profile_get` | The look this workspace's videos follow, as learned from its style references: pacing, hook, on-screen text, transitions, caption tone, aspect and length. | Read |
| `style_profile_set` | Save what you learned from the style references as the workspace's style profile, as a new version (older versions stay readable). | Change |
| `style_reference_add` | Save a video the person likes the look of to the workspace's style library. | Change |
| `style_reference_delete` | Remove a video from the style library. | Change |
| `style_reference_get` | One style reference with the server's study of its uploaded video. | Change |
| `style_reference_study` | Ask the server to study a reference's uploaded video again (ffmpeg; it takes up to a minute), then read the result with style_reference_get. | Change |
| `style_references_import` | Bring the videos the person saved on Instagram, TikTok or YouTube into the style library as links, from the data export they downloaded themselves. | Change |
| `style_references_list` | The workspace's style library: videos the person likes the look of, newest first, each a link, an upload of theirs (media) or both, with their note on what they like. | Read |
| `suggestion_respond` | Records that the person turned down what an edit plan suggested for its opening. | Change |
| `take_file` | File takes from takes_list to a planned post (its id), a topic (its id, or a name: a topic with that name is made when there is none), B-roll or unfiled. | Change |
| `takes_list` | The takes recorded in the iPhone app and where each is filed: a planned post, a topic, B-roll (footage with no voice) or unfiled. | Read |

### Formats and ideas

| Tool | What it does | Access |
| --- | --- | --- |
| `competitor_suggest` | Up to 10 public handles that at least 3 other organizations in the same primary sub-niche already watch, with a band for how many (3-5, 6-20, 20+) and a reason. | Read |
| `niche_get` | The niches (field, sub-niche, free text, audience; one primary, up to 3) and topics (up to 10) saved for this workspace: its default and each account's own. | Read |
| `niche_set` | Save an account's niches (up to 3, one primary) and topics (up to 10), or the workspace default when account_id is left out. | Change |
| `niche_suggest` | Up to 3 ranked niche suggestions from what is already recorded: the account's bio, the hashtags and words in its recorded posts, its competitors and the workspace voice. | Read |
| `trend_draft` | What a post riding one trend should be: the hashtag, the networks and format it suits, why it fits the brand, and a ready post_create call with the hashtag in. | Read |
| `trends_get` | Shows what is rising now on public trending lists, read every few hours. | Read |

### Inbox and comments

| Tool | What it does | Access |
| --- | --- | --- |
| `comment_answer_draft` | Draft a public reply (and, on Instagram, a DM) for one comment on the account's own post (from comments_recent). | Change |
| `comment_answers_draft` | Draft answers to up to 50 comments in one call (from comments_to_answer): a public reply, on Instagram a DM too, or saved_reply_id to send a saved reply as written. | Change |
| `comment_dismiss` | Don't answer this comment: it leaves comments_to_answer and Inbox for good and nothing is sent. | Change |
| `comment_hide` | TikTok: hide a comment on the account's own video from everyone but the person who wrote it, or show it again (hidden: false). | Change |
| `comment_like` | Facebook only: like comments on the Page's own posts as the Page. | Change |
| `comment_replies_draft` | Write a draft public reply for each of up to 10 comments (comment_id from comments_to_answer), in the workspace's voice: US spelling, no dashes, 200 characters at most. | Change |
| `comment_replies_list` | Lists drafted answers to comments that wait for a tap. | Read |
| `comment_reply_send` | Send a suggested, failed or partial answer, optionally with edited text: reply/dm replace the drafted texts, null drops that part. | Change |
| `comment_reply_skip` | Don't answer this comment, or stop an answer on its way that hasn't gone yet (queued). | Change |
| `comments_nice` | Praise on the workspace's own recent posts that needs no answer and that Chockstone Labs hasn't liked yet, read live (nothing is stored). | Read |
| `comments_recent` | Reads the newest comments on one account's own recent posts, straight from the network. | Read |
| `comments_to_answer` | Lists every unanswered comment on the workspace's own recent posts, read live (nothing is stored). | Read |
| `dm_draft_skip` | Don't send this drafted DM reply. | Change |
| `dm_message_write` | Three drafts of one Instagram DM in the brand's voice, for an automation's first message (purpose first), a follow-up (followup) or the ask for an email (email_ask). | Read |
| `dm_reply_draft` | Draft a reply to one Instagram DM conversation (from dm_threads_list). | Change |
| `dm_thread_get` | One Instagram DM conversation's newest messages (Instagram shows up to 20), oldest first, read live and never stored, with the reply window and any drafted reply. | Read |
| `dm_threads_list` | An Instagram account's newest DM conversations, read live from Instagram (nothing is stored). | Read |
| `reply_rule_create` | Answers comments on an account's posts that mention a keyword. | Change |
| `reply_rule_test` | Which auto-reply would answer a comment, what it would say and why, without sending anything. | Read |
| `reply_rule_update` | Change an auto-reply's keywords, exclusions, texts and variants, link, mode or post, pause it (live: false) or remove it (archived: true). | Change |
| `reply_rules_list` | The workspace's FAQ auto-replies: what each matches, the public reply (and its other wordings) and/or DM it sends, suggest or auto mode, and how many answers. | Read |
| `saved_replies_list` | The workspace's saved replies: answers the team gives often, each with a name, its text ({name} becomes the person's username), an optional /shortcut, and keywords. | Read |
| `saved_replies_refresh` | Keep the suggested saved replies (the first time), and add replies the team has sent at least twice since, with the words their comments share as keywords. | Change |
| `saved_reply_delete` | Delete a saved reply for good. | Change |
| `saved_reply_save` | Add a saved reply, or change one (saved_reply_id; fields left out stay as they are). {name} in the text becomes the person's username. | Change |
| `tiktok_comments_connect` | Start the one sign-in that lets Chockstone Labs read and answer a connected TikTok account's comments (TikTok API for Business). | Change |

### DM automation

| Tool | What it does | Access |
| --- | --- | --- |
| `dm_automation_create` | Start an Instagram DM automation. | Change |
| `dm_automation_runs` | Each conversation a DM automation started, newest first, with where it stands and why. | Read |
| `dm_automation_test` | What would happen if someone sent this text, as a comment, a DM, a story reply or a story mention. | Read |
| `dm_automation_update` | Change a DM automation's name, words, messages, follow check, public reply and its other wordings (reply_variants), or post (post_id, null for every post). | Change |
| `dm_automations_list` | Instagram DM automations with their numbers (conversations started and finished, link taps, emails collected), ready-made templates. | Read |
| `dm_contact_delete` | Delete a DM contact and everything kept about them (email, tags, note). | Change |
| `dm_contact_update` | Tag a DM contact (tags replaces them; add_tags and remove_tags change some), assign them to a member (members_list user id, null to unassign), keep a note. | Change |
| `dm_contacts_export` | Every DM contact (or those matching the filters) as CSV: username, email, tags, assigned to, note, first and last automation, taps, dates. | Read |
| `dm_contacts_list` | People who reached a DM automation: username, the email they gave, tags, who they're assigned to, a note, which automation reached them, and their link taps. | Read |
| `dm_followup_preview` | Count the people a Follow up message can reach now. | Read |
| `dm_followup_send` | Send one message (up to 900 characters) to the people dm_followup_preview counts as can: those who wrote in the last 24 hours and have had no follow-up since. | Change |
| `dm_handoff_close` | Close someone's ask for a person (they DMed HUMAN): automated DMs may write to them again. | Change |

### Link in bio

| Tool | What it does | Access |
| --- | --- | --- |
| `audience_export` | The audience list as a CSV (email, name, source, download, opted_in, the wording agreed to, first and last time) at a link that works for 15 minutes, for any email tool. | Read |
| `audience_list` | People the link page collected: each visitor who left an email for a download block (and, later, other forms), newest first, with the download, whether they. | Read |
| `audience_remove` | Takes people off the audience list by id (audience_list). | Change |
| `bio_autopilot_set` | Weekly tuning for the bio page. | Change |
| `bio_collection_delete` | Takes a collection off the link page. | Change |
| `bio_collection_fill_from_program` | Makes (or fills) a collection for a brand program. | Change |
| `bio_collection_save` | Makes a collection on the link page (no collection_id) or changes one. | Change |
| `bio_collections_list` | The link page's collections in order (up to 8): titled cards with a 3-photo grid that open a sheet of products, like "Film I shoot" or "Lumen picks". | Read |
| `bio_collections_reorder` | Puts the link page's collections in this order (ids from bio_collections_list); any left out keep their order after these. | Change |
| `bio_color_schemes` | Up to five color schemes for the link page built around one color, as a color wheel would. | Read |
| `bio_colors_from_photo` | Two or three color schemes for the link page from a photo: Light, Dark, and Bold when the photo has a strong color. | Read |
| `bio_design_preview` | Try 1 to 3 looks without saving any (each the shape bio_page_update's design takes, as a change over the page). | Read |
| `bio_export` | Everything on the bio page to keep or move. | Read |
| `bio_insights_get` | The bio page's visits and taps by day, for the last `days` days, broken down by link (default), source app, day, post or spot. | Read |
| `bio_page_autobuild` | Build the bio page in one go from the person's connected accounts and their own pages, through official APIs only (never Instagram or TikTok web pages). | Change |
| `bio_page_render` | The link page as a phone shows it (390×844 at 2x), shown to you as an image and at image_url, with its readability warnings. design draws a change over the page. | Read |
| `bio_page_update` | Create or edit the workspace's link-in-bio page at /@slug: its address, title, short bio, photo, its whole look, and whether it's live. | Change |
| `bio_profile_check` | Reads each connected Instagram and Facebook profile's website through the network's API and says whether it holds the link page's address. | Change |
| `bio_reference_study` | Read public link-in-bio pages the person likes and say what they do. | Change |
| `bio_suggest` | Ranked changes for the bio page from its numbers. | Read |
| `bio_test_create` | An A/B test on the bio page: arm A is the page as its visitors see it now, arm B the same page with change. | Change |
| `bio_test_get` | The bio page's tests with each arm's estimated visits and the visits that tapped (once each), how likely B does better, the winner once there is one. | Read |
| `bio_test_stop` | Stops a test (or settles a finished one) and keeps one arm. keep a leaves the page as it is. keep b applies the change. | Change |
| `bio_variant_set` | Visitors from one app (source) see the bio page their own way. | Change |
| `code_sale_add` | Record sales a discount code brought in, from the shop's own report: the amount, how many orders, and the day (from) or days (from and to) they cover. | Change |
| `code_sale_delete` | Removes one entry from a code's sales (code_sales_list), to correct it or free its days for a new one. | Change |
| `code_sales_list` | Sales entered by hand for the workspace's discount codes (code_sale_add): each code's totals, and its entries with the newest days first. | Read |
| `link_create` | Add a link, affiliate link, discount code, section title (kind header, title only) or download (kind file with media_id) to the bio page. | Change |
| `link_results_get` | Every post that shares a link (in its caption or on its Shop the post sheet), best first. | Read |
| `link_update` | Change a link's title, destination, code, note, start or end date, picture, featured card or bio-page visibility, or remove it (archived: true). | Change |
| `links_add` | Add up to 50 links at once, from links or from pasted text. | Change |
| `links_import` | Copy the links and section titles from another link-in-bio page (Linktree, Beacons, Stan, a personal site) to this one, in that page's order, skipping links already here. | Change |
| `links_list` | The workspace's links, affiliate links and discount codes with their taps, in bio-page order, and its bio page (null until set up). | Read |
| `links_reorder` | Set the bio page order, either whole. | Change |
| `links_show` | Put several links on the bio page (on_bio true) or take them off it (false) in one change. | Change |
| `post_links_set` | Set the products on a post's Shop the post sheet: link_ids from links_list, in the order the sheet lists them (at most 10); [] clears them. | Change |
| `post_links_suggest` | Products to offer for a post's Shop the post sheet, best first. | Read |
| `product_lookup` | What a pasted product link becomes, before anything is saved. | Read |
| `product_post_create` | Turns product links into a draft post in one go. | Change |
| `shop_post_get` | One post from the bio page's Shop the post grid: its products by name, where they sit on its picture (spots) and the picture itself. | Read |
| `shop_post_update` | Pin a post's tile to the front of the bio page's Shop the post grid, hide it from the page, or place its products on its picture. | Change |
| `shop_posts_arrange` | Move tiles by hand: post_ids (from shop_posts_list) go first in this order, after any pinned tiles; the rest follow, newest first. | Change |
| `shop_posts_list` | The bio page's Shop the post grid: published posts (newest first) and any post with products attached, each with its products, how often its sheet was opened. | Read |

### Brand and deals

| Tool | What it does | Access |
| --- | --- | --- |
| `brand_application_remove` | Removes an application from progress. | Change |
| `brand_application_update` | Records what happened with an application: its status (accepted, shipping, earning, declined…), the discount code and tracking link the brand gave, and notes. | Change |
| `brand_applications_list` | This workspace's applications, newest change first. | Read |
| `brand_followup_draft` | A short, polite follow-up for a brand that hasn't answered (due 10 days after applying), as a draft for the creator's own mail. | Change |
| `brand_kit_get` | The workspace's brand kit: the colors, fonts, logo, buttons and background its link page can wear, and the fields it locks. | Read |
| `brand_kit_set` | Set the brand kit (owners and admins). | Change |
| `brand_program_add` | Adds a brand to the shared library by its site (or finds it if it's there) and reads the site for its affiliate or ambassador program. | Change |
| `brand_program_apply` | Applies to up to 10 brands' programs at once from the creator profile, and tracks each. | Change |
| `brand_program_check` | Reads a brand's site again now for its program (normally rechecked monthly): when its page moved, it opened a program, or the commission changed. | Change |
| `brand_program_to_bio` | Adds an accepted program to the bio page as a link with its code (or turns its link back on): the brand's tracking link, else its site. | Change |
| `brand_programs_import` | Reads a CSV export from Strackr or a network (Impact, Awin, CJ, ShareASale, Rakuten, ShopMy…). | Change |
| `brand_programs_search` | Brands with affiliate or ambassador programs, from Chockstone's shared library (seeded, found by reading brands' own sites, and added by creators). | Read |
| `contact_delete` | Removes a person from a brand's people. | Change |
| `contact_save` | Adds a person at a brand or agency (partner_id), or changes one (contact_id). | Change |
| `creator_profile_get` | The profile applications are filled from: name, the email brands write back to (default the deals address, whose replies are read for acceptances and codes). | Read |
| `creator_profile_set` | Changes the creator profile: only the fields passed (null clears one). | Change |
| `deal_create` | Adds a deal by hand. | Change |
| `deal_get` | One deal with its brand, the inquiry it came from, and the posts that deliver it (deal_post_link). | Read |
| `deal_mail_get` | The workspace's private deals address and how far its setup got. | Read |
| `deal_mail_rotate` | Replaces the deals address with a new one. | Change |
| `deal_post_link` | Says a post delivers a deal (linked false undoes it), so deal_get lists it. | Change |
| `deal_rules_get` | The creator's rules for brand deals: minimum rate per deliverable (cents), add-ons for paid ads and rush, declined categories, brief fields a brand must give. | Read |
| `deal_rules_set` | Changes some of the creator's deal rules; fields left out keep their value, and a rate set to null removes it. | Change |
| `deal_update` | Changes a deal: its stage, value, terms (merged; a field set to null clears it), deliverables, next step or notes. | Change |
| `deals_list` | The deals pipeline: stage open (default) is every deal not yet paid or lost; or one stage, or all. totals adds up count and value per stage. | Read |
| `inquiries_list` | Brand inquiries, newest first. status new (default) is what waits for the creator; filtered missed a rule and never reached them (inquiry_restore brings one back). | Read |
| `inquiry_accept` | Turns an inquiry into a deal at stage talking. | Change |
| `inquiry_decline` | Marks an inquiry declined and returns the creator's decline message with the reasons, to send from their own email. inquiry_restore brings it back. | Change |
| `inquiry_get` | One inquiry with its checks, the brand check, a template reply_draft for the creator to send, and the matching brand in the contact book if there is one. | Read |
| `inquiry_log` | Records a brand's inquiry the creator got somewhere else (an email in their Gmail, a DM) and checks it against their deal rules. | Change |
| `inquiry_restore` | Moves a filtered inquiry (one that missed a rule) back to new, so the creator sees it after all. | Change |
| `kit_get` | The creator's media kit: a live page at chockstonelabs.com/k/<slug> that brands open in place of a PDF. preview is exactly what a brand reads. | Read |
| `kit_update` | Makes or changes the creator's media kit; fields left out keep their value. published true puts it at chockstonelabs.com/k/<slug> for anyone with the link. | Change |
| `partner_delete` | Removes a brand or agency and its people from the contact book. | Change |
| `partner_get` | One brand or agency: its people, every deal with it (newest first), its inquiries, and the agency that handles it or the brands an agency handles. | Read |
| `partner_save` | Adds a brand or agency to the contact book, or changes one (partner_id). agency_id names the agency that handles a brand. do_not_contact keeps it out of pitches. | Change |
| `partners_list` | The contact book: brands and agencies, with their open deals and what they've paid in all. q searches names and domains. | Read |
| `pitch_check` | Before you draft a pitch, asks the server whether the creator may pitch this brand, and every reason they may not. | Read |
| `pitch_log` | Records a pitch to a brand that fits and returns it to put in a Gmail draft. | Change |
| `pitch_opt_out` | A brand answered a pitch with no, not interested, or asked not to be written. | Change |
| `results_get` | What the creator's audience did in the last 90 days, counted by Chockstone. | Read |

### Insights and analysis

| Tool | What it does | Access |
| --- | --- | --- |
| `account_stats_record` | Record an account's daily numbers (followers, profile views, link clicks…) from a screenshot or export, for days the sync doesn't cover. | Change |
| `analysis_access` | Whether post analysis (format cards and draft checks) is available in this workspace. | Read |
| `calendar_history` | Posts on the workspace's accounts that weren't made in Chockstone (made in the network's own app, or before the account connected), by when they went out. | Read |
| `competitor_add` | Start learning from a public account: pass its @handle or profile link. | Change |
| `competitor_post_study` | Studies up to 10 Instagram videos: picked from competitor_posts_browse (competitor_id and post_ids), or one pasted link. | Change |
| `competitor_posts_browse` | Every public post of an Instagram competitor, back to their first one (order oldest starts there), and the recent posts Chockstone recorded for a YouTube. | Read |
| `competitor_posts_record` | Record what a competitor's public profile shows: follower count and their recent posts (date, type, caption, length, and the public views, likes and comments). | Change |
| `competitor_readout` | Says what an Instagram competitor's standout posts (1.5 times their usual views) have that a matched sample of their usual posts of the same format don't. | Change |
| `competitor_update` | Change a competitor's notes or which of your accounts it's compared with, or remove it (archived: true). | Change |
| `competitors_compare` | How your accounts and your competitors post and perform over their last 90 days. | Read |
| `competitors_list` | Public accounts this workspace learns from, with when their numbers were last recorded (posts_at). needs_update marks the ones past their refresh. | Read |
| `competitors_refresh` | Reads competitors' follower counts and last 30 public posts and records them the way competitor_posts_record does. | Change |
| `growth_get` | What each of the workspace's connected accounts has gained since it joined Chockstone (the day it was connected). | Read |
| `hashtag_search` | A hashtag's top and most recent public Instagram posts (up to 25 each, with likes and comments), through the Instagram account linked to a connected Facebook Page. | Change |
| `insights_get` | How the workspace's accounts are doing: views and the change in posts' first-two-day views against the period before, followers by day. | Read |
| `own_posts_record` | Record posts on one of the workspace's accounts and their numbers, for anything the sync can't see (older history, a screenshot or export the user shares). | Change |
| `post_results_get` | One post's numbers over time against the account's usual at the same age, a plain verdict, what it did differently (length, saves, shares, watch time). | Read |
| `post_save` | Saves an Instagram post or reel, a TikTok or a YouTube video or Short the person came across, the way the share sheet's Chockstone extension does: pass its link. | Change |
| `post_save_recording` | Attaches a screen recording of a saved post (media_id, a ready video from media_list or the person's library) and starts its study. | Change |
| `report_email_create` | The email that sends a period's brand report to the client. | Change |
| `report_get` | The workspace's brand report for a week (Monday to Sunday) or a month, in its timezone. | Read |
| `report_link_create` | A read-only link to the brand report that anyone with it can open, without an account, until it expires or is revoked (report_link_revoke). | Change |
| `report_link_revoke` | Stops a shared brand report link at once (see report_links_list). | Change |
| `report_links_list` | Links to brand reports shared from this workspace, newest first, with how often each was opened. | Read |
| `report_schedule_get` | Whether this workspace's brand report goes to its client every week or month, to whom, and the last full period's email ready to send. | Read |
| `report_schedule_set` | Turn the client's brand report on or off, make it weekly or monthly, or change who it's for (their email, and a first name for the greeting) or the local hour it's ready. | Change |
| `research_status` | What the Facebook Pages with a linked Instagram account can research. | Read |
| `saved_posts_list` | Posts saved to analyze (post_save, the share sheet, a pasted link), newest first, each with its author, cover, public numbers and status. | Read |
| `share_token_issue` | Issues the token the iPhone share extension saves posts with: it can call post_save in this workspace and nothing else (the scope study:add). | Change |
| `style_reference_annotate` | Saves what you saw on a studied video's frame sheet that the server can't. | Change |
| `style_reference_flag` | Saves which parts of a style reference the person likes (hook, edit, graphics, captions, music, sound effects) and the project it's kept under, or puts. | Change |

### Library and media

| Tool | What it does | Access |
| --- | --- | --- |
| `canva_connect` | A one-time link for the signed-in person to open in their own browser and allow Chockstone to read their Canva designs. | Change |
| `canva_design_export` | Export a Canva design and get Canva's links to the files (they last 24 hours), for an app that uploads them itself. | Change |
| `canva_design_import` | Export a Canva design and add it to the media library: a PNG (as picture; all_pages brings every page up to 10, in order, for a carousel) or an MP4 (as video). | Change |
| `canva_designs` | This person's newest Canva designs (theirs and ones shared with them), most recently edited first. connected false: offer canva_connect. | Read |
| `canva_disconnect` | Disconnect this person's Canva. | Change |
| `canva_status` | Whether Canva can be connected on this server (can_connect) and whether this person has connected theirs. | Read |
| `file_request_create` | A link for someone outside the team (usually a creator the brand hired) to upload photos and videos into this workspace's media library. | Change |
| `file_request_revoke` | Stops a file request's link at once (see file_requests_list). | Change |
| `file_requests_list` | The workspace's file requests, newest first: whether each link still works, how many files came in, and the note they sent. | Read |
| `media_delete` | Delete a media item that no post or style reference uses. | Change |
| `media_get` | One media item: whether it's ready, and why it failed if it did. | Read |
| `media_import_url` | Copy a photo, video or audio file from a public https link (Dropbox, Drive direct-download, a CDN; redirects are followed) into the workspace, up to 1 GiB. | Change |
| `media_keep` | Originals clear themselves 30 days after every network has the post, keeping the poster, details and links to the post, so storage counts only what's still. | Change |
| `media_link` | A private link to one ready media file, to look at it or download it (open it to check a video or photo before putting it in a post). | Change |
| `media_links` | Private links, valid an hour, to up to 50 ready media files at once, each with a link to its small JPEG poster when it has one. | Change |
| `media_list` | Media in the workspace, newest first. | Read |
| `media_multipart_abort` | Cancels an open resumable upload and frees what was sent. | Change |
| `media_multipart_complete` | After every part is sent: pass each part's number and the ETag header storage answered. | Change |
| `media_multipart_parts` | For a resumable upload: uploaded lists the parts storage already holds (part number, etag, bytes), remaining the part numbers still to send, and parts fresh PUT. | Change |
| `media_multipart_start` | Sends a big file in parts straight to storage, so a dropped connection resumes instead of starting over. | Change |
| `media_upload_url` | For agents that can run a command: returns a one-time link valid 15 minutes. | Change |

### Accounts and settings

| Tool | What it does | Access |
| --- | --- | --- |
| `about_answer` | Save a batch of answers to about_next's questions for one account. | Change |
| `about_next` | The setup card for one account: four rows (Niche, Who it's for, Sounds, Skips), each with the best guess so far and whether it is settled, and a question. | Read |
| `account_connect` | Starts connecting a social account to the workspace. | Change |
| `account_disconnect` | Stop posting to an account and forget its sign-in. | Change |
| `account_settings_update` | Sets an account's weekly posting times, default first comment and hashtags, and Trial Reels autopilot. | Change |
| `accounts_list` | Connected social accounts in the workspace (Instagram, TikTok and the other networks that are switched on), with what each can post and whether it needs reconnecting. | Read |
| `activity_list` | Who did what, newest first: people, agents, keys and the scheduler. | Read |
| `automation_pause` | Stop everything in the workspace from publishing until resumed. | Change |
| `automation_resume` | Resume publishing. | Change |
| `home_hide` | Hide a getting-started card on Home: first_run (Your first post), link_page (Finish your page), niche (What is this account about?) or voice. | Change |
| `home_show` | Put a hidden getting-started card back on Home (see hidden_cards in today_summary) and reset it, so a later Hide snoozes it for a week again. | Change |
| `mail_prefs_get` | Whether the signed-in person gets the email when a scheduled client report is ready. | Read |
| `mail_prefs_set` | Turn the scheduled client report email on or off for the signed-in person. | Change |
| `notification_prefs_get` | The signed-in person's notification switches (push and email for each), quiet hours and muted workspaces. | Read |
| `notification_prefs_set` | Change one notification setting for the signed-in person. | Change |
| `notifications_list` | The signed-in person's notifications across their workspaces, newest first, with how many are unread. | Read |
| `notifications_mark_read` | Mark some notifications (ids) or all of them read for the signed-in person. opened: true when the person tapped through, which also records that they opened it. | Change |
| `owners_notify` | From Today, for someone who can't connect accounts: tells the workspace's owners and admins, by notification, that an account needs connecting. | Change |
| `posting_times_get` | The workspace's posting times (slots; empty: none set, so each account uses suggested times) and each account's times with where they come. | Read |
| `posting_times_set` | Set the posting times every account in the workspace follows unless it has its own. [] clears them, back to suggested times. apply_to_all also clears each. | Change |
| `setup_run` | On a new space (today_summary.first_run), offer this first and call it on any yes: once right after you connect, and again once the person's first account connects. | Change |
| `slots_next` | The next free posting times per account, skipping times already taken by other posts. | Read |
| `task_answer` | Answer a task on Home: the value is written where it belongs (the link, the post's version for that account, the voice, the deal) the same way the matching tool. | Change |
| `task_ask` | When you can't find something only the person knows, ask it here instead of guessing or stopping. | Change |
| `task_dismiss` | The person doesn't know: closes the task, and the same thing isn't asked again for 30 days. | Change |
| `tasks_list` | What you and other assistants asked the person on Home. status open. | Read |
| `tiktok_creator_info` | What TikTok lets a TikTok account post right now: the audiences it offers, interactions the creator has switched off, and the longest video. | Read |
| `today_summary` | Call first in every conversation. | Read |
| `undo` | Reverse one activity entry (within 7 days). | Change |
| `voice_get` | What the brand is about, who it's for, how it sounds and what to avoid. | Read |
| `voice_set` | Save what the person told you about the brand, short and in their words. | Change |
| `workspace_create` | Add a workspace, one per brand. | Change |
| `workspace_delete` | Delete a workspace and everything in it: its accounts (signed out at each network), posts, media files, links, reports, rules and history. | Change |
| `workspace_get` | One workspace's name and timezone, how many scheduled posts a timezone change would move (scheduled_count), and what deleting it would remove (delete_summary). | Read |
| `workspace_update` | Rename the workspace, change its timezone (an IANA name such as America/New_York), or turn Google Analytics link tagging on or off (utm_tags). | Change |
| `workspaces_list` | Workspaces this connection can use. | Read |

- **Server URL:** `https://chockstonelabs.com/mcp`
- **Sign-in:** OAuth with your Chockstone Labs account, or an API key
- **List:** [tools.json](https://chockstonelabs.com/mcp-tools/tools.json)
- **Price:** Free to start · [Pricing](https://chockstonelabs.com/pricing/)
- **Support:** [hello@chockstonelabs.com](mailto:hello@chockstonelabs.com)

## Start free, with no card.

Starter is free for one brand. Creator and Studio hold more, and add client approval links, shared reports and your own link page design. Questions? Email [hello@chockstonelabs.com](mailto:hello@chockstonelabs.com).

[Start free](https://chockstonelabs.com/app/start) [See pricing](https://chockstonelabs.com/pricing/)
