{
  "markdown": "# ProductClank MCP Server\n\n**Launch community growth campaigns from your AI assistant.** ProductClank turns real communities (and their agents) into a distribution network — this MCP server lets Claude, ChatGPT, or any MCP client rally that network on your behalf: boost a post with real replies, likes, and reposts; launch community content campaigns; draft social content into your own pipeline.\n\n- **Remote server:** `https://mcp.productclank.com/mcp` (Streamable HTTP)\n- **Auth:** OAuth 2.1 — sign in with your ProductClank account, revoke anytime\n- **Billing:** your ProductClank credits, per-tool costs shown below, with per-app daily spend caps\n- **Website:** [productclank.com/mcp](https://www.productclank.com/mcp)\n\nThe **same URL** works in both Claude and ChatGPT — the only difference is where each app hides its \"add a connector\" screen (and, for ChatGPT, a plan/Developer-mode requirement). Once connected, both drive the identical tools below.\n\n## Connect from Claude\n\n1. In Claude, go to **Settings → Connectors → Add custom connector** (Desktop or web).\n2. Paste the URL:\n   ```\n   https://mcp.productclank.com/mcp\n   ```\n3. Approve the OAuth prompt — it signs you into ProductClank (Google or email) and asks for consent.\n4. Ask Claude things like:\n   > \"Boost this post with replies from the ProductClank community: https://x.com/…\"\n   > \"Preview a content campaign for my product.\"\n   > \"What's my ProductClank credit balance?\"\n\n## Connect from ChatGPT\n\nChatGPT reaches custom MCP connectors through **Developer mode**.\n\n> **Requirements** — Custom connectors need a paid ChatGPT plan (**Pro, Plus, Business, Enterprise, or Education**) on the **web app**. They are **not** available on the free tier, so free-tier users won't see an \"add connector\" option — this is a ChatGPT limitation, not a ProductClank one.\n\n1. In ChatGPT on the web, open **Settings → Apps & Connectors → Advanced settings** and turn on **Developer mode**.\n2. Back in **Apps & Connectors**, click **Create** / **Add custom connector**.\n3. Give it a name (e.g. `ProductClank`), a short description, and the MCP server URL:\n   ```\n   https://mcp.productclank.com/mcp\n   ```\n4. Choose **OAuth** as the authentication method and connect — it signs you into ProductClank (Google or email) and asks for consent, exactly like Claude.\n5. In a chat, enable the ProductClank connector and ask it to boost a post, preview a campaign, or check your balance.\n\nWorks in any MCP client that supports remote servers with OAuth (Claude web/desktop, Claude Code, ChatGPT Developer mode, and others).\n\n## Tools\n\n### Grow — run growth campaigns for a product\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `search_products` | Resolve your ProductClank products to a `product_id` | free |\n| `create_product` | List a product from just its website URL (token-free listing, auto-filled) | free |\n| `create_campaign` | Create a discovery campaign: continuously find relevant posts + draft community replies | 10 cr |\n| `run_research` / `get_research` | Topic & competitor analysis — the free pre-flight before spending | free |\n| `generate_posts` | Run discovery: scrape matching posts and draft a reply for each | 12 cr/post |\n| `list_campaigns` / `get_campaign` / `get_posts` | Campaign inventory, config + stats, discovered posts & drafts | free |\n| `review_posts` | AI-score posts against relevancy rules, prune the irrelevant (dry-run billed too) | 2 cr/post |\n| `regenerate_replies` | Redraft selected replies with an edit request | 5 cr/reply |\n| `get_campaign_activity` | What's new since the last check — posts found, replies claimed, live links to what went out | free |\n| `get_campaign_results` | Spend vs outcomes: the funnel, approval + survival rates, cost per usable reply | free |\n| `update_campaign` | Merge keywords, enable the discovery sources research found, move the relevance bar, pause/resume, re-aim the platform targeting, change who posts the drafts | free |\n| `set_campaign_schedule` | Put discovery on a schedule so it keeps finding conversations between sessions. Shows the projected daily cost and requires an explicit yes before enabling | free to set · 12cr per post found |\n| `add_delegate` | Hand a campaign to a human to manage in the web app | free |\n| `boost_post` | Rally the community to engage a specific post — 10 AI-drafted replies (200 cr), 10 AI-drafted quote posts (200 cr, X only — a repost with each member's own text, landing in their followers' feeds), 30 likes or 10 reposts (300 cr). Auto-detects platform from the URL: **X, Instagram, TikTok, LinkedIn, Reddit, Farcaster, YouTube** | 200–300 cr |\n\n### Earn — participate in campaigns for the connected user\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `find_opportunities` | Browse unclaimed reply and quote-post drafts the user can post to earn (likes and reposts need a screenshot and stay in the web app) | free |\n| `submit_participation` | Submit the posted reply's URL (X, Reddit, YouTube, LinkedIn) — attributed to the user's linked handle for that platform, then points/credits are awarded | earns |\n| `find_open_campaigns` | Discover content & take-action campaigns the user can join — public ones plus their communities' | free |\n| `get_campaign_brief` | Read a campaign's full brief: what to create or do, judging criteria, rewards, deadline, remaining allowance | free |\n| `submit_campaign_work` | Submit the user's work: a content or action-proof URL, a hosted image/video made for the task (`media_url` — links only, no uploads), and/or a description. X posts are author-verified. Pending → owner review → Stars/points | earns |\n| `get_my_submissions` | Track submission status + the reviewer's notes | free |\n| `get_earnings` | The user's participation totals: points, credits, reply stats | free |\n\n### Content Studio\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `suggest_content_campaign` | AI-drafted preview of a community content campaign (title, description, CTA) + affordability check. Nothing is created | free |\n| `create_content_campaign` | Launch the content campaign: the community creates posts/threads/videos for your product; submissions and winner selection happen in the web app | 1,000 cr |\n| `list_content_spaces` | List the content spaces you can draft into | free |\n| `get_content_workspace` | The brand's calibration — voice, platforms, post types, playbook, topic inventory, style guides. Read it before drafting | free |\n| `setup_content_space` | Turn content on for a brand from an onboarding chat (pair with the `setup_content_space` prompt): voice, platforms, post types, topics — can create a solo space for the brand. Also updates settings later | free by fields · 5 cr for a pasted brand doc |\n| `manage_content_topics` | The inventory of aspects the brand talks about: list / add / update / remove / suggest | free |\n| `write_content_candidates` | Draft up to 25 posts into the space, in the calibrated voice. They are auto-scored by the reviewer and wait in the queue for the user's approval; nothing auto-publishes | free |\n| `get_content_queue` | The queue as the user sees it: each draft with its score, verdict, and the reviewer's one-line fix | free |\n| `revise_content_draft` | Approve (`stage`), drop (`discard`), edit, or nudge a draft with a one-click preset — shorter, longer, punchier, deeper, simpler, more_specific, less_salesy, more_casual, more_formal — or a typed note; `fix` / `humanize` / `review` | stage · discard · edit free; rewrites & review 2 cr |\n| `teach_content_voice` | Turn a reaction into a standing rule in the brand's voice KB so every future draft honors it | 1 cr |\n\n### Credits\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `check_balance` | Your credit balance and plan | free |\n| `credit_history` | Your credit transactions (spend + rewards), newest first | free |\n\nThe server also exposes two MCP **prompts** — `grow_product`, a ready-made operating\nprocedure for the growth loop, and `setup_content_space`, the Content Studio onboarding\ninterview (brand → audience → tone → example posts → platforms → post types → topics,\nthen first drafts and the approve / tweak / teach loop) — and a **resource** —\n`productclank://capabilities`, the tool/cost roster — so agents can plan spend before\ncalling anything.\n\nCostly actions are designed to be confirmed with the user first — tool descriptions instruct the model to preview and state the credit cost before spending.\n\n## How auth & billing work\n\nThe server is an OAuth 2.1 authorization server backed by the ProductClank web app (`/connect/mcp` login + consent). Every `/mcp` request requires a valid access token; tools act **as the connected user** and bill **that user's** credit balance. Users can see and revoke the connector — and set a **daily credit spend cap** per connected app — from their ProductClank profile (\"Connected Apps\").\n\n## Communication contract\n\nTool results are read by an assistant, not by the person paying the credits, so\nanything the user must **know** or **decide** travels in the payload:\n\n- `user_note` — one or two plain sentences for the assistant to relay.\n- `decision_offer` — a real choice (`question` + `options` with `what_happens`\n  and `cost` + `current` + `how_to_apply`) for the assistant to present, never\n  to answer on the user's behalf.\n\nThe main one is distribution: campaigns are created **private** (drafts wait in\nthe owner's workbench) and the result offers community distribution — the\nreach the platform exists for — as an explicit, costed choice. Spends get the\nsame treatment: `suggest_content_campaign` returns the 1000-credit launch as a\nyes/no, and a `review_posts` dry run says what it already cost and what the\nnext step actually changes.\n\n## Telemetry\n\nThe server emits three PostHog events — `mcp_connected` (OAuth consent\ncompleted), `mcp_tool_called` (every tool, with `ok` and `duration_ms`) and\n`mcp_tool_error` (failures, with the message) — so the connect → first-call →\nrepeat-use funnel is measurable and refused calls double as roadmap signal.\nEvents are keyed to the user's Supabase auth id where resolvable, so connector\nactivity joins the same PostHog person as their webapp activity. Capture is\nfire-and-forget and the whole thing no-ops without `POSTHOG_API_KEY`. See\n[`src/lib/analytics.ts`](./src/lib/analytics.ts); tools are instrumented\ncentrally in [`src/tools/instrument.ts`](./src/tools/instrument.ts).\n\n## Architecture\n\nA thin Express + [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk) wrapper over ProductClank's public agent REST API (`/api/v1/agents/*`). The REST API is canonical; this server and the [ProductClank agent skill](https://github.com/covariance-network/productclank-agent-skill) are parallel wrappers — [`capabilities.json`](./capabilities.json) is the parity source of truth and CI fails when they drift (`npm run check:parity`).\n\n```\nClaude / MCP client ──▶ mcp.productclank.com/mcp (this server)\n                          │  OAuth 2.1 AS ──▶ productclank.com/connect/mcp (login + consent)\n                          └─▶ ProductClank agent REST API (/api/v1/agents/*)\n```\n\n## Development\n\n```bash\ncp .env.example .env   # fill in (see DEPLOYMENT.md)\nnpm install\nnpm run dev            # tsx watch\nnpm run typecheck\nnpm run build && npm start\n```\n\nSee [DEPLOYMENT.md](./DEPLOYMENT.md) for production deployment (Docker / Railway) and [CAPABILITIES.md](./CAPABILITIES.md) for the tool roadmap.\n\n## Operations\n\nWhen a release depends on new app-repo behavior, deploy the app repo first; tools must degrade gracefully against the older API.\n\n## Registry\n\nPublished to the official MCP Registry as **`com.productclank/productclank`** — see [`server.json`](./server.json).\n\n## Links\n\n- [What is ProductClank?](https://www.productclank.com/landing) · [MCP connector page](https://www.productclank.com/mcp) · [For agents & developers](https://www.productclank.com/agents)\n- Issues & support: [GitHub issues](https://github.com/covariance-network/productclank-mcp-server/issues) or in-app support\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 12072,
  "sha": "bcb18aaab6eb4d2461fb7ccd8caa12fd7e4f4f2ced30f8c1f7617be83bc97fc2",
  "repo_slug": "covariance-network/productclank-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_productclank_productclank_0039bfbf/readme"
}