com.starcovery/mcp
Registry code: 1cc7da949daa40c8
MCP tools to find and hire Instagram and TikTok creators from a plain-language brief.
from a public catalogue that lists it, not from the operator
- endpoint
- https://www.starcovery.com/api/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is com.starcovery/mcp live?
- Yes — it answered the hub's last check (checked 46m ago). It answered 100% of checks over the last 30 days.
- Is com.starcovery/mcp free to use?
- No — it asks for a key or a login before it will serve.
- What tools does com.starcovery/mcp have?
- 28 tools: update_campaign, list_campaign_attachments, create_campaign, delete_campaign_attachment, get_list, list_campaigns, revoke_api_key, delete_list, ….
- Is com.starcovery/mcp safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 28 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
update_campaign auth-required never probed
Update campaign fields: name, goal, visibility, or status (draft or archived; Starcovery sets active when the team sends the proposals). A campaign that is active or holds a delivery cannot return to draft, and a campaign with an open send or funding request cannot be archived; either change returns a tool error naming the reason. Changing visibility to private costs 1 credit; already-private updates do not. Contract (deliverable, compensationCents, and platforms, the platforms one payment covers), creator posting date, campaign details declassifying date (embargoUntil), disclosure, and marketInformation are accepted. Null marketInformation clears it. After the campaign's first funding request, a changed or cleared marketInformation returns a tool error naming the reason. After Starcovery sends the proposals, a changed or cleared contract returns a tool error naming the reason; omit contract to change the other fields. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "goal": { "type": "string", "maxLength": 200, "minLength": 1, "description": "Campaign goal, also the brief for generate_campaign_matches" }, "name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "Campaign name" }, "status": { "enum": [ "archived", "draft" ], "type": "string", "description": "draft or archived. Starcovery sets active when the team sends the proposals." }, "contract": { "anyOf": [ { "type": "object", "required": [ "compensationCents", "deliverable", "platforms" ], "properties": { "platforms": { "type": "array", "items": { "enum": [ "ig", "tt" ], "type": "string" }, "maxItems": 2, "minItems": 1, "description": "Platforms the creator posts on for the one payment: ig for Instagram, tt for TikTok. A creator posts on each one they run." }, "deliverable": { "type": "string", "maxLength": 2000, "minLength": 1 }, "compensationCents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, "creatorPostingDate": { "type": "string", "format": "date-time", "description": "Creator posting date as an ISO 8601 timestamp. Omit when unset." } }, "description": "Compensation in USD cents, the paid deliverable, the platforms the creator posts on, and optional creator posting date.", "additionalProperties": true }, { "type": "null" } ], "description": "Null clears stored contract metadata. A stored declassifying date needs a contract, so clear embargoUntil in the same patch." }, "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" }, "disclosure": { "type": "object", "required": [ "statement" ], "properties": { "statement": { "type": "string", "maxLength": 4000, "minLength": 1 } }, "description": "Paid partnership disclosure. Required before send.", "additionalProperties": true }, "visibility": { "enum": [ "private", "public" ], "type": "string", "description": "Public is free. Private costs 1 credit." }, "embargoUntil": { "anyOf": [ { "type": "string", "format": "date-time", "description": "Campaign details declassifying date as an ISO 8601 timestamp." }, { "type": "null" } ], "description": "Campaign details declassifying date as an ISO 8601 timestamp. Null clears it." }, "marketInformation": { "anyOf": [ { "type": "object", "required": [ "releaseDelayMonths" ], "properties": { "releaseDelayMonths": { "anyOf": [ { "type": "integer", "maximum": 18, "minimum": 0 }, { "type": "null" } ] } }, "additionalProperties": true }, { "type": "null" } ], "description": "When the campaign's name and pay per creator may join the going rate, the list of campaigns and the typical pay other organizations and creators see, which sets the platform fee: releaseDelayMonths 0 to 18 holds them back that many months after the first funding request for a fee of that many percent of the creator pool, and a releaseDelayMonths of null keeps them out for a 20 percent fee. A campaign joins no earlier than its declassifying date. Null clears the answer. After the first funding request, a change or a clear is refused." } }, "additionalProperties": true }arguments 148 lineslist_campaign_attachments auth-required never probed
List the files attached to a campaign of the caller's organization, with id, filename, content type, byte size, and upload time. Returns no file contents. A campaign outside the caller's organization returns not_found. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 linescreate_campaign auth-required never probed
Create a campaign with a goal (what to advertise or attain). A campaign is public and free by default; setting visibility "private" costs 1 credit. Contract (deliverable, compensationCents, and platforms, the platforms one payment covers), creator posting date, campaign details declassifying date (embargoUntil), disclosure, and marketInformation are accepted. Optional creators adds them as manual matches in the same call, as add_campaign_matches does, and the result carries matches with the added and present counts; a creator id outside the catalog fails the call before anything is created or charged. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "goal", "name" ], "properties": { "goal": { "type": "string", "maxLength": 200, "minLength": 1, "description": "Campaign goal: audience, brand vibe, or objective. Used as the generate search brief." }, "name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "Campaign name" }, "contract": { "type": "object", "required": [ "compensationCents", "deliverable", "platforms" ], "properties": { "platforms": { "type": "array", "items": { "enum": [ "ig", "tt" ], "type": "string" }, "maxItems": 2, "minItems": 1, "description": "Platforms the creator posts on for the one payment: ig for Instagram, tt for TikTok. A creator posts on each one they run." }, "deliverable": { "type": "string", "maxLength": 2000, "minLength": 1 }, "compensationCents": { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, "creatorPostingDate": { "type": "string", "format": "date-time", "description": "Creator posting date as an ISO 8601 timestamp. Omit when unset." } }, "description": "Compensation in USD cents, the paid deliverable, the platforms the creator posts on, and optional creator posting date.", "additionalProperties": true }, "creators": { "type": "array", "items": { "type": "object", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }, "maxItems": 100, "minItems": 1, "description": "Creators to add to the new campaign, as search_creators or get_list returns them" }, "disclosure": { "type": "object", "required": [ "statement" ], "properties": { "statement": { "type": "string", "maxLength": 4000, "minLength": 1 } }, "description": "Paid partnership disclosure. Required before send.", "additionalProperties": true }, "visibility": { "enum": [ "private", "public" ], "type": "string", "description": "Defaults to public. Private costs 1 credit." }, "embargoUntil": { "type": "string", "format": "date-time", "description": "Campaign details declassifying date as an ISO 8601 timestamp. It needs a contract in the same request. Omit when unset." }, "idempotencyKey": { "type": "string", "maxLength": 128, "minLength": 1, "description": "Client-generated key. A valid repeat with the same key answers with the campaign the first call created, even when its other fields differ." }, "marketInformation": { "type": "object", "required": [ "releaseDelayMonths" ], "properties": { "releaseDelayMonths": { "anyOf": [ { "type": "integer", "maximum": 18, "minimum": 0 }, { "type": "null" } ] } }, "description": "When the campaign's name and pay per creator may join the going rate, the list of campaigns and the typical pay other organizations and creators see, which sets the platform fee: releaseDelayMonths 0 to 18 holds them back that many months after the first funding request for a fee of that many percent of the creator pool, and a releaseDelayMonths of null keeps them out for a 20 percent fee. A campaign joins no earlier than its declassifying date.", "additionalProperties": true } }, "additionalProperties": true }arguments 214 linesdelete_campaign_attachment auth-required never probed
Delete one file attached to a campaign of the caller's organization. Irreversible. An attachment or a campaign outside the caller's organization returns not_found. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "attachmentId", "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" }, "attachmentId": { "type": "string", "minLength": 1, "description": "Attachment id from list_campaign_attachments" } }, "additionalProperties": true }arguments 21 linesget_list auth-required never probed
Get one List of the caller's organization with its brief, filters, and saved creators, best fit first. The creators carry the saved creator shape that add_campaign_matches, create_campaign, and intersect_lists take. A List outside the caller's organization returns not_found. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "listId" ], "properties": { "listId": { "type": "string", "minLength": 1, "description": "List id from list_lists" } }, "additionalProperties": true }arguments 15 lineslist_campaigns auth-required 46m ago
List the caller's campaigns with goal, status, visibility, match counts, and nextStep: the step the web app shows next, with its id, label, actor (you for the organization, starcovery, creators, or one creator by name), and line, the sentence that says what the step waits on. nextStep is null once no step is left: the campaign is done or archived, or no creator was reached or accepted. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesrevoke_api_key auth-required never probed
Revoke an API key by id. An owner or admin revokes any key of the organization; a member revokes only a key they minted, and another key returns not_found. Irreversible. Needs a credential other than an agent access token or an OAuth access token.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "keyId" ], "properties": { "keyId": { "type": "string", "minLength": 1, "description": "API key id from list_api_keys" } }, "additionalProperties": true }arguments 15 linesdelete_list auth-required never probed
Delete one List of the caller's organization and its saved creators. Campaigns keep the creators added from it. Irreversible. A List outside the caller's organization returns not_found. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "listId" ], "properties": { "listId": { "type": "string", "minLength": 1, "description": "List id from list_lists" } }, "additionalProperties": true }arguments 15 lineslist_lists auth-required 46m ago
List the organization's saved Lists with brief, filters, creatorCount (each person once), itemCount (each saved profile), and last update. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesget_campaign auth-required 46m ago
Get one campaign and its matched creators. Ordinary public campaigns are free to read for any identified caller. A private campaign reads as not found for a caller outside the organization. Contract, creator posting date, campaign details declassifying date, and disclosure are present for members of the organization and may be null on open and summary reads. For members of the organization, people lists each person on the campaign once, with their profiles, their answer to the proposal, their funding (requested or funded), and their signed hire with the payout amount, paidAt (null while the payout is pending), and posts, each live post Starcovery recorded with its link, viewCount, and engagementCount (likes plus comments); people also lists a hire that matches no creator on the campaign, and is null for other callers. Count hires and payouts from people. For members of the organization, nextStep names the step the web app shows next, as list_campaigns does; it is null for other callers and once no step is left. currentSteps lists every step under way in campaign order in the same shape, because a step before nextStep can still wait, such as proposals Starcovery has not sent; read currentSteps, not nextStep or status, to tell whether a step is finished. It is null for other callers and empty once no step is left. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 linessearch_creators auth-required never probed
Search Instagram and TikTok creators with a natural-language brief. Returns ranked creators with fit score, follower count, platform, recent videos, and a shortlist enrichment ticket when available. Contact addresses stay empty until reveal_contact. Holds the call open until the result, up to 800 seconds. Each search is one use. Unsigned callers get 100 uses per rolling 24 hours per IP. Identified callers get 200 uses per rolling 24 hours, then prepaid credits. Pre-claim agent tokens skip the daily grant and use prepaid credits only. Pass creators, query.q, and ticket to enrich_creators for niche, evidence, and signal analysis.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "q" ], "properties": { "q": { "type": "string", "maxLength": 200, "minLength": 1, "description": "Natural-language brief: audience, brand vibe, or campaign goal" }, "tier": { "enum": [ "nano", "micro", "mid", "macro", "mega", "nano+", "micro+", "mid+", "macro+", "micro-", "mid-", "macro-" ], "type": "string", "description": "Follower tier: nano 1,000 to 9,999, micro 10,000 to 49,999, mid 50,000 to 249,999, macro 250,000 to 999,999, mega 1,000,000 or more, nano+ 1,000 or more, micro+ 10,000 or more, mid+ 50,000 or more, macro+ 250,000 or more, micro- 1,000 to 49,999, mid- 1,000 to 249,999, macro- 1,000 to 999,999. A plus tier means that follower count and above, and a minus tier means that tier and every smaller one." }, "country": { "enum": [ "us", "gb", "ca", "au", "de", "fr", "br", "jp", "kr", "in" ], "type": "string", "description": "ISO 3166-1 alpha-2 country code, e.g. us" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "Filter to Instagram (ig) or TikTok (tt)" } }, "additionalProperties": true }arguments 58 linesenrich_creators auth-required never probed
Run shortlist AI enrichment (niche, celebrity, evidence, signal) for creators from search_creators. Pass the same creators array, query string (search query.q), and ticket. Returns one analysis object per creatorId. The ticket is single-use and bound to the search caller, and enrichment spends no credits. Holds the call open until the result, up to 800 seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "creators", "query", "ticket" ], "properties": { "query": { "type": "string", "maxLength": 200, "minLength": 1, "description": "The query.q string returned by search_creators" }, "ticket": { "type": "string", "maxLength": 32768, "minLength": 1, "description": "The single-use enrichment ticket returned by search_creators, bound to the same caller, query, and creators" }, "creators": { "type": "array", "items": { "type": "object", "required": [ "bio", "country", "fitScore", "followerCount", "id", "isVerified", "name", "platform", "profileImageUrl", "tier", "username", "videos" ], "properties": { "id": { "type": "string", "minLength": 1 }, "bio": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "tier": { "enum": [ "nano", "micro", "mid", "macro", "mega" ], "type": "string" }, "emails": { "type": "array", "items": { "type": "string", "format": "email" }, "default": [], "description": "Contact addresses for this organization after Reveal contact. Empty until then." }, "videos": { "type": "array", "items": { "type": "object", "required": [ "bunnyStreamId", "caption", "commentCount", "id", "isAd", "isSponsored", "likeCount", "playCount", "playUrl", "postedAt", "score", "thumbnailUrl", "webUrl" ], "properties": { "id": { "type": "string", "minLength": 1 }, "isAd": { "type": "boolean" }, "score": { "type": "number" }, "webUrl": { "type": "string", "format": "uri" }, "caption": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Video caption, truncated to the first 500 characters." }, "playUrl": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ], "description": "Signed video URL. It expires within 24 hours. Search again for a new URL." }, "postedAt": { "type": "string", "format": "date-time" }, "likeCount": { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, "playCount": { "anyOf": [ { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, { "type": "null" } ] }, "isSponsored": { "type": "boolean" }, "commentCount": { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, "thumbnailUrl": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ], "description": "Signed thumbnail URL. It expires within 24 hours. Search again for a new URL." }, "bunnyStreamId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "additionalProperties": true } }, "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "fitScore": { "type": "number", "maximum": 1, "minimum": 0 }, "platform": { "enum": [ "ig", "tt" ], "type": "string" }, "username": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "hasContact": { "type": "boolean", "default": false, "description": "True when a contact address exists. The address is omitted until this organization reveals it." }, "isVerified": { "type": "boolean" }, "externalUrl": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ] }, "averageViews": { "anyOf": [ { "type": "integer", "maximum": 9007199254740991, "minimum": 0 }, { "type": "null" } ], "description": "Mean views of the creator's 6 newest posts with a stored video, counting the posts that have views. Null when none of them has views." }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000 }, "profileImageUrl": { "anyOf": [ { "type": "string", "format": "uri" }, { "type": "null" } ] }, "engagementOnViews": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "description": "Mean of likes plus comments per view over the same posts as averageViews. Null when none of them has views." } }, "additionalProperties": true }, "maxItems": 100, "minItems": 1, "description": "The creators array exactly as returned by search_creators, unmodified; the ticket is bound to it" } }, "additionalProperties": true }arguments 302 linesreveal_contact auth-required never probed
Reveal a creator contact address. Costs 1 prepaid credit the first time this organization reveals that profile. Later calls return the address without charging. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "profileId" ], "properties": { "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" } }, "additionalProperties": true }arguments 16 linesdelete_campaign auth-required never probed
Delete a campaign and its matches. A funded campaign, a campaign with a signed hire, or a campaign with a proposal delivery returns a tool error naming the reason. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 linesgenerate_campaign_matches auth-required never probed
Generate creator matches from the campaign goal. Runs one creator search (same daily grant and prepaid credits as search_creators; pre-claim agent tokens spend prepaid credits only) and saves matches; idempotent on (campaign, profileId). Optional filters narrow the search. Holds the call open until the result, up to 800 seconds. While a send request is open, once the campaign is sent, or while it is archived, it returns a tool error naming the reason before any search runs. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "tier": { "enum": [ "nano", "micro", "mid", "macro", "mega", "nano+", "micro+", "mid+", "macro+", "micro-", "mid-", "macro-" ], "type": "string", "description": "Follower tier: nano 1,000 to 9,999, micro 10,000 to 49,999, mid 50,000 to 249,999, macro 250,000 to 999,999, mega 1,000,000 or more, nano+ 1,000 or more, micro+ 10,000 or more, mid+ 50,000 or more, macro+ 250,000 or more, micro- 1,000 to 49,999, mid- 1,000 to 249,999, macro- 1,000 to 999,999. A plus tier means that follower count and above, and a minus tier means that tier and every smaller one." }, "country": { "enum": [ "us", "gb", "ca", "au", "de", "fr", "br", "jp", "kr", "in" ], "type": "string", "description": "ISO 3166-1 alpha-2 country code" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "Instagram (ig) or TikTok (tt)" }, "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 57 linesadd_campaign_match auth-required never probed
Add a creator as a manual match to a campaign. Idempotent on (campaign, profileId). Stores the platform, handle, name, picture, and follower count of the catalog profile and keeps only profileId and fitScore from the input; a profileId with no catalog profile returns not_found. While a send request is open, once the campaign is sent, or while it is archived, it returns a tool error naming the reason. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username", "campaignId" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }arguments 96 linesadd_campaign_matches auth-required never probed
Add several creators as manual matches to a campaign in one call. Idempotent on (campaign, profileId). Stores the platform, handle, name, picture, and follower count of each catalog profile, keeps only profileId and fitScore from the input, and drops a profileId with no catalog profile. Returns added, the count of new matches, and present, the count already on the campaign, with addedCreators and presentCreators, the same counts per person, so a person with two matched profiles counts once. A campaign outside the caller's organization returns not_found. While a send request is open, once the campaign is sent, or while it is archived, it returns a tool error naming the reason. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId", "creators" ], "properties": { "creators": { "type": "array", "items": { "type": "object", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }, "maxItems": 100, "minItems": 1, "description": "The creators to add to the campaign, as search_creators or get_list returns them" }, "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 111 linesremove_campaign_match auth-required never probed
Remove one matched creator from a campaign by match id. A match that already has a proposal delivery, or any match while a send request is open, once the campaign is sent, or while it is archived, returns a tool error naming the reason. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId", "matchId" ], "properties": { "matchId": { "type": "string", "minLength": 1, "description": "Match id from get_campaign" }, "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 21 linesexport_campaign auth-required never probed
Export a campaign as CSV (Rank, Handle, Name, Platform, Followers, Fit, Source). Same access as get_campaign. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 linessend_campaign auth-required never probed
Request a proposal send for a draft campaign the caller's organization owns. Starcovery Proposals runs concierge: this call records one open send request and notifies the Starcovery team, who send the proposals from the staff queue. Nothing is mailed by this call. Needs a saved contract whose creator posting date, when set, is today or a later day in UTC, a captured disclosure, and at least one match. Returns a tool error naming the reason when the campaign is not the caller's, a step is missing, a request is already open, or the campaign is already sent. Returns the request row. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 linesfund_campaign auth-required never probed
Request campaign funding for a campaign the caller's organization owns. Starcovery Payouts runs concierge: this call records one open funding request for the accepted creators not yet funded, per person, with the quoted total (compensation per creator times those people, plus the platform fee that the market information answer sets), and notifies the Starcovery team, who invoice the organization. No money moves by this call. Only organization owners and admins may call it. Needs a saved contract, an answered market information question, and at least one creator who accepted and is not yet funded. Returns a tool error naming the reason when the campaign is not the caller's, a step is missing, or a request is already open. The reason creators_changed means a creator accepted while the request was prepared, and the caller repeats the same call. Returns the request row with amountCents set to the quoted total. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "campaignId" ], "properties": { "campaignId": { "type": "string", "minLength": 1, "description": "Campaign id from list_campaigns" } }, "additionalProperties": true }arguments 15 lineswhoami auth-required never probed
Show the current credential, the bound user and organization, and whether the next search draws from the user daily grant or the organization balance. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesget_credits auth-required never probed
Read the prepaid credit balance, the identified daily search grant status, the last pack, and whether a card is on file. Does not start checkout or change payment settings. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 lineslist_api_keys auth-required never probed
List API keys for the active organization (id, name, prefix, timestamps). An owner or admin sees every key; a member sees only the keys they minted. Never returns plaintext keys. Needs a credential other than an agent access token or an OAuth access token.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linescreate_api_key auth-required never probed
Mint a new API key. Returns the plaintext key once; store it immediately. Needs a credential other than an agent access token or an OAuth access token.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 64, "minLength": 1, "description": "Key label; must not start with agent:" } }, "additionalProperties": true }arguments 16 linesthread_turn auth-required never probed
Run the next turn of a search thread and return the settled brief, its filters, the operations the turn ran, the reply, and the creators of the thread result set with a shortlist enrichment ticket. Omit threadId to open a new thread; the threadId in the result is the durable handle for the next turn. A pasted website address is read into a brief; anything else refines the brief, or answers a question about the organization's campaigns, Lists, credits, or API keys from read tools without changing them. Sends notifications/progress when the caller passes a progressToken. MCP cannot stream a tool result, so the call is blocking and waits until the turn ends, up to 800 seconds. Each turn costs 1 use plus 1 for each search it runs, from the same daily grant as search_creators and then 1 prepaid credit each. A refinement returns the set it built; the first brief runs one search for its creators, billed like search_creators. The thread stores the set, so reading it again with GET /api/threads/{threadId}/results is free. When the allowance runs out, exhausted is set and creators is empty; a turn that finds it spent runs nothing. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "message" ], "properties": { "message": { "type": "string", "maxLength": 2000, "minLength": 1, "description": "The turn text: what to search for, what to change in the running search, or a website address to read into a brief" }, "threadId": { "type": "string", "minLength": 1, "description": "Thread id from a previous call. Omit to open a new thread" } }, "additionalProperties": true }arguments 21 linesintersect_lists auth-required never probed
Keep the creators that appear in both lists, in the order of the left list. Nothing is stored. Map a search_creators result to the saved creator shape first: profileId is the creator id, and fitScore, followerCount, name, platform, profileImageUrl, and username carry over. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "left", "right" ], "properties": { "left": { "type": "array", "items": { "type": "object", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }, "minItems": 1, "description": "First creator list; the result keeps this order" }, "right": { "type": "array", "items": { "type": "object", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }, "minItems": 1, "description": "Second creator list" } }, "additionalProperties": true }arguments 199 linessave_list auth-required never probed
Save a set of creators as a List for the organization, with the brief and filters of the search that produced it. The List takes the name in name, or a name cut from the brief when name is omitted, with a number from 2 appended when another List of the organization holds that name. Map a search_creators result to the saved creator shape first: profileId is the creator id, and fitScore, followerCount, name, platform, profileImageUrl, and username carry over. The List stores the platform, handle, name, picture, and follower count of each catalog profile, keeps only profileId and fitScore from the input, and drops a profileId with no catalog profile. Returns the saved List summary. Needs a credential.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "q", "creators" ], "properties": { "q": { "type": "string", "maxLength": 200, "minLength": 1, "description": "Natural-language brief: audience, brand vibe, or campaign goal" }, "name": { "type": "string", "maxLength": 100, "minLength": 1, "description": "List name. Omit to name the List after the brief in q" }, "tier": { "enum": [ "nano", "micro", "mid", "macro", "mega", "nano+", "micro+", "mid+", "macro+", "micro-", "mid-", "macro-" ], "type": "string", "description": "Follower tier: nano 1,000 to 9,999, micro 10,000 to 49,999, mid 50,000 to 249,999, macro 250,000 to 999,999, mega 1,000,000 or more, nano+ 1,000 or more, micro+ 10,000 or more, mid+ 50,000 or more, macro+ 250,000 or more, micro- 1,000 to 49,999, mid- 1,000 to 249,999, macro- 1,000 to 999,999. A plus tier means that follower count and above, and a minus tier means that tier and every smaller one." }, "country": { "enum": [ "us", "gb", "ca", "au", "de", "fr", "br", "jp", "kr", "in" ], "type": "string", "description": "ISO 3166-1 alpha-2 country code, e.g. us" }, "creators": { "type": "array", "items": { "type": "object", "required": [ "fitScore", "followerCount", "name", "platform", "profileId", "profileImageUrl", "username" ], "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 200 }, { "type": "null" } ], "description": "Creator display name, or null" }, "fitScore": { "anyOf": [ { "type": "number", "maximum": 1, "minimum": 0 }, { "type": "null" } ], "description": "Fit score from search_creators, 0 to 1, or null when unknown" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "ig for Instagram or tt for TikTok" }, "username": { "anyOf": [ { "type": "string", "maxLength": 100 }, { "type": "null" } ], "description": "Creator handle from search_creators, or null" }, "profileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$", "description": "Creator profile id from search_creators" }, "followerCount": { "type": "integer", "allOf": [ { "maximum": 2147483647, "minimum": -2147483648 } ], "minimum": 1000, "description": "Follower count at snapshot time, at least 1000" }, "profileImageUrl": { "anyOf": [ { "type": "string", "maxLength": 2048 }, { "type": "null" } ], "description": "Portrait URL from search_creators, or null" } }, "additionalProperties": true }, "maxItems": 100, "minItems": 1, "description": "The creators to keep on the List" }, "platform": { "enum": [ "ig", "tt" ], "type": "string", "description": "Filter to Instagram (ig) or TikTok (tt)" } }, "additionalProperties": true }arguments 160 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id1cc7da949daa40c8.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/1cc7da949daa40c8/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/1cc7da949daa40c8?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.