Connect an AI assistant to Clouture
Clouture has an MCP server, so AI assistants such as Claude and Muse, or any other MCP-compatible assistant, can look through your briefs, scored creators and outreach, and help with the work, using only the permissions you approve.
Connect in two steps
- Add the connector. In your assistant's settings, add a remote MCP server or custom connector with this address. In Claude: Settings, Connectors, Add custom connector. In Muse and other assistants: wherever they let you add an MCP server.
- Connect and approve. Click Connect, sign in to Clouture (Google works too), choose the account, and approve the permissions you want to give.
That's it. No API key to copy. To disconnect later, open Profile in Clouture and remove the app under Connected apps.
What it can and can't do
- It can read brands, briefs, creators and their scores, outreach and spending, and make changes like shortlisting, rating, deal notes and outreach drafts, depending on what you approve.
- It can't start paid searches; those stay in the app.
- It never sends anything to creators. Drafts are only drafts, and you send them yourself.
- Every change it makes is recorded in your account's audit log with the app's name, and your role in the account still applies.
Permissions
brands:read: See your brands and their profilesbriefs:read: See briefs, their settings and search results so farbriefs:write: Create and edit briefs (it can't start paid searches)creators:read: See creators, their scores, track records and your creator databasecreators:write: Shortlist, reject and rate creators, update deal notes, and add creators from your database to briefsoutreach:read: See outreach templates, messages and follow-ups dueoutreach:write: Write outreach drafts and mark messages as sent (it never sends anything itself)spend:read: See this month's spending against your cap
Tools (version 2026-10-13.1)
This list is generated from the server's own tool definitions, so it always matches what assistants see. An assistant only sees the tools its approved permissions allow.
whoami Who am I
Shows who this connection acts as: the user, the account, their role, the permissions (scopes) granted, and how many brands they can see. Call this first if you are unsure what you can do.
Permission: none · Read only
list_brands List brands
Lists the brands this user can see in the account, with each brand's category, what it sells, its customers and its notes for creator scoring. Use the brand_id from here with other tools.
Permission: brands:read · Read only
get_brand Get a brand
Full profile of one brand: website, category, what it sells, customers, scoring notes, outreach defaults (offer, deliverables, usage rights, sender), and counts of briefs and creators.
Permission: brands:read · Read only
brand_id(required). The brand, from list_brands.
list_briefs List briefs
Lists briefs (saved creator searches), optionally for one brand. Each row has the platforms, status, when it last ran, and how many creators are in each inbox stage. Use brief_id from here with get_brief and list_candidates.
Permission: briefs:read · Read only
brand_id. Only briefs for this brand. Optional.status: one of active, paused, all. Defaults to active.
get_brief Get a brief
Everything about one brief: what it looks for, its filters and sources, its AI scoring settings, the latest run (status, creators found, cost, log), scoring progress and inbox counts. Searches can only be started in the app, not through this connection.
Permission: briefs:read · Read only
brief_id(required). The brief, from list_briefs.
list_candidates List a brief's creators
Lists the creators in one brief's inbox with their AI score, one-line summary, style tags, stats and pipeline status. Use candidate_id from here with get_creator and the write tools. Sorted by best score unless you choose otherwise.
Permission: creators:read · Read only
brief_id(required). The brief, from list_briefs.status: one of new, shortlisted, outreach, booked, rejected, all. Inbox stage. outreach means contacted, replied or negotiating; booked includes delivered; rejected includes not interested. Defaults to new.sort: one of score, recent, followers, engagement. Defaults to score.min_score. Only creators with at least this AI score (0 to 100). Optional.limit. 1 to 100, default 25.offset. For paging. Default 0.
get_creator Get a creator
Full detail on one creator in a brief: profile, stats, contact emails, recent post captions, the AI score breakdown with evidence, the team's rating, deal notes, follow-up date, outreach history, and their track record (collaboration reviews and Spark Ads results).
Permission: creators:read · Read only
candidate_id(required). The creator in a brief, from list_candidates.
search_creators Search your creator database
Searches every creator this account has found before, across all brands and briefs, by words in their handle, bio, captions and AI tags, plus filters. Free: it doesn't touch paid data sources. Use profile_id from here with add_creators_to_brief.
Permission: creators:read · Read only
query. Words to match, like "kitchen demo". Optional.platform: one of tiktok, instagram. Optional.min_followers. Optional.max_followers. Optional.has_email. Only creators with a public email. Optional.worked_with. Only creators the account has booked or reviewed. Optional.sort: one of score, rating, followers, recent. Defaults to score.limit. 1 to 100, default 25.
list_followups_due List follow-ups due
Lists creators whose follow-up date is today or earlier and who are still in outreach (contacted, replied or negotiating), oldest first.
Permission: outreach:read · Read only
list_outreach List outreach
Lists creators in outreach across all brands, with status, last message sent, follow-up date and quoted rate.
Permission: outreach:read · Read only
status: one of active, booked, declined, all. active means contacted, replied or negotiating. Defaults to active.brand_id. Only this brand. Optional.
list_templates List outreach templates
Lists a brand's outreach templates (pitch, pricing request, follow-up, direct message and custom ones) with their subject and body. Use template_id with draft_outreach.
Permission: outreach:read · Read only
brand_id(required). The brand, from list_brands.
get_spend Get spending
This month's spending on data sources and AI, against the monthly cap, broken down by provider.
Permission: spend:read · Read only
create_brief Create a brief
Creates a brief: a saved description of the creators a brand wants. It does not start a search; the user runs searches in the app. Describe the creators in plain words in description; keywords and hashtags are optional (AI suggests search terms on the first run).
Permission: briefs:write · Changes data; supports dry_run
brand_id(required). The brand, from list_brands.name(required). Short name, like "Kitchen demo creators".description(required). Who you are looking for, in plain words.platforms. Defaults to both.keywords. Comma-separated search phrases. Optional.hashtags. Comma-separated, without #. Optional.content_style. The videos you want, like "face to camera product demos". Optional.min_followers. Optional.max_followers. Optional.regions. Comma-separated two-letter country codes. Optional; leaving it empty finds more creators.require_email. Only keep creators with a public email. Default false.max_results. Creators per source per run, 5 to 200. Default 50.
update_brief Update a brief
Changes a brief's settings. Only the fields you pass change. Setting status to paused stops scheduled runs. It cannot start a search.
Permission: briefs:write · Changes data; supports dry_run
brief_id(required). The brief, from list_briefs.namedescriptionkeywordshashtagscontent_stylemin_followersmax_followersregionsrequire_emailmax_resultsstatus: one of active, paused
set_candidate_status Move creators in the pipeline
Moves up to 50 creators to a pipeline status: new, shortlisted, contacted, replied, negotiating, booked, delivered, declined (not interested) or rejected. Creators marked Do not contact can't be moved into outreach.
Permission: creators:write · Changes data; supports dry_run
candidate_ids(required). From list_candidates. Up to 50.status(required): one of new, shortlisted, contacted, replied, negotiating, booked, delivered, declined, rejected
rate_candidate Rate a creator
Records the team's verdict on a creator for this brand: up (good fit), down (not a fit) or clear, with an optional reason. The AI scorer learns from the last ten verdicts for each brand.
Permission: creators:write · Changes data; supports dry_run
candidate_id(required). From list_candidates.rating(required): one of up, down, clearnote. Why, in a sentence. Optional.
add_creators_to_brief Add creators from your database to a brief
Adds up to 50 creators the account already has (profile_id from search_creators) to a brief. Free: no paid search. If the brief has AI scoring on, the new creators are scored, which uses a little AI spend.
Permission: creators:write · Changes data; supports dry_run
brief_id(required). The brief, from list_briefs.profile_ids(required). From search_creators. Up to 50.
update_deal Update deal notes
Records a creator's quoted rate, deliverables, usage rights, notes and follow-up date. Only the fields you pass change; pass an empty string to clear one.
Permission: creators:write · Changes data; supports dry_run
candidate_id(required). From list_candidates.quoted_rate. Like "$250 per video".deliverablesusage_rightsdeal_notesfollow_up_date. YYYY-MM-DD, or empty to clear.
draft_outreach Draft an outreach message
Writes a draft message to a creator from one of the brand's templates, with an AI-written opening line based on their posts, and the required unsubscribe footer for emails. It never sends anything: the user sends it from their own mail app. A dry run previews the template without the AI line.
Permission: outreach:write · Changes data; supports dry_run
candidate_id(required). From list_candidates.template_id(required). From list_templates.ai_opening_line. Write a personal opening line with AI. Default true.
mark_outreach_sent Mark a message as sent
Records that the user sent a draft (from draft_outreach) from their own mail app. The creator moves to contacted and gets a follow-up reminder. Refused if the creator unsubscribed, or if an email draft lost its unsubscribe footer.
Permission: outreach:write · Changes data; supports dry_run
message_id(required). The draft, from draft_outreach.follow_up_days. 0 for no reminder, up to 30. Defaults to the brand's setting.
Tokens and access
- Access tokens last 1 hour. Refresh them at the token endpoint with `grant_type=refresh_token`.
- Refresh tokens last 30 days and rotate: every refresh returns a new refresh token and retires the old one. Reusing a retired refresh token ends the whole connection, since it means the token was copied.
- Authorization codes last 10 minutes and work once.
- Personal API tokens (created by the user under Profile, API tokens) last for the period they choose, or until revoked. Send them as Bearer tokens.
- Revoke any token at `https://clouture.io/oauth/revoke` (RFC 7009); revoking an OAuth token ends that connection. Users can also disconnect apps and revoke tokens under Profile in the app.
- All tokens stop working at once if the user is disabled or leaves the account. Resetting the password or choosing Sign out everywhere also ends every OAuth connection (personal API tokens keep working until revoked).
For developers
- MCP endpoint:
https://clouture.io/mcp(Streamable HTTP, POST) - OAuth discovery: /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server
- Agent docs: agents.md, llms.txt, llms-full.txt
- Catalog discovery (Agentic Resource Discovery, v0.9 draft): /.well-known/ard.json and /.well-known/ai-catalog.json
- CORS:
OPTIONSreturns 204. Allowed methods:GET, POST, DELETE, OPTIONS. Allowed headers:Authorization, Content-Type, Accept, Mcp-Session-Id, Mcp-Protocol-Version, Mcp-Method, Mcp-Name, Last-Event-ID. Exposed headers:Mcp-Session-Id, Mcp-Protocol-Version, WWW-Authenticate. - Without a token, the endpoint answers HTTP 401 with a JSON-RPC error and a
WWW-Authenticateheader pointing to the protected-resource metadata. - Personal API tokens for server-to-server use: Profile, API tokens. Send as
Authorization: Bearer <token>.