About mcp-creator-profile-reader
mcp-creator-profile-reader is an MCP server for Mamba Labs’ Influencer Profile Scraper actor on Apify, for teams that need details on specified creators. It reads public profiles across seven platforms from handles or profile URLs; it does not search for creators.
Key features
- 01Read profiles from handles or URLs
- 02Cover seven creator platforms
- 03Retrieve followers, bio, and bio link
- 04Read engagement rate and verification status
- 05Return a status and reason for unreadable profiles
Use cases
- 01Review public profiles of campaign candidates
- 02Compile creator metrics from a handle list
- 03Retrieve links from creator bios
MCP support
As an MCP server, it exposes the read_influencer_profiles tool to MCP clients and invokes Mamba Labs’ Influencer Profile Scraper actor on Apify.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-creator-profile-readerAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| handles | array | No | One per line. A profile URL on any supported platform (https://www.tiktok.com/@name, https://www.instagram.com/name/, https://www.youtube.com/@name, a Pinterest, Twitch, or Threads profile, an Apple Podcasts show page, or a Spotify show), or platform:@handle (tiktok:@name). A bare @handle needs `platforms` and is looked up on each listed platform. One entry is a single run; a list is a batch. Duplicates are removed before any fetch. |
| us_only | boolean | No | Launch scope is US creators. A row whose country_guess is a known non US country is returned as an error row saying so. Rows with no country signal are kept. Uncheck to keep every country. Default: true. |
| platforms | array | No | Which platforms a bare @handle is looked up on. A full profile URL carries its own platform and ignores this. This actor does not search; pass the creators you want read. Supported: TikTok, Instagram, YouTube, Pinterest, Twitch, Threads, and podcasts. Not X, not Facebook pages, not LinkedIn. |
| batch_size | integer | No | Rows fetched at once. Leave empty for the measured per platform default; the measurement is in the README. Higher is faster and, above the measured point, loses rows. |
| twitch_app_token | string | No | Optional. An app access token for your Twitch client id (client credentials flow). Used only for Twitch reads, never stored or logged. |
| twitch_client_id | string | No | Optional. Your own registered Twitch application client id. With `twitch_app_token` the Twitch reads use the official Helix API instead of the public web endpoint. Never a Mamba Labs credential. |
| escalate_on_block | boolean | No | On by default. A profile fetch that comes back as a bot detection page is retried once over the residential proxy. On Instagram the bio, bio link, and following are read from the profile page over residential when the embed and the datacenter API did not carry them, and a page that comes back readable charges instagram-bio-fetch ($0.010). Uncheck it to never pay that event: a blocked profile then returns a labeled error row, and Instagram rows keep an empty bio and bio link on about half of the reads. Default: true. |
| max_residential_reads | integer | No | Caps how many Instagram profile pages one run reads over the residential proxy, each readable one charging instagram-bio-fetch at $0.01. 0 means no cap. Once the cap is reached, later Instagram rows keep what the embed widget and the datacenter API returned, and error_reason reads escalation_skipped. Only acts when escalate_on_block is on. Default: 0. |
| contribute_to_shared_pool | boolean | No | On by default. Contributes the public records this run finds to a shared creator and agency pool that all users of this actor read from, so a later run reads what this one found. Only public data already in the returned rows is sent, never your Apify account, your input list, or your API keys, and a contribution is not charged. Set false to read the pool and write nothing. Default: true. |
Details
From the project READMEInfluencer Profile Scraper MCP Server
MCP server for the Mamba Labs Influencer Profile Scraper actor on Apify.
Creator handles or profile URLs in, one profile row out per creator.
Install
npx -y @mambalabsdev/mcp-creator-profile-reader
Claude Desktop
{
"mcpServers": {
"mamba-creator-profile-reader": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-creator-profile-reader"],
"env": { "APIFY_TOKEN": "your-apify-token" }
}
}
}
Get an Apify token at console.apify.com/account/integrations.
Tool
read_influencer_profiles
Read influencer profiles by handle across seven platforms: followers, engagement, bio, and bio link.
| Input | Type | Required | Notes |
|---|---|---|---|
handles | array | no | One per line. A profile URL on any supported platform (https://www.tiktok.com/@name, https://www.instagram.com/name/, https://www.youtube.com/@name, a Pinterest, Twitch, or Threads profile, an Apple Podcasts show. |
platforms | array | no | Which platforms a bare @handle is looked up on. A full profile URL carries its own platform and ignores this. This actor does not search; pass the creators you want read. Supported: TikTok, Instagram, YouTube,. |
us_only | boolean | no | Launch scope is US creators. A row whose country_guess is a known non US country is returned as an error row saying so. Rows with no country signal are kept. Uncheck to keep every country. Default true. |
escalate_on_block | boolean | no | On by default. A profile fetch that comes back as a bot detection page is retried once over the residential proxy. On Instagram the bio, bio link, and following are read from the profile page over residential when. Default true. |
max_residential_reads | integer | no | Caps how many Instagram profile pages one run reads over the residential proxy (each readable one charges instagram-bio-fetch). 0 means no cap. Only acts when escalate_on_block is on. Default 0. |
batch_size | integer | no | Rows fetched at once. Leave empty for the measured per platform default; the measurement is in the README. Higher is faster and, above the measured point, loses rows. |
twitch_client_id | string | no | Optional. Your own registered Twitch application client id. With twitch_app_token the Twitch reads use the official Helix API instead of the public web endpoint. Never a Mamba Labs credential. |
twitch_app_token | string | no | Optional. An app access token for your Twitch client id (client credentials flow). Used only for Twitch reads, never stored or logged. |
contribute_to_shared_pool | boolean | no | On by default. Contributes the public records this run finds to a shared creator and agency pool that all users of this actor read from. Only public data already in the returned rows is sent, and a contribution is not charged. Set false to read the pool and write nothing. Default true. |
max_charge_usd | number | no | Optional cost cap in USD for this run. The actor stops before an item that could take its charges past this amount. Omit to rely on the maximum cost per run set in Apify. |
Nothing is required. Influencer Profile Scraper answers a run with no usable input with a row carrying row_status and error_reason rather than failing, and the tool mirrors that.
Pricing
Influencer Profile Scraper is pay per event on Apify. Every price below is flat across every tier: FREE, BRONZE, SILVER, GOLD, PLATINUM, and DIAMOND.
| Event | Charged for | Price | Fires when |
|---|---|---|---|
actor-start | Actor start | $0.001 | Once per run, on start. Covers the run overhead. |
apify-actor-start | Apify actor start | not charged | Apify's synthetic start event. This actor prices its own actor-start event instead, so apify-actor-start is not charged on top of it. |
profile-read | Profile read | $0.006 | Once per profile row where the public profile page was read and at least the follower count or the bio came back. A private, missing, or blocked profile returns a labeled error row and does not charge. |
instagram-bio-fetch | Instagram bio fetch | $0.01 | Once per Instagram profile row when the bio, bio link, and following were not on the embed widget or the datacenter API and the profile page was read over the residential proxy and came back readable. Only when escalate_on_block is on. Never on the embed or datacenter reads, never on another platform, never on a blocked page, and never on an error row. |
Reading the output
Every row carries row_status and error_reason. A creator the actor could not read comes back as a row saying why, not as a gap in the list, so an absence is readable rather than inferred. Filter on row_status before loading a table.
What this actor shares
The run contributes the records it finds to a shared creator and agency pool that all users of this actor read from. What one run finds, the next run can read.
The toggle is contribute_to_shared_pool. It is on by default. Set it to false and the run still reads the pool and writes nothing to it.
What this actor contributes. The profile row for every creator it reads: platform, handle, display name, follower count, bio, bio link, public business email, engagement rate, verified flag, and the read date.
Only public data that is already in your own output. Every field written to the pool is a field this run returned to you, read from a page the platform or the creator publishes to anyone without a login. Nothing from your Apify account, your input list, your API keys, or your own notes is sent. A contribution never deletes anything from the pool.
What a contribution is labeled with. The actor ID, the run ID, the pool key issued to the actor build, and a hash of the calling IP address, used for the rate limit and nothing else. Your Apify account and your user ID are not recorded.
Contributing is free. No event is charged for a write to the pool. If the pool is unreachable the run finishes as normal, the rows are dropped, and the run log says so.
Actor
Actor ID EqEnklDVMIcB1V499. The wrapper calls the actor by that immutable ID rather than by its Store slug, so a Store rename never breaks it.
Suite
| Actor | Actor ID | MCP server |
|---|---|---|
| Influencer Finder | tpkedmloIIWtXx6sg | @mambalabsdev/mcp-creator-finder |
| Influencer Profile Scraper | EqEnklDVMIcB1V499 | @mambalabsdev/mcp-creator-profile-reader |
| Link in Bio Scraper and Newsletter Detector | OorucdheTIgu7RFzK | @mambalabsdev/mcp-link-in-bio-newsletter-checker |
| Influencer Change Monitor | d2VVgahNL6UmcLkhg | @mambalabsdev/mcp-creator-change-monitor |
| Influencer Lead List Builder | KnmByszcv135yM30G | @mambalabsdev/mcp-creator-lead-list-all-in-one |
| Influencer Talent Agency Lookup | zCuX4Mgyg6JvXgGzd | @mambalabsdev/mcp-talent-agency-lookup |
Built by Mamba Labs.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.