com.productclank/productclank

ProductClank

Boost posts and launch community growth campaigns from your AI assistant. OAuth, credit-billed.

Endpointhttps://mcp.productclank.com/mcp (streamable-http)
Registry version0.3.0
Now55 tools · grade D (55) · pin ts_6cb14ebb898130e9a002af306d20a139 · protocol 2025-06-18
First / last listed2026-10-27 02:36 UTC / 2026-10-27 02:36 UTC
Grade over time2026-10-27: D (55), 55 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-27 02:36 UTC
55 tools, grade D (55)

Tools: search_products create_product check_balance credit_history boost_post create_watch_quiz suggest_quiz_questions get_watch_quiz_results launch_tiktok_campaign suggest_content_campaign create_content_campaign set_content_bounty get_content_campaign_results list_content_spaces write_content_candidates get_content_workspace setup_content_space manage_content_topics get_content_queue revise_content_draft teach_content_voice analyze_url create_campaign list_campaigns get_campaign run_research get_research generate_posts get_posts review_posts regenerate_replies get_campaign_activity get_campaign_results update_campaign set_campaign_schedule add_delegate edit_reply publish_posts find_opportunities submit_participation find_open_campaigns get_campaign_brief submit_campaign_work get_my_submissions get_earnings get_scout_deals claim_deal release_deal report_deal_progress rate_deal get_scout_earnings setup_growth_assistant get_growth_suggestions report_issue get_support_status

Current tools (55)

search_productsSearch 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.
params: query*, limit
create_productList 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 tha
params: url, name, tagline, description, website, twitter, logo, category
check_balanceFree. 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
params: none
credit_historyThe 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.
params: limit, offset
boost_postRally 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; s
params: post_url*, product_id, action_type, reply_guidelines, count, spread_over_hours, post_text, watch_quiz
create_watch_quizGet 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
params: video_url*, questions*, duration_sec, max_answers, product_id
suggest_quiz_questionsAI watches a TikTok (frames + captions) and suggests counting questions with their answers and the evidence for each — high confidence only. Creates nothing. Costs 40 credits, charged only when questions come back. Show every question WITH its evidence to the user and pass only the ones they confirm to create_watch_quiz (or boost_post's watch_quiz). If it fails, nothing is charged — ask the user f
params: video_url*
get_watch_quiz_resultsResults 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; other
params: quiz_id*
launch_tiktok_campaignOne 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. E
params: video_url*, likes, likes_count, replies, quiz_answers, quiz_questions, quiz_duration_sec, reply_guidelines, post_text, spread_over_hours, product_id, confirmed
suggest_content_campaignPreview a content campaign for a product BEFORE launching it. FREE — nothing is created and no credits are charged. Returns an AI-drafted campaign (title, description, call-to-action) plus whether the user can afford to launch it (1000 credits). Show the user the draft AND the credit cost, get an explicit yes, then call create_content_campaign — never launch off the back of the preview alone. Requ
params: product_id*, campaign_message*, campaign_goals, target_audience, preferred_platform, additional_guidelines, references
create_content_campaignLaunch 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 100
params: product_id*, campaign_message*, campaign_goals, target_audience, preferred_platform, additional_guidelines, references
set_content_bountyA 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 s
params: campaign_id*, pool_amount*, token, tiers, confirmed
get_content_campaign_resultsSee 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'
params: campaign_id*, status, limit, offset
list_content_spacesList 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.
params: none
write_content_candidatesDraft one or more posts into a ProductClank content space. FREE. Call get_content_workspace FIRST and write in that brand's voice, post types and topics — the drafts are scored against exactly that voice by the reviewer a moment after they land, and the scores show in get_content_queue. `platform` must be one of the space's platforms (omit it to use the first). Candidates land in the user's 'All C
params: space_id*, candidates*
get_content_workspaceThe 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.
params: space_id*
setup_content_spaceTurn 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 spa
params: space_id, new_space, brand_name, platforms, voice, post_types, platform_playbook, topics, review_threshold, trending_source_handles, brand_doc
manage_content_topicsThe 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.
params: space_id*, action*, topics, topic_id, label, keywords, search_context, is_active
get_content_queueThe 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), pe
params: space_id*, status, limit
revise_content_draftAct 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 rev
params: space_id*, draft_id*, action*, preset, instruction, text
teach_content_voiceTeach the engine. The user's reaction — 'too long', 'punchier hooks', 'never say leverage', 'more first-person on LinkedIn' — becomes a durable rule in the brand's voice KB, so every future draft and review honors it. 1 credit. Use it when feedback should STICK; use revise_content_draft when it is about one draft only. Pass draft_id when the reaction was to a specific draft so the rule is grounded
params: space_id*, feedback*, draft_id, apply
analyze_urlRead 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
params: url*, platform, product_id, product_name, product_tagline
create_campaignCreate 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 w
params: product_id*, title*, keywords*, search_context*, mention_accounts, reply_style_tags, reply_length, reply_guidelines, reply_approach, reply_tag_accounts, platform, target_subreddits, target_youtube_channels, visibility, post_visibility, space_id
list_campaignsList 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.
params: limit, offset, status
get_campaignGet 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.
params: campaign_id*
run_researchFREE 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
params: campaign_id*, force
get_researchRead 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.
params: campaign_id*
generate_postsRun 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.
params: campaign_id*
get_postsRead 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.
params: campaign_id*, limit, offset, status, include_replies
review_postsScore 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.
params: campaign_id*, review_rules, threshold, dry_run
regenerate_repliesRedraft 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.
params: campaign_id*, post_ids*, edit_request*
get_campaign_activityCatch 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 growt
params: campaign_id*, since, limit
get_campaign_resultsThe 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 wor
params: campaign_id*
update_campaignAdjust a live campaign without recreating it. Free — nothing here spends credits, though the next generate_posts run bills as usual. Keywords MERGE (add_keywords never drops what is already there). `sources` is how research findings get applied: high-intent phrases, influencer accounts and lists that run_research found stay dormant until you enable their source. `relevance_threshold` moves the bar
params: campaign_id*, add_keywords, remove_keywords, sources, monitor_accounts, relevance_threshold, is_active, digest_enabled, visibility, post_visibility, confirm, platform, target_subreddits, target_youtube_channels, reply_approach, reply_tag_accounts
set_campaign_scheduleTurn 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
params: campaign_id*, enabled*, frequency_per_day, posts_per_run, confirmed
add_delegateAdd 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).
params: campaign_id*, user_id*
edit_replyRewrite 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.
params: campaign_id*, reply_id*, reply_text*
publish_postsRelease 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 (2
params: campaign_id*, post_ids, all, confirm
find_opportunitiesBrowse 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,
params: limit, offset, campaign_id
submit_participationSubmit the URL of what the connected user posted for a claimed opportunity (reply_id from find_opportunities). Works for X, Reddit, YouTube and LinkedIn replies, and X quote posts (actionType `quote`: pass the URL of the user's own quote post, NOT the original — the backend checks it was posted by their linked X handle and that it actually quotes the target post; a plain tweet or a quote of someth
params: reply_id*, reply_url*
find_open_campaignsDiscover 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: th
params: limit, kind
get_campaign_briefThe 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 s
params: campaign_id*
submit_campaign_workSubmit the user's work for a campaign. Three ways to prove it, and any one is enough: proof_url (content they published or an action they took), media_url (a hosted image or video made for the task — the ad-hoc creative case: a demo clip, a mockup, a designed asset), and description (max 500 chars). Media must already be hosted somewhere public and reachable — this API takes links, never uploads;
params: campaign_id*, proof_url, media_url, description
get_my_submissionsThe 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.
params: campaign_id*
get_earningsThe connected user's participation totals: points, credit balance, and reply stats (submitted / approved / rejected / strikes) for work submitted through this connector. Free, read-only.
params: none
get_scout_dealsFor 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
params: none
claim_dealHold 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 claim
params: dealId*
release_dealGive 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.
params: dealId*
report_deal_progressMove 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.
params: dealId*, stage*, replyUrl, note
rate_dealTell 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.
params: dealId*, rating*
get_scout_earningsThe scout's pipeline by stage, commissions earned from their deals, and their rank in this month's top-scouts pool. Free, read-only.
params: none
setup_growth_assistantPersonal 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)
params: network*, topics*, about, voice, per_day, mix
get_growth_suggestionsThe 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
params: none
report_issueTell 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 t
params: message*, category, severity, ticket_id, tool, http_status, error_code, context
get_support_statusRead 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.
params: ticket_id, limit

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.