Overview
Set what every booked creator of one campaign reads: pitch (what the post should get across, up to 800 characters), key_messages, references (https links), voice (up to 300 characters), dos and donts (each list up to 8 items of up to 200 characters). Replaces the campaign's guidelines as a whole; a field left out is cleared. An archived campaign is refused (conflict, archived). Creators read the pitch, dos and donts with their proposal and everything once they accept; they never see a price, a budget or an email. campaign_status returns them. Needs an idempotency_key.
- Server
https://app.distribution.tech/api/mcp- Scope
campaigns:write- Changes data
- Yes, pass an idempotency_key
- REST endpoint
- POST /campaigns/{id}/creator-guidelines
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
idempotency_key | string | Yes | Your unique id for this request. Retry with the same id and the same arguments to get the same answer; it never runs twice. |
campaign_id | string (uuid) | Yes | The campaign id from campaign_status or create_campaign. |
pitch | string | No | What the post should get across, a short paragraph. |
key_messages | array of string | No | The points every post should make, up to 8. |
references | array of string (uri) | No | Up to 8 https links: the product, a launch post, a demo. |
voice | string | No | The tone, in a sentence. |
dos | array of string | No | What the creators should do, up to 8. |
donts | array of string | No | What the creators must not do, up to 8. |
Call with curl
The server speaks streamable HTTP, so one JSON-RPC tools/call request runs the tool. Set DISTRIBUTION_API_KEY to a key from Developers with the campaigns:write scope; the arguments shown are the required ones.
curl -X POST "https://app.distribution.tech/api/mcp" \
-H "Authorization: Bearer $DISTRIBUTION_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_creator_guidelines",
"arguments": {
"idempotency_key": "<string>",
"campaign_id": "<uuid>"
}
}
}'Result
The answer's structuredContent follows the tool's output schema (the same JSON is in its text content). It has these fields:
| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string (uuid) | Yes | |
creator_guidelines | object | Yes |
{
"campaign_id": "<uuid>",
"creator_guidelines": {
"pitch": "<string>",
"key_messages": [
"<string>"
],
"references": [
"<uri>"
],
"voice": "<string>",
"dos": [
"<string>"
],
"donts": [
"<string>"
]
}
}Other tools
inventory: Network coverageresolve_audience: Resolve an audiencecampaign_status: Campaign statusevidence: Proof of deliveryresults: Resultsbrain_get: Company contextcreators_search: Find creatorscreator_get: One creatorcreator_ask_price: Ask for a priceplan_quote: Quote a plancreate_campaign: Start a campaignplan_add_creator: Add a creatorplan_remove_creator: Remove a creatorplan_move_dates: Move a plan's datesplan_swap_creator: Swap a creatorapprove_plan: Approve and get the pay linkarchive_campaign: Archive a campaignrename_campaign: Rename a campaigndelete_campaign: Delete a draft campaignfeedback_send: Send feedbackfeedback_list: Your feedback
Get access
Keys are created in Developers once your brand is approved. Connect an agent to ask for access, then read the agent guide for the full flow.