ProductClank
REMOTE · MCP.PRODUCTCLANK.COM
Boost posts and launch community growth campaigns from your AI assistant. OAuth, credit-billed.
Available components
Last scanned (15 hours ago)
Scores higher than 98% of remote servers
Unreachable for 2 days in a row. Last reached 3 Nov 2026.
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Checks we ran (3)
- HTTPS
- DNSSEC
- Transport
Checks we could not complete (8)
These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.
- TLS certificate in Endpoint SecurityTLS not yet verified: we couldn't open a connection to check the certificate.
- Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
- HSTS header in Endpoint SecurityHSTS not yet verified: we couldn't read the response headers to check for it.
- Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
- Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 30 Oct 26 0
- Tool “find_opportunities” rewrote its description, which is the text the model reads security
- Tool “submit_participation” rewrote its description, which is the text the model reads security
- New tool “hold_opportunity” functional
- New tool “release_opportunity” functional
- 23 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “check_balance” rewrote its description, which is the text the model reads security
- Schema quality: 12569 → 13951 ▼ functional
- Server version: 0.9.19 → 0.9.21 functional
- New tool “set_content_bounty” functional
- 20 Oct 26 0
- Tool “get_growth_suggestions” rewrote its description, which is the text the model reads security
- Tool “setup_growth_assistant” rewrote its description, which is the text the model reads security
- Server version: 0.9.18 → 0.9.19 functional
- “setup_growth_assistant” added an optional parameter “mix” cosmetic
- 19 Oct 26 0
- Tool “boost_post” rewrote its description, which is the text the model reads security
- Tool “launch_tiktok_campaign” rewrote its description, which is the text the model reads security
- Server version: 0.9.17 → 0.9.18 functional
- “launch_tiktok_campaign” added an optional parameter “likes_count” cosmetic
- “boost_post” reworded the description of “count” cosmetic
- “launch_tiktok_campaign” reworded the description of “likes” cosmetic
- “launch_tiktok_campaign” reworded the description of “quiz_answers” cosmetic
- 17 Oct 26 0
- Tool “boost_post” rewrote its description, which is the text the model reads security
- Tool “find_open_campaigns” rewrote its description, which is the text the model reads security
- Tool “get_campaign_brief” rewrote its description, which is the text the model reads security
- Schema quality: 10692 → 12178 ▼ functional
- Server version: 0.9.15 → 0.9.17 functional
- New tool “create_watch_quiz” functional
- New tool “get_watch_quiz_results” functional
- New tool “launch_tiktok_campaign” functional
- New tool “suggest_quiz_questions” functional
- “boost_post” added an optional parameter “watch_quiz” cosmetic
- 16 Oct 26 0
- Tool “boost_post” rewrote its description, which is the text the model reads security
- Tool “check_balance” rewrote its description, which is the text the model reads security
- Tool “update_campaign” rewrote its description, which is the text the model reads security
- Server version: 0.9.9 → 0.9.15 functional
- New tool “get_growth_suggestions” functional
- New tool “setup_growth_assistant” functional
- “boost_post” added an optional parameter “count” cosmetic
- “boost_post” added an optional parameter “post_text” cosmetic
- “boost_post” added an optional parameter “spread_over_hours” cosmetic
- “update_campaign” added an optional parameter “digest_enabled” cosmetic
- “boost_post” reworded the description of “action_type” cosmetic
- 13 Oct 26 0
- Server version: 0.9.8 → 0.9.9 functional
- New tool “claim_deal” functional
- New tool “get_scout_deals” functional
- New tool “get_scout_earnings” functional
- New tool “rate_deal” functional
- New tool “release_deal” functional
- New tool “report_deal_progress” functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.productclank.com/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.productclank.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| productclank.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.productclank.com/mcp | Unreachable | ||
| http (plaintext) | http://mcp.productclank.com/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_delegate Hand a campaign to a human ~88
Add a ProductClank user as a delegate on a campaign so they can view and manage it from the webapp's My Campaigns page. Free. Useful to hand oversight of an agent-created campaign to its human owner (the connected user's own id works too).
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| user_id | string | yes | ProductClank User id to grant webapp access to |
No output schema declared.
No examples provided.
analyze_url Derive a campaign brief from a product URL ~301
Read a product's website and propose the two fields create_campaign requires: keywords and search_context (plus a suggested title). 3 credits, charged only when a brief comes back. Creates nothing — no campaign, no product, no discovery, and no commitment to create one. USE THIS ONLY WHEN YOU CANNOT FETCH THE PAGE YOURSELF. If you can browse from this client, do the derivation in the conversation instead: it is free, you can iterate with the user before anything is spent, and you know what they have told you about their audience — a one-shot page read does not. Reach for this when web access is unavailable or the fetch failed, and say plainly that it costs 3 credits before calling. It returns 8-15 keywords: put them in front of the user and cut to the 3-8 that match how their buyers actually talk, because create_campaign is what the campaign then runs on.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | – | Platform the brief is written for — the vocabulary adapts (videos on YouTube, threads on Reddit). Pass the same value you will pass to create_campaign. Defaults to twitter. |
| product_id | string | – | Existing product UUID (search_products / create_product) — its name and tagline sharpen the brief. |
| product_name | string | – | Overrides the listing's name |
| product_tagline | string | – | Overrides the listing's tagline |
| url | string | yes | The product's website |
No output schema declared.
No examples provided.
boost_post Boost a social post ~931
Rally the ProductClank community to engage with a specific social post. Creates a boost campaign and spends the user's credits: 'replies' generates AI reply drafts and 'quote' generates AI-drafted QUOTE POSTS (a repost WITH each member's own text, shown above the quoted post in their followers' feeds, the highest-reach action) — both cost 20 credits per draft, 10 drafts (200 credits) by default; set `count` (1–10) for a smaller boost, e.g. 3 replies = 60 credits. 'likes' is 30 likes for 300 credits by default; set `count` (1–300) for any other size at 10 credits per like, e.g. 100 likes = 1,000 credits. 'bookmarks' (saving a post on X lifts its visibility) and 'repost' are 10 for 300 credits by default; set `count` (1–100) for any other size at 30 credits each, e.g. 25 reposts = 750 credits. Supports Twitter/X, Instagram, TikTok, LinkedIn, Reddit, Farcaster, and YouTube (replies + likes on YouTube; reposts only on X and Farcaster; quote posts and bookmarks only on X) — the platform is auto-detected from the URL. product_id is OPTIONAL: link a product (from search_products or create_product) to tailor replies with the product name, or omit it for a tweet-first boost that uses generic amplification language. A TikTok video under ~1 minute old has no caption yet: the boost is still created, drafts are generated once TikTok publishes the caption (usually within a few minutes), and credits are charged only then — the result says waiting_for_post_text. Pass post_text if you already know the caption to skip the wait. Delivery is immediate by default; to pace it (e.g. 'reply 3 times over the next 6 hours'), set spread_over_hours — one slot goes out now and the rest drip out 1–2 an hour so the last lands within that window, at the same price. On a TikTok / YouTube / Instagram Reel VIDEO, add watch_quiz for 'Watch & answer': viewers can also watch to the end and answer one counting question (a linked 24h watch quiz, billed 100 credits per correct answer on top of the boost p…
| Name | Type | Req | Description |
|---|---|---|---|
| action_type | string | – | How the community engages. Default: replies. Reposts are Twitter/Farcaster only; quote posts (repost with the member's own drafted text) and bookmarks (members save the post) are X only. |
| count | integer | – | Replies / quote: how many drafts to generate, 1–10 (default 10), billed 20 credits per draft — 3 replies = 60 credits. Likes: how many likes, 1–300 (default 30), billed 10 credits per like — 100 like… |
| post_text | string | – | Optional — the post's text or caption, if you already have it. Skips the server-side fetch (useful for a TikTok you just uploaded). |
| post_url | string | yes | Full URL of the post to boost (any supported platform) |
| product_id | string | – | Optional product UUID (from search_products or create_product). Omit for a tweet-first boost. |
| reply_guidelines | string | – | Optional guidance for the tone and content of community replies or quote posts |
| spread_over_hours | integer | – | Optional — pace delivery over this many hours instead of releasing every slot at once. One goes out now, the rest drip out 1–2 per hour. Minimum is ceil((items − 1) / 2) + 1 hours (3 items → 2, 10 →… |
| watch_quiz | object | – | Optional 'Watch & answer' on a TikTok / YouTube / Instagram Reel video: a linked 24h watch quiz. Billed 100 credits per correct answer (default cap 20 = 2,000 credits), separate from credits_used. Ge… |
No output schema declared.
No examples provided.
check_balance Check credit balance ~144
Free. The connected user's credit balance and plan, PLUS live pricing: every action's cost in credits with a dollar range, every growth play priced at test / standard / scale (pricing.plays), top-up packs and plans. Call it before planning or recommending any spend, and quote these prices — never guess or look them up. Pricing is pay-per-action: every tool works on any account whose balance covers the action; plans are only a cheaper rate for steady monthly spend. Typical costs: a content campaign 1000; a reply or quote-post boost 200; likes/bookmarks/reposts 300; a discovery campaign 10 to create + 12/post discovered.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
claim_deal Claim a scout deal ~133
Hold a deal for this scout for 72 hours so no other scout replies to the same founder. Free. Call it when the user decides to reply, BEFORE they post. Returns the post link, the drafted opener and the scout's links. The user posts the reply from their OWN X account (you never post), then you call report_deal_progress with stage 'sent' and the reply URL. Claiming again refreshes the hold. 409 claimed_by_another_scout = someone else holds it; pick another deal.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal id from get_scout_deals. |
No output schema declared.
No examples provided.
create_campaign Create a discovery campaign ~1,474
Create a Communiply discovery campaign: it continuously finds relevant social posts (by keyword) and drafts replies for them. BEFORE calling: the keywords and search_context are YOURS to derive, and deriving them well is most of the campaign's quality — actually fetch and read the product's website (and any docs or pages the user pointed at), work out who the audience is and the phrases they use when they have the problem the product solves, and build keywords + search_context from that. Do it in this conversation, for free — it is not billed, and you can iterate with the user before anything is spent. If you cannot browse the web from this client, SAY SO to the user and build from what they tell you instead — never silently guess from the product's name alone. Credits pay only for what you cannot do here: scraping the platforms, real community members posting, and proof verification. Costs 10 credits to create; discovering posts is billed separately via generate_posts (12 credits/post). Needs a product_id (search_products / create_product). Two ways to run it, and the user picks: PRIVATE (the default here) keeps drafts in their workbench to review and post themselves — reversible, no further cost; PUBLIC puts the drafts in the ProductClank earn feed so community members post them from their own accounts — that is the reach the platform exists for, and each network-posted reply bills the user extra credits. Default to private when the user has not said, and relay the decision_offer in the result so they can choose. On X, also ask what the replies are for (reply_approach): awareness (the product and its site in the thread) or sales (flag each post to the brand/founder as a lead, tagging the accounts they choose in reply_tag_accounts). Pick the `platform` the product's audience actually talks on — X (default), LinkedIn, Reddit or YouTube — and for Reddit/YouTube narrow it with target_subreddits / target_youtube_channels. When the user works in a specific brand space…
| Name | Type | Req | Description |
|---|---|---|---|
| keywords | array | yes | Search keywords/phrases to discover posts with (3–8 focused phrases work best). Derive these from the product's actual site and audience — the words people use when they HAVE the problem ('CI is so s… |
| mention_accounts | array | – | X handles to name-drop in 'mention'-approach replies (e.g. the product's account). Also a discovery input: posts that mention these accounts are surfaced too — so to choose who 'flag' replies tag, us… |
| platform | string | – | Which network to work: twitter (default), linkedin, reddit, youtube. This is WHERE discovery looks — distinct from `sources` in update_campaign, which is HOW it looks there. Pick from where the produ… |
| post_visibility | string | – | Visibility of each discovered post, independent of the campaign. 'public' campaign + 'private' posts = HELD mode: drafts are found and written but nobody can claim them until publish_posts releases t… |
| product_id | string | yes | Product UUID (from search_products or create_product) |
| reply_approach | string | – | X campaigns only (the API rejects it elsewhere). What the replies are FOR — ask the user, it changes every reply: 'mention' (default) = AWARENESS: replies put the product and its site in the conversa… |
| reply_guidelines | string | – | Custom guidelines for reply drafting (defaults are built from the campaign context) |
| reply_length | string | – | – |
| reply_style_tags | array | – | Tone tags for drafted replies, e.g. ['helpful', 'builder-to-builder'] |
| reply_tag_accounts | array | – | X only, used with reply_approach 'flag': up to 2 handles to tag, brand first then the founder (e.g. ['acme', 'jane_founder']) — so the user can choose brand, personal or both. Omit to fall back to me… |
| search_context | string | yes | One or two sentences on what conversations to find and why the product is relevant to them. Write it from having actually read the product's site and this conversation — who the audience is, what pai… |
| space_id | string | – | The brand space to file this campaign under (from list_content_spaces, or the space_id setup_content_space returned) — the space the user's dashboard shows it in. Not an audience: who sees the drafts… |
| target_subreddits | array | – | Reddit only, and enforced server-side: sending this on a non-Reddit campaign is REJECTED with an error, never silently ignored. Subreddits to rotate through, with or without the 'r/' prefix. Omit to… |
| target_youtube_channels | array | – | YouTube only, and enforced server-side: sending this on a non-YouTube campaign is REJECTED with an error, never silently ignored. Channel handles, ids or URLs to pull recent videos from, alongside th… |
| title | string | yes | Campaign title, e.g. 'Grow Acme — AI devtools conversations' |
| visibility | string | – | Who posts the drafted replies. private (default) = they wait in the user's workbench for the user to post; public = the community earn feed distributes them and network members post them, billing the… |
No output schema declared.
No examples provided.
create_content_campaign Launch a content campaign ~239
Launch a content campaign: rally the ProductClank community to create content (posts, threads, videos) for a product. Spends 1000 credits. The platform's AI expands your brief into a full campaign and auto-activates it; community submissions and winner selection happen in the ProductClank web app. Requires a product_id from search_products. Preview with suggest_content_campaign and confirm the 1000-credit cost with the user before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| additional_guidelines | string | – | Extra do's/don'ts for creators |
| campaign_goals | array | – | Campaign goals, e.g. ["awareness", "signups"] |
| campaign_message | string | yes | The core brief: what you want the community to create (e.g. 'Share how you use <product> in your daily workflow'). |
| preferred_platform | string | – | Preferred platform, e.g. "x" or "farcaster" |
| product_id | string | yes | Product UUID from search_products |
| references | string | – | Links or references to include in the campaign |
| target_audience | string | – | Who the campaign should reach |
No output schema declared.
No examples provided.
create_product List a product on ProductClank ~284
List a new product on ProductClank as a token-free listing (no crypto/token, no wallet). At minimum pass a `url` — the server auto-fills the name, tagline, description, logo, and X handle from the site; any field you pass explicitly overrides what's extracted. Socials are optional. Use this when search_products finds no existing match and the user wants to run a boost or campaign for a product that isn't listed yet. Returns the new product's id (and reuses an existing listing if one already matches, rather than duplicating). FREE — no credits charged. Confirm the product details with the user before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| category | array | – | Category tags (optional). |
| description | string | – | Short description of what the product does (optional). |
| logo | string | – | Logo image URL (optional; otherwise auto-resolved from the site). |
| name | string | – | Product name. Optional if `url` is given (extracted from the site); required otherwise. |
| tagline | string | – | One-line value proposition (optional; overrides extracted). |
| string | – | X/Twitter handle or profile URL (optional). | |
| url | string | – | Product website URL — auto-fills the listing. Provide this or `name`. |
| website | string | – | Canonical website, if different from `url` (optional). |
No output schema declared.
No examples provided.
create_watch_quiz Create a watch quiz for a video ~364
Get people to watch a video ALL the way through: viewers open it, wait its full length, then answer ONE counting question about it ('how many times does she say X?') that only a viewer can answer. A right answer earns ProductClank points; a wrong first answer gets one more try (watch again). Public, runs exactly 24 hours. Works on any video link (TikTok, YouTube, Instagram Reels, …). COST: nothing now — the user pays 100 credits per CORRECT answer (wrong answers are free) for 24 hours after this chat, for at most max_answers people (default 20 = 2,000 credits max). Needs 100 credits on hand. Before calling: get the questions AND answers from the user (or run suggest_quiz_questions and have them confirm), and confirm max_answers and the maximum spend. Note for the user: paid watch time may count as artificial engagement under the platform's rules. To add a quiz to a boost of the same video, use boost_post's watch_quiz instead.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_sec | – | – | Video length in seconds, or "m:ss". Omit to read it from the TikTok / YouTube page; other platforms need it. |
| max_answers | integer | – | People who may answer before the quiz closes to new viewers (default 20). Worst case = all of them right = 2,000 credits. |
| product_id | string | – | Optional product UUID (from search_products) to name the quiz after. |
| questions | array | yes | 1–20 questions with their answers. Each viewer draws one. Get them from the user — you cannot watch the video. |
| video_url | string | yes | The video viewers must watch. |
No output schema declared.
No examples provided.
credit_history Credit transaction history ~88
The connected user's credit transactions (purchases, campaign spend, participation rewards), newest first. Free, read-only. Use to account for what this connector has spent or earned. Top-ups are NOT available in-connector — send the user to app.productclank.com/credits/purchase when the balance runs low.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 20 |
| offset | integer | – | – |
No output schema declared.
No examples provided.
edit_reply Edit a reply draft ~121
Rewrite the text of ONE reply draft before the community posts it. Free. Use it when the user wants different wording on a specific draft from get_posts — the edit lands on the exact reply a creator will claim, so it is what gets posted. Refuses a reply a creator has already claimed (already_claimed): edit before you publish. 280 characters on X, 2000 elsewhere.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| reply_id | string | yes | Reply id from get_posts |
| reply_text | string | yes | The full replacement text |
No output schema declared.
No examples provided.
find_open_campaigns Find campaigns to participate in ~188
Discover content and take-action campaigns the connected user can join and earn from: every active public campaign plus campaigns from communities the user belongs to. Each item has a kind — 'content' (create a post/thread/video about the product) or 'take_action' (do a concrete action like voting or starring, with URL/description proof). Items with participation 'human_only' are WATCH QUIZZES: the user watches a video to the end and answers one question on the quiz page (points, sometimes $PRO, for a right answer). Offer them to the user with watch_quiz.quiz_url and watch_quiz.how_to_participate — the user does them, you never submit them. Free, read-only. Follow with get_campaign_brief before doing any work.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | Filter by campaign kind |
| limit | integer | – | Default 25 |
No output schema declared.
No examples provided.
find_opportunities Find earning opportunities ~272
Browse unclaimed drafts from active campaigns the connected user can earn from: each item is a real social post plus a pre-drafted text, with the `platform` it lives on (X, Reddit, YouTube, LinkedIn) and an `actionType` — `reply` (post it as a reply under the target post) or `quote` (X only: post it as a QUOTE of the target post, the text above the quoted post, from the user's own account). Free, read-only. Flow: the user picks an opportunity → call hold_opportunity on it (a 10-minute hold so no one else posts the same draft; one hold at a time) → the user edits and approves the text and posts it from their own account → call submit_participation with the URL of what they posted. Drafts other members are holding are not listed; the user's own live hold carries `heldUntil`. The user needs that platform's handle linked on their ProductClank profile for the reward to be attributable. Likes and reposts are proved with a screenshot and stay in the web app (app.productclank.com/feed).
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Restrict to one campaign |
| limit | integer | – | Default 25 |
| offset | integer | – | – |
No output schema declared.
No examples provided.
generate_posts Discover posts & draft replies ~99
Run the campaign's discovery pipeline: scrapes social platforms for posts matching the keywords and drafts a community reply for each. Costs 12 credits PER POST discovered (a typical run finds 5–20 posts, so 60–240 credits) and can take a few minutes. Check check_balance first and confirm the spend with the user. Then use get_posts to read results and review_posts to prune irrelevant ones.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
No output schema declared.
No examples provided.
get_campaign Get campaign details & stats ~90
Get one campaign's configuration (keywords, search context, reply settings incl. reply_approach — 'mention' awareness vs 'flag' leads to the founder — and reply_tag_accounts) plus live stats: posts discovered, replies by status. Free. Use to check progress after generate_posts or before adjusting the campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign UUID (from list_campaigns or create_campaign) |
No output schema declared.
No examples provided.
get_campaign_activity What's new on a campaign ~164
Catch up on a campaign since the last check: posts discovered, replies claimed by community members, LIVE links to what they actually posted, and the engagement those replies drew. Free, and it never scrapes — safe to call at the start of every session. Pass `since` (the `checked_at` from the previous call) to get only what is new; omit it for the last 24 hours. Use this to resume a standing growth operation across chats, then get_campaign_results for the cumulative picture.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| limit | integer | – | Items per list, default 20 |
| since | string | – | ISO 8601 timestamp — the `checked_at` returned by the previous call. Default: 24 hours ago. |
No output schema declared.
No examples provided.
get_campaign_brief Read a campaign's participation brief ~169
The full brief for one campaign: what to create or do (action message, brief sections, content types), how submissions are judged (eligibility + selection criteria), rewards, deadline, and how many submissions the user has left. Free, read-only. If the brief links external instructions (e.g. a skill file), fetch and follow them. Then: create the content or take the action WITH the user, and call submit_campaign_work with the proof. Exception — participation 'human_only' (a watch quiz): give the user watch_quiz.quiz_url and the steps; they watch and answer on that page, and there is nothing to submit. watch_quiz.my_status says if they already started or answered.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id from find_open_campaigns |
No output schema declared.
No examples provided.
get_campaign_results Campaign results & cost per usable reply ~108
The cumulative scorecard for a campaign: the funnel (posts discovered → kept → replies drafted → claimed → posted → approved), the approval rate, whether posted replies survived on-platform, the engagement they drew, total credits spent broken down by operation, and the cost per usable reply. Free, and it never scrapes — unlike the web report it costs nothing to poll. Use it to answer 'is this working and what am I paying for it?'.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
No output schema declared.
No examples provided.
get_content_campaign_results Content campaign results ~176
See what a content campaign actually produced: how many people submitted, the LIVE links to the content they published, which submissions were approved or rejected, and any winners picked. Free and read-only — safe to poll. This is how you close the loop on create_content_campaign; without it you only know a campaign was paid for, not whether it worked. Right after launch expect state 'processing' (the AI brief is still generating) and zero submissions — that is normal, not a failure. Accepts the campaign UUID or its public campaign number.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign UUID or public campaign number from create_content_campaign |
| limit | integer | – | Submissions per page (default 50) |
| offset | integer | – | Pagination offset |
| status | string | – | Only return submissions in this review state |
No output schema declared.
No examples provided.
get_content_queue Read the content queue with scores ~133
The space's drafts as the user sees them in 'All Content': text, platform, status, and the reviewer's score / verdict / one-line fix. FREE. Use it to present drafts for approval one by one (show the text, the score against review_threshold, and the reviewer's summary), and after write_content_candidates to read back how your drafts scored. status: active (default — pending + reviewed + staged), pending, reviewed, staged (approved by the user, awaiting publish), discarded.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| space_id | string | yes | – |
| status | string | – | – |
No output schema declared.
No examples provided.
get_content_workspace Read a brand's content calibration ~115
The brand's voice, platforms, post types, platform playbook, review threshold, topic inventory and any per-channel style guides for one content space. FREE. Read this BEFORE writing any draft so you write in the brand's own voice, and at the start of any content conversation to know what is already set up. `enabled:false` means the space has no content engine yet — offer setup_content_space.
| Name | Type | Req | Description |
|---|---|---|---|
| space_id | string | yes | The space (from list_content_spaces, or any Amplify space the user owns). |
No output schema declared.
No examples provided.
get_earnings Check participation earnings ~45
The connected user's participation totals: points, credit balance, and reply stats (submitted / approved / rejected / strikes) for work submitted through this connector. Free, read-only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_growth_suggestions Get today's posts to reply to ~164
The user's growth assistant: posts found in the last 3 days on their topics that still wait for a reply, each with a draft reply in their voice, plus the assistant settings. Free, read-only. Each suggestion carries engagement { likes, comments, reposts, views } and kind: busy (many comments: a bigger audience, the reply sits lower), early (few comments: the author reads you) or regular. Show each post briefly (author, likes and comments, kind, post, link, draft) and help the user edit the draft; they post it from their own account. If they want more busy threads or more early posts, set `mix` with setup_growth_assistant. If there are no assistants, offer setup_growth_assistant.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_my_submissions Check campaign submission status ~56
The connected user's submissions to one campaign: pending / approved / rejected, with the reviewer's notes. Free, read-only. Use to report outcomes back to the user after submit_campaign_work.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
No output schema declared.
No examples provided.
get_posts Read discovered posts & reply drafts ~84
Read a campaign's discovered posts with their drafted replies. Free. Use after generate_posts to inspect what was found, then review_posts / regenerate_replies to refine.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| include_replies | boolean | – | Default true |
| limit | integer | – | Default 50 |
| offset | integer | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
get_research Read cached campaign research ~76
Read the cached topic/competitor analysis for a campaign (from run_research). Free. Also reports which of its findings the campaign is actually searching: expanded keywords and exclusion terms always apply, while phrases / influencer accounts / lists / competitors stay dormant until their source is enabled via update_campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
No output schema declared.
No examples provided.
get_scout_deals Get my scout deals ~143
For approved ProductClank scouts: the founder posts picked for you today, each with the post, why it fits, a drafted opener, its status and your signup/call links. Free, read-only. Use it when the user asks 'what deals do you have for me?'. Show each deal briefly (founder, post, the opener) and let the user pick. A deal matched to them is theirs alone for 12h, then open to every scout. If the user is not a scout (403 not_a_scout / scout_not_approved), relay the message: they apply at https://www.productclank.com/scouts.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_scout_earnings Get my scout earnings ~42
The scout's pipeline by stage, commissions earned from their deals, and their rank in this month's top-scouts pool. Free, read-only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_support_status Check support tickets ~88
Read the status of issues you reported with report_issue, and ProductClank's replies. Without ticket_id: your recent tickets (look for has_reply:true). With ticket_id: the full conversation. Free, read-only. Check at the start of a session if you reported something earlier.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 20 (list mode). |
| ticket_id | string | – | – |
No output schema declared.
No examples provided.
get_watch_quiz_results Get watch-quiz results ~137
Results of one of the user's watch quizzes (made here, in the web app, or on a boost): state (live / paused / ended), how many people started, answered, got it right, ran out of tries, or used their second try, how each question did, and the credits billed so far. Free, read-only. A question most viewers miss is usually ambiguous — say so. 'paused' with credits left means the user paused it; otherwise the balance ran out.
| Name | Type | Req | Description |
|---|---|---|---|
| quiz_id | string | yes | The quiz id from create_watch_quiz (or boost_post's watch_quiz.campaign_id). |
No output schema declared.
No examples provided.
hold_opportunity Hold a draft while the user posts it ~174
Hold one draft from find_opportunities for the connected user for 10 minutes, so no other member posts the same reply. Call it when the user has PICKED a draft and is about to post — not to reserve work for later. Returns the draft text and `held_until`. One hold at a time: if the user already holds another draft, this fails with too_many_holds — submit that one (submit_participation) or release it (release_opportunity) first. Calling it again on the same draft restarts the 10 minutes. already_reserved means another member holds it or it was just claimed: offer another draft. Free. Never post for the user: they edit, approve and post it from their own account.
| Name | Type | Req | Description |
|---|---|---|---|
| reply_id | string | yes | The draft's id from find_opportunities |
No output schema declared.
No examples provided.
launch_tiktok_campaign Launch a full TikTok campaign ~715
One call for a full TikTok push on ONE video: community likes + up to 10 community replies (AI-drafted comments) + a 24h 'Watch & answer' quiz (viewers watch to the end and answer a counting question). Use it when the user asks for a 'full', 'full blown', 'complete' or 'combo' TikTok campaign, or for likes + replies + quiz together, instead of calling boost_post and create_watch_quiz one by one. Every size is adjustable: likes_count (1–300, default 30), replies (0–10, default 10), quiz_answers (how many people may answer, 0–1000, default 10). When the user asks for more likes or a bigger quiz, set those — do not cap them at the defaults. Price: likes 10 credits each (30 = 300, 100 = 1,000), replies 20 credits each (10 = 200), billed up front; the quiz bills 100 credits per CORRECT answer over 24h, up to quiz_answers (10 = up to 1,000, 50 = up to 5,000). FLOW: (1) call WITHOUT confirmed to get the free plan and show the user the steps and credit totals; (2) after the user says yes, call again with confirmed: true. If quiz_questions are missing on the confirmed call, the tool suggests questions from the video (40 credits) and creates nothing yet: show the user each question with its evidence, let them fix the answers, then call a third time with quiz_questions and confirmed: true. Each campaign bills separately; on a partial failure the result lists what was created — never call again blindly, it would create duplicates.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmed | boolean | – | Set true only after the user approved the plan and its credit totals. Omit to get the free plan. |
| likes | boolean | – | Include the likes boost. Default true. Size it with likes_count. |
| likes_count | integer | – | How many likes, 1–300. 10 credits each. Default 30 (300 credits). |
| post_text | string | – | Optional — the video caption, if known. Skips the wait on a TikTok posted under a minute ago. |
| product_id | string | – | Optional product UUID (from search_products) to tailor the replies and name the quiz. |
| quiz_answers | integer | – | Watch quiz size: how many people may answer, 0–1000. Billed 100 credits per CORRECT answer only. Default 10. 0 = no quiz. |
| quiz_duration_sec | – | – | Video length in seconds, or "m:ss". Omit to read it from the TikTok / YouTube page; other platforms need it. |
| quiz_questions | array | – | Counting questions with whole-number answers, confirmed by the user. Omit and the confirmed call suggests them first (40 credits). |
| replies | integer | – | Community replies (AI-drafted comments), 0–10. 20 credits each. Default 10. 0 = no replies boost. |
| reply_guidelines | string | – | Optional tone and content guidance for the replies. |
| spread_over_hours | integer | – | Optional — pace each boost over this many hours instead of all at once. Same price. |
| video_url | string | yes | The TikTok video URL (tiktok.com or vm.tiktok.com short link). |
No output schema declared.
No examples provided.
list_campaigns List the user's campaigns ~81
List ALL the connected user's discovery/boost campaigns, newest first — including ones created in the ProductClank web app, not just via this connector. Free. Use to find a campaign id before get_campaign / generate_posts / get_posts.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 20 |
| offset | integer | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
list_content_spaces List content spaces ~68
List the ProductClank content spaces you can draft into — spaces the user owns, delegates for, or manages that have their content engine turned on. Returns { space_id, name }. Call this first to resolve the space_id for write_content_candidates, and confirm the target space with the user.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
manage_content_topics Manage the topic inventory ~187
The inventory of aspects a brand talks about. FREE. action 'list' reads it; 'add' appends topics (≤12; keywords proposed when omitted); 'update' edits or pauses one (is_active:false keeps it but stops using it); 'remove' deletes one; 'suggest' brainstorms new KB-grounded ideas that differ from the existing topics — put them to the user, then 'add' the keepers.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| is_active | boolean | – | update: false pauses the topic. |
| keywords | array | – | update: replacement keywords. |
| label | string | – | update: new label. |
| search_context | string | – | update: new angle. |
| space_id | string | yes | – |
| topic_id | string | – | update / remove: which topic. |
| topics | array | – | add: the topics to append. |
No output schema declared.
No examples provided.
publish_posts Publish held drafts to the community ~210
Release chosen posts (and their reply drafts) to the community earn feed. Free. This is the approval step for a campaign created with post_visibility 'private' (held mode): drafts are found and written but nobody can claim them until you publish them. Pass the post_ids the user approved, or all:true. If the campaign is still private this makes it public — which turns on per-posted-reply billing (20 credits each) — so the API demands confirm:true; only pass it after the user has agreed. Unlike update_campaign's visibility flip, this touches only the posts you name and leaves future drafts held.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | Release every held post in the campaign |
| campaign_id | string | yes | – |
| confirm | boolean | – | Required only when the campaign itself is still private — confirms the user agreed to community distribution and per-reply billing |
| post_ids | array | – | Post ids from get_posts to release. Omit with all:true to release every held post. |
No output schema declared.
No examples provided.
rate_deal Rate a scout deal ~78
Tell ProductClank whether this deal was a good pick: 'would_send' or 'would_not'. Free. It tunes which posts the matcher picks for this scout. Ask the user when they skip or finish a deal.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal id from get_scout_deals. |
| rating | string | yes | – |
No output schema declared.
No examples provided.
regenerate_replies Regenerate reply drafts with feedback ~103
Redraft the replies of specific posts with an edit request (e.g. 'shorter, no emojis, lead with the user's problem'). Costs 5 credits per reply regenerated; already-claimed replies are refused. Get post ids from get_posts. Confirm the spend with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| edit_request | string | yes | How the replies should change |
| post_ids | array | yes | Post UUIDs whose replies to redraft |
No output schema declared.
No examples provided.
release_deal Release a scout deal ~64
Give a claimed deal back to the shared pool (the user will not reply to it). Free. Use it when the user skips a deal they claimed, so another scout can take it.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal id from get_scout_deals. |
No output schema declared.
No examples provided.
release_opportunity Release a held draft ~82
Release the connected user's hold on a draft they decided not to post, so other members can take it and the user can hold another. Only ever frees the user's own hold; `released: false` means there was no live hold of theirs on it (it lapsed or was claimed). Free.
| Name | Type | Req | Description |
|---|---|---|---|
| reply_id | string | yes | The held draft's id |
No output schema declared.
No examples provided.
report_deal_progress Report scout deal progress ~160
Move a deal forward. stage 'sent' + replyUrl (the URL of the reply the user posted on X) records the reply and awards Stars; it must be the user's own reply, not the founder's post. Later stages are private pipeline steps: 'replied' (the founder answered), 'call_booked', 'closed_won', 'lost'. Free. Only report what the user tells you happened.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal id from get_scout_deals. |
| note | string | – | Optional private note on this step. |
| replyUrl | string | – | Required for 'sent': https://x.com/<user>/status/<id> of the user's reply. |
| stage | string | yes | – |
No output schema declared.
No examples provided.
report_issue Report an issue to ProductClank support ~309
Tell the ProductClank team a tool failed, returned something that doesn't make sense, or that you're stuck and can't finish the user's task. Free. A human is alerted and replies (read it with get_support_status). Use this INSTEAD of retrying a failing call in a loop — but not for expected guards the error already explains (insufficient credits, a confirmation prompt, a spend cap): relay those to the user. Include the failing tool, its error code/status and what you tried. If the error_code is a known one, the result carries `self_help` — a fix you can apply right away. Tell the user in one line that you reported it. To add detail to an earlier report pass its ticket_id rather than opening a new one.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Default 'other'. |
| context | object | – | Arguments you passed, the error text, what you already tried. Never include secrets. |
| error_code | string | – | The machine error code from the failed call, if shown. |
| http_status | integer | – | Status from the failed call, if shown. |
| message | string | yes | What you were trying to do, what happened, and what you expected. |
| severity | string | – | 'blocking' = you cannot continue the user's task. Default 'normal'. |
| ticket_id | string | – | Follow up on a ticket you opened earlier. |
| tool | string | – | The ProductClank tool that failed, e.g. generate_posts. |
No output schema declared.
No examples provided.
review_posts AI-review posts for relevance ~161
Score every discovered post against relevancy rules and delete the irrelevant ones (kept when dry_run:true). Costs 2 credits per post reviewed — dry runs are billed too, since the AI review runs either way. Start with dry_run:true to preview the verdicts, then re-run with dry_run:false to prune. Confirm the spend with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| dry_run | boolean | – | Preview verdicts without deleting (default false; still billed) |
| review_rules | string | – | Relevancy rules, e.g. 'Keep only posts where the author has a real problem our product solves'. Falls back to rules saved on the campaign. |
| threshold | integer | – | Delete posts scoring below this (default 5) |
No output schema declared.
No examples provided.
revise_content_draft Approve, revise, or discard a draft ~288
Act on one draft in the user's queue. `stage` = the user approved it (mark ready to publish; publishing itself happens in the web tool). `discard` drops it. `revise` rewrites it in the brand voice per a one-click preset — shorter, longer, punchier, deeper, simpler, more_specific, less_salesy, more_casual, more_formal — and/or a typed instruction (2 credits). `fix` makes the surgical change the reviewer's notes asked for (2). `humanize` strips the AI feel and keeps everything else (2). `review` scores it against the brand voice (2). `edit` replaces the text with what the user wrote (free). Any text change clears the old score. Stage and discard are the USER's decisions — act on their say-so, never on your own judgment. If the user's reaction should apply to every future draft (not just this one), use teach_content_voice instead.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| draft_id | string | yes | From get_content_queue or a write_content_candidates result. |
| instruction | string | – | revise / fix / humanize: the user's note in their words. |
| preset | string | – | revise: the calibration chip the user clicked. |
| space_id | string | yes | – |
| text | string | – | edit: the replacement text. |
No output schema declared.
No examples provided.
run_research Research the campaign's topic (free) ~137
FREE pre-flight before spending credits: analyzes the campaign's keywords/topic and returns expanded keywords, high-intent phrases, influencer accounts, relevant X lists, and competitors. The EXPANDED KEYWORDS and exclusion terms are applied automatically by the next generate_posts run. Everything else is NOT: phrases, influencer accounts, lists and competitors are only searched once their source is enabled — the result reports which are dormant, and update_campaign (free) switches them on. Cached for 7 days — pass force:true to refresh.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| force | boolean | – | Force a fresh analysis even if a cached one exists |
No output schema declared.
No examples provided.
search_products Search ProductClank products ~75
Search the user's ProductClank products by name and return their IDs. A product_id is required to create or boost a campaign — use this to resolve it, then confirm the match with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results (default 5) |
| query | string | yes | Product name or keyword to search for |
No output schema declared.
No examples provided.
set_campaign_schedule Put discovery on a schedule ~372
Turn standing discovery on or off for a campaign. Calling this is free, but switching it ON authorizes spend that happens LATER and unattended: an hourly job runs discovery on its own and bills the user 12 credits per post it finds, with nobody in the loop. So there are two steps and you must not skip the first. STEP 1 — call with enabled:true and NO confirmed flag: nothing is changed and you get back the projected daily and monthly cost, the balance, and how many days of runway that is. STEP 2 — show the user those numbers, get a real yes, then call again with confirmed:true. Never send confirmed:true on your own initiative, on an assumption, or because the user said something general like 'keep it going' — the user has to have seen a number. Turning it OFF (enabled:false) is always safe and needs no confirmation; do it whenever the user asks to stop. Limits on this path are deliberately lower than the website's: up to 4 runs/day, up to 20 posts/run, and never more than 600 projected credits/day. Read the current schedule with get_campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | – |
| confirmed | boolean | – | Set true ONLY after the user has seen the projected cost from a previous call and explicitly agreed to it. Omit on the first call — that is what produces the projection. |
| enabled | boolean | yes | true starts standing discovery, false stops it |
| frequency_per_day | integer | – | Discovery runs per day (1-4). Defaults to the campaign's current setting, else 1. |
| posts_per_run | integer | – | Target posts per run (1-20). Defaults to the campaign's current setting, else 5. Each post found bills 12 credits. |
No output schema declared.
No examples provided.
set_content_bounty Set the cash bounty for a content campaign ~337
A content campaign pays its creators from a cash prize pool the user deposits (the bounty); the best submissions, ranked by the owner, win it. Free — this sets the pool, it moves no money. TWO STEPS ON PURPOSE: (1) call WITHOUT confirmed: nothing is saved; you get the exact numbers — pool, the platform fee on top, total_due, and what each rank wins. Show them to the user. (2) Only after the user says yes, call again with confirmed:true: the pool is saved and you get fund_url — give that link to the user: it opens the campaign page at the deposit step, where they pay by card or USDC (signed in as the owner). The bounty is live once they deposit; check with get_content_campaign_results. Default token USDC; default split 1st 30% · ranks 2–5 20% · ranks 6–20 50% — for a small pool, suggest fewer winners so each prize is worth winning. A funded pool cannot be changed.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign UUID from create_content_campaign |
| confirmed | boolean | – | Leave unset to preview. Set true ONLY after the user agreed to the numbers from the preview. |
| pool_amount | number | yes | Prize pool paid to winners, in whole tokens (USDC ≈ dollars). The platform fee is added on top. |
| tiers | array | – | Prize bands from rank 1, no gaps, summing to 100. Omit for the default split. |
| token | string | – | Token ticker, default USDC |
No output schema declared.
No examples provided.
setup_content_space Set up (or update) a brand's content space ~470
Turn the content engine on for a brand from an onboarding conversation, or update its settings later. FREE with structured fields. Collect the answers FIRST (use the setup_content_space prompt: brand & site → audience → tone with the archetype options → platforms → post types → 3–8 topics → example posts), read them back to the user for a yes, THEN call this once. Target an existing space with space_id, or create a fresh solo space for the brand with new_space:{name}. First-time setup needs at least `voice` and `platforms`. Topics are appended (≤12 per call; keywords proposed when omitted). Pass `brand_doc` only when the user hands over a written brand template (it costs 5 credits to structure); answers you collected go in the fields for free. Nothing is published by this tool.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_doc | string | – | A filled brand template the user pasted — costs 5 credits to structure. |
| brand_name | string | – | Defaults to the space name. |
| new_space | object | – | Create a solo Amplify space for this brand (idempotent on name). |
| platform_playbook | string | – | Per-platform notes, e.g. "X: short and punchy. LinkedIn: longer, more reflective." |
| platforms | array | – | Where the brand posts, e.g. ["X", "LinkedIn"]. One draft per platform is written per topic. |
| post_types | string | – | The kinds of posts they want (how-tos, build-in-public notes, hot takes, customer wins, thesis drops…). |
| review_threshold | integer | – | Reviewer pass bar (default 75). |
| space_id | string | – | Existing space to enable/update (one of space_id / new_space is required). |
| topics | array | – | The inventory of themes to post about (3–8 to start). |
| trending_source_handles | array | – | X accounts to pin for 'Trending on X' (news outlets, analysts, competitors). |
| voice | string | – | Voice & style as a tight paragraph: tone in 3–5 words, do's and don'ts, typical length, emoji / hashtag / link policy, words to use and avoid, and the feel of any example posts the user shared. |
No output schema declared.
No examples provided.
setup_growth_assistant Set up my personal growth assistant ~382
Personal brand growth for the USER (not a product campaign): every morning it finds up to 5 posts on ONE network (X, LinkedIn, Reddit or YouTube) on the topics the user wants to be known for, each with a draft reply in their voice (no product mentions, no links). The user posts the replies themselves. Free to set up, no credits. After setup the user opens the app link for the free first run (live) and the $9/month (or $99/year) subscription that turns on the daily run + morning email (the card step happens in their browser). Before calling: agree with the user on 2-4 topics and their search phrases, one or two sentences about who they are, and a few rules for how their replies should read — draft these from what you know about them and confirm. Calling again updates the assistant in place.
| Name | Type | Req | Description |
|---|---|---|---|
| about | string | – | Who the user is and the angle they add, 1-2 sentences. |
| mix | string | – | Which posts the daily picks favour: relevance (default: the top-scored posts), balanced (about 2 in 5 are busy threads, the rest early posts), busy (mostly busy threads: a bigger audience, the reply… |
| network | string | yes | The ONE network where the user wants to be visible: twitter (X), linkedin, reddit or youtube. |
| per_day | number | – | Posts per day (default 5). |
| topics | array | yes | 1-4 topics the user wants to be known for. |
| voice | string | – | How their replies should read, one rule per line. |
No output schema declared.
No examples provided.
How do I install the ProductClank MCP server?
ProductClank is a hosted endpoint at https://mcp.productclank.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.productclank.com
claude mcp add --transport http com-productclank-productclank 'https://mcp.productclank.com/mcp'
What is the ProductClank MCP server?
ProductClank is an MCP server listed in the public MCP registry as com.productclank/productclank. Boost posts and launch community growth campaigns from your AI assistant. OAuth, credit-billed. This page covers its hosted endpoint (https://mcp.productclank.com/mcp).
Is the ProductClank MCP server safe to use?
ProductClank scores 91 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ProductClank MCP server expose?
ProductClank exposes 57 tools: search_products, create_product, check_balance, credit_history, boost_post, and 52 more. Their descriptions and schemas cost roughly 13,270 tokens of context every time the server is loaded.
Does the ProductClank MCP server require authentication?
Its publisher declares no required credentials for ProductClank. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the ProductClank MCP server still maintained?
ProductClank is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the ProductClank MCP server?
VerifyMCP ran 3 checks on ProductClank, covering HTTPS, DNSSEC and Transport. 8 items could not be completed, a gap on our side rather than a finding about ProductClank: TLS certificate, Authorization, HSTS header, Schema quality and 4 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.