# Starcovery (remote · www.starcovery.com)

MCP tools to find and hire Instagram and TikTok creators from a plain-language brief.

- Trust score: 69/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `www.starcovery.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-starcovery-mcp/api-mcp.md), [page](https://verifymcp.io/servers/com-starcovery-mcp/api-mcp)

## Channel facts

- Endpoint: `https://www.starcovery.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_campaign).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5604 tokens (~200/item across 28 items; 28 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 26/100
  - Stability check failed: schema churn in the 11 days we've observed: 2 tool removals, 2 breaking changes, 0 auth/transport breaks, 2 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (21% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Starcovery MCP server?

Starcovery is a hosted endpoint at https://www.starcovery.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-starcovery-mcp 'https://www.starcovery.com/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-starcovery-mcp": {
      "url": "https://www.starcovery.com/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-starcovery-mcp": {
      "type": "http",
      "url": "https://www.starcovery.com/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-starcovery-mcp]
url = "https://www.starcovery.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-starcovery-mcp": {
      "type": "remote",
      "url": "https://www.starcovery.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-starcovery-mcp --url 'https://www.starcovery.com/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-starcovery-mcp:
    url: "https://www.starcovery.com/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-starcovery-mcp": {
      "Transport": "http",
      "Url": "https://www.starcovery.com/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-starcovery-mcp -t streamable-http -u 'https://www.starcovery.com/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-starcovery-mcp": {
      "type": "http",
      "url": "https://www.starcovery.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 69, −1)

- [security regression] Stability: 0.33 → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security regression] Tool “fund_campaign” was removed
- [security regression] Tool “send_campaign” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “add_campaign_match” rewrote its description, which is the text the model reads
- [security] Tool “add_campaign_matches” rewrote its description, which is the text the model reads
- [security] Tool “create_api_key” rewrote its description, which is the text the model reads
- [security] Tool “create_campaign” rewrote its description, which is the text the model reads
- [security] Tool “enrich_creators” rewrote its description, which is the text the model reads
- [security] Tool “get_campaign” rewrote its description, which is the text the model reads
- [security] Tool “get_list” rewrote its description, which is the text the model reads
- [security] Tool “intersect_lists” rewrote its description, which is the text the model reads
- [security] Tool “save_list” rewrote its description, which is the text the model reads
- [security] Tool “search_creators” rewrote its description, which is the text the model reads
- [security] Tool “thread_turn” rewrote its description, which is the text the model reads
- [security] Tool “update_campaign” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 173 → 200
- [functional regression] “enrich_creators” added a required parameter “shortlistId”, so existing callers break
- [functional regression] “add_campaign_match” dropped the required parameter “followerCount”
- [functional regression] “add_campaign_match” dropped the required parameter “name”
- [functional regression] “add_campaign_match” dropped the required parameter “platform”
- [functional regression] “add_campaign_match” dropped the required parameter “profileImageUrl”
- [functional regression] “add_campaign_match” dropped the required parameter “username”
- [functional regression] “enrich_creators” dropped the required parameter “ticket”
- [functional] New tool “request_campaign_funding”
- [functional] New tool “request_campaign_send”
- [cosmetic] “add_campaign_matches” reworded the description of “creators”
- [cosmetic] “create_campaign” reworded the description of “creators”
- [cosmetic] “create_campaign” reworded the description of “embargoUntil”
- [cosmetic] “enrich_creators” reworded the description of “creators”
- [cosmetic] “generate_campaign_matches” reworded the description of “platform”
- [cosmetic] “save_list” reworded the description of “creators”
- [cosmetic] “save_list” reworded the description of “platform”
- [cosmetic] “search_creators” reworded the description of “platform”
- [cosmetic] “update_campaign” reworded the description of “embargoUntil”

### 2026-10-17 (score 70, 0)

- [security] Tool “create_api_key” rewrote its description, which is the text the model reads
- [security] Tool “revoke_api_key” rewrote its description, which is the text the model reads
- [cosmetic] “create_campaign” reworded the description of “marketInformation”
- [cosmetic] “generate_campaign_matches” reworded the description of “country”
- [cosmetic] “save_list” reworded the description of “country”
- [cosmetic] “search_creators” reworded the description of “country”
- [cosmetic] “update_campaign” reworded the description of “marketInformation”

### 2026-10-16 (score 70, 0)

- [security] Tool “add_campaign_matches” rewrote its description, which is the text the model reads
- [security] Tool “save_list” rewrote its description, which is the text the model reads
- [security] Tool “search_creators” rewrote its description, which is the text the model reads
- [security] Tool “thread_turn” rewrote its description, which is the text the model reads
- [security] Tool “update_campaign” rewrote its description, which is the text the model reads
- [cosmetic] “create_campaign” reworded the description of “goal”
- [cosmetic] “save_list” reworded the description of “name”
- [cosmetic] “save_list” reworded the description of “q”
- [cosmetic] “search_creators” reworded the description of “q”
- [cosmetic] “update_campaign” reworded the description of “goal”
- [cosmetic] “update_campaign” reworded the description of “marketInformation”

### 2026-10-15 (score 70, 0)

- [security] Tool “get_credits” rewrote its description, which is the text the model reads

### 2026-10-14 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-12 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 17. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-10 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-09 (score 67, +1)

- [functional improvement] Stability: unverified → 0.07

## MCP tools (28)

### `search_creators` (~455 tokens)

Search creators

Search Instagram and TikTok creators with a natural-language brief. Returns up to 50 ranked creators with fit score, follower count, platform, the 3 best-matching videos, and a shortlistId for enrich_creators when available. Bios and captions are cut to 150 characters. The creator's website link is returned as written, or null when it is longer than 200 characters. Every other link is a short link that redirects for 24 hours. When the result would pass 140,000 characters, the lowest ranked creators are left out until it fits. The brief in q sets no filter; platform, country, and tier filter. 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.

enrich_creators takes these creators, query.q, and shortlistId for niche, evidence, and signal analysis.

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code in either letter case, such as us or id
- `platform` (string): Instagram (ig) or TikTok (tt), in either letter case
- `q` (string, required): Natural-language creator brief
- `tier` (string): 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, m…

Output parameters:

- `creators` (array)
- `next` (string): What to do with this result next, for the assistant
- `query` (object)
- `shortlistId`: Id of this shortlist for enrich_creators, kept for 4 hours. Null when the shortlist is empty or too long to enrich, or when an unsigned caller has no client IP.

### `enrich_creators` (~162 tokens)

Enrich creators

Run shortlist AI enrichment (niche, celebrity, evidence, signal) for creators from search_creators. It takes the same creators array, query string (search query.q), and the shortlistId search_creators returned with them. Returns one analysis object per creatorId. A shortlistId works once, for 4 hours, and only for the caller who searched; enrichment spends no credits. Holds the call open until the result, up to 800 seconds.

Input parameters:

- `creators` (array, required): The creators array exactly as returned by search_creators, unmodified; the shortlist is bound to it
- `query` (string, required): The query.q string returned by search_creators
- `shortlistId` (string, required): The shortlistId search_creators returned with these creators

### `reveal_contact` (~55 tokens)

Reveal contact

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.

Input parameters:

- `profileId` (string, required): Creator profile id from search_creators

Output parameters:

- `bio`
- `emails` (array)

### `list_campaigns` (~102 tokens)

List campaigns

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.

### `get_campaign` (~296 tokens)

Get campaign

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. Hires and payouts are counted in 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; currentSteps, not nextStep or status, tells whether a step is finished. It is null for other callers and empty once no step is left. Needs a credential.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

### `create_campaign` (~494 tokens)

Create campaign

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, each a profileId and fitScore pick, 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; any other key on a creator fails the call with a validation error; a creator id outside the catalog fails the call before anything is created or charged. Needs a credential.

Input parameters:

- `contract` (object): Compensation in USD cents, the paid deliverable, the platforms the creator posts on, and optional creator posting date.
- `creators` (array): Creators to add to the new campaign: the profileId and fitScore of each, the id and fitScore of a search_creators creator or the profileId and fitScore of a get_list creator
- `disclosure` (object): Paid partnership disclosure. Required before send.
- `embargoUntil` (string): Campaign details declassifying date as the start of a UTC calendar day, an RFC 3339 date-time at midnight UTC such as 2026-12-01T00:00:00Z. Any other instant is refused. It needs a contract in the sa…
- `goal` (string, required): Campaign goal
- `idempotencyKey` (string): 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` (object): 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…
- `name` (string, required): Campaign name
- `visibility` (string): Defaults to public. Private costs 1 credit.

### `update_campaign` (~555 tokens)

Update campaign

Update campaign fields: name, goal, visibility, or status (draft, archived, or active; Starcovery sets active when the team sends the proposals, and active reopens an archived campaign whose proposals were sent). A campaign that is active or holds a delivery cannot return to draft, a campaign with an open send or funding request cannot be archived, and a campaign that is not archived or was never sent cannot be set active; each 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. While a funding request is open or the campaign holds funds, a changed or cleared marketInformation returns a tool error naming the reason; a campaign whose reserve was refunded to zero takes a new answer. After Starcovery sends the proposals, a changed or cleared contract returns a tool error naming the reason, and a call without contract still changes the other fields. Needs a credential.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns
- `contract`: Null clears stored contract metadata. A stored declassifying date needs a contract, so clear embargoUntil in the same patch.
- `disclosure` (object): Paid partnership disclosure. Required before send.
- `embargoUntil`: Campaign details declassifying date as the start of a UTC calendar day, an RFC 3339 date-time at midnight UTC such as 2026-12-01T00:00:00Z. Any other instant is refused. Null clears it.
- `goal` (string): Campaign goal
- `marketInformation`: 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…
- `name` (string): Campaign name
- `status` (string): draft, archived, or active. Starcovery sets active when the team sends the proposals; active reopens an archived campaign whose proposals were sent.
- `visibility` (string): Public is free. Private costs 1 credit.

### `delete_campaign` (~59 tokens)

Delete campaign

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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

### `generate_campaign_matches` (~334 tokens)

Generate campaign matches

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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns
- `country` (string): ISO 3166-1 alpha-2 country code in either letter case, such as us or id
- `platform` (string): Instagram (ig) or TikTok (tt), in either letter case
- `tier` (string): 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, m…

### `add_campaign_match` (~176 tokens)

Add campaign match

Add a creator as a manual match to a campaign by profileId, with its fitScore. Idempotent on (campaign, profileId). Stores the platform, handle, name, picture, and follower count of the catalog profile, so the input carries nothing else, and any other key, platform or username included, fails the call with a validation error; 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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns
- `fitScore` (required): Fit score from search_creators, 0 to 1, or null when unknown
- `profileId` (string, required): Creator profile id from search_creators

### `add_campaign_matches` (~275 tokens)

Add campaign matches

Add several creators as manual matches to a campaign in one call. Each creator is a profileId and fitScore pick: the id and fitScore of a search_creators creator, or the profileId and fitScore of a get_list creator. Idempotent on (campaign, profileId). Stores the platform, handle, name, picture, and follower count of each catalog profile, so a creator carries nothing else, and any other key on a creator fails the call with a validation error. A profileId outside the catalog fails the call with a tool error naming it, and nothing is added. 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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns
- `creators` (array, required): The creators to add to the campaign: the profileId and fitScore of each, the id and fitScore of a search_creators creator or the profileId and fitScore of a get_list creator

### `remove_campaign_match` (~90 tokens)

Remove campaign match

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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns
- `matchId` (string, required): Match id from get_campaign

### `list_campaign_attachments` (~72 tokens)

List campaign attachments

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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

### `delete_campaign_attachment` (~73 tokens)

Delete campaign attachment

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.

Input parameters:

- `attachmentId` (string, required): Attachment id from list_campaign_attachments
- `campaignId` (string, required): Campaign id from list_campaigns

### `export_campaign` (~52 tokens)

Export campaign CSV

Export a campaign as CSV (Rank, Handle, Name, Platform, Followers, Fit, Source). Same access as get_campaign. Needs a credential.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

### `request_campaign_send` (~142 tokens)

Request proposal send

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.

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.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

Output parameters:

- `request` (object)

### `request_campaign_funding` (~218 tokens)

Request campaign funding

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.

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, it is archived, a step is missing, or a request is already open. An archived campaign is funded only after it is reopened with update_campaign status active. The reason creators_changed means a creator accepted while the request was prepared; the same call then succeeds.

Returns the request row with amountCents set to the quoted total. Needs a credential.

Input parameters:

- `campaignId` (string, required): Campaign id from list_campaigns

Output parameters:

- `request` (object)

### `whoami` (~39 tokens)

Who am I

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.

Output parameters:

- `billing`
- `credential` (object)
- `nextSearchCreditSource` (string)
- `organizationId` (string)
- `searchCreditOrder` (array)
- `userId` (string)

### `get_credits` (~43 tokens)

Get credits

Read the prepaid credit balance, the identified daily search grant status, and whether a card is on file. Does not start checkout or change payment settings. Needs a credential.

### `list_api_keys` (~62 tokens)

List API keys

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.

### `create_api_key` (~88 tokens)

Create API key

Mint a new API key. Returns the plaintext key once; it is not shown again. The new key is an ordinary key of the same member, not a child of the minting key: revoking the minting key leaves it working. Needs a credential other than an agent access token or an OAuth access token.

Input parameters:

- `name` (string, required): Key label; must not start with agent:

### `revoke_api_key` (~97 tokens)

Revoke API key

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, and touches only that key: keys minted with it stay enabled until revoked by id. Needs a credential other than an agent access token or an OAuth access token.

Input parameters:

- `keyId` (string, required): API key id from list_api_keys

### `thread_turn` (~376 tokens)

Run thread turn

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 shortlistId for enrich_creators. creatorCount counts the whole set; creators holds at most the 50 best fit of them, fewer when the result would pass 140,000 characters. The reply, statement, and error are cut to 4,000 characters, and operations lists at most the first 20. Without threadId the call opens 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 and each exclusion 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.

Input parameters:

- `message` (string, required): The turn text: what to search for, what to change in the running search, or a website address to read into a brief
- `threadId` (string): Thread id from a previous call. Omit to open a new thread

### `intersect_lists` (~98 tokens)

Intersect lists

Keep the creators that appear in both lists, in the order of the left list. Nothing is stored. A search_creators result maps to the saved creator shape: profileId is the creator id, and fitScore, followerCount, name, platform, profileImageUrl, and username carry over. Needs a credential.

Input parameters:

- `left` (array, required): First creator list; the result keeps this order
- `right` (array, required): Second creator list

### `save_list` (~421 tokens)

Save list

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. Each creator is a profileId and fitScore pick: profileId is the creator id from search_creators, and fitScore its fit. The List stores the platform, handle, name, picture, and follower count of each catalog profile, so a creator carries nothing else, and any other key on a creator fails the call with a validation error. A profileId outside the catalog fails the call with a tool error naming it, and no List is saved. Returns the saved List summary. Needs a credential.

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code in either letter case, such as us or id
- `creators` (array, required): The creators to keep on the List: the profileId and fitScore of each
- `name` (string): Campaign name
- `platform` (string): Instagram (ig) or TikTok (tt), in either letter case
- `q` (string, required): Natural-language creator brief
- `tier` (string): 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, m…

### `list_lists` (~40 tokens)

List lists

List the organization's saved Lists with brief, filters, creatorCount (each person once), itemCount (each saved profile), and last update. Needs a credential.

### `get_list` (~91 tokens)

Get list

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 intersect_lists takes. add_campaign_matches, create_campaign, and save_list take only the profileId and fitScore of each. A List outside the caller's organization returns not_found. Needs a credential.

Input parameters:

- `listId` (string, required): List id from list_lists

### `delete_list` (~62 tokens)

Delete list

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.

Input parameters:

- `listId` (string, required): List id from list_lists

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-starcovery-mcp/api-mcp#diagnostics

## Score history

- 2026-10-18: 69
- 2026-10-17: 70
- 2026-10-16: 70
- 2026-10-15: 70
- 2026-10-14: 70
- 2026-10-13: 69
- 2026-10-12: 69
- 2026-10-10: 68
- 2026-10-09: 67
- 2026-10-07: 66

## Common questions

### What is the Starcovery MCP server?

Starcovery is an MCP server listed in the public MCP registry as com.starcovery/mcp. MCP tools to find and hire Instagram and TikTok creators from a plain-language brief. This page covers its hosted endpoint (https://www.starcovery.com/api/mcp).

### Is the Starcovery MCP server safe to use?

Starcovery scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Starcovery MCP server expose?

Starcovery exposes 28 tools: search_creators, enrich_creators, reveal_contact, list_campaigns, get_campaign, and 23 more. Their descriptions and schemas cost roughly 5,027 tokens of context every time the server is loaded.

### Does the Starcovery MCP server require authentication?

No. We connected to Starcovery without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Starcovery MCP server still maintained?

Starcovery is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.starcovery.com/api/mcp
- Website: https://www.starcovery.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-starcovery-mcp/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-starcovery-mcp/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-starcovery-mcp/api-mcp
