The Datacircle MCP connector routes your AI agent's tool calls to Datacircle's own MCP server through Scalekit. Each user signs in to Datacircle once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 8 tools.
- Tools
- 8
- What they doRead · write · destructive
- 6 · 1 · 16 read1 write1 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Datacircle MCP connection
In AgentKit > Connections, create a Datacircle MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Datacircle MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'datacirclemcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Datacircle MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'datacirclemcp_get_balance',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "datacirclemcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Datacircle MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="datacirclemcp_get_balance",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooldatacirclemcp_get_balanceRead the Datacircle balance, in USD: balance_usd is everything calls can spend now, then what it is made of: signup_credit_usd (left of the sign-up credit), funds_usd (left of the funds added), manual_credit_usd, and temporary_credits, each with its campaign, credit_usd and expires_at.Read-onlyGet the balance
Read the Datacircle balance, in USD: balance_usd is everything calls can spend now, then what it is made of: signup_credit_usd (left of the sign-up credit), funds_usd (left of the funds added), manual_credit_usd, and temporary_credits, each with its campaign, credit_usd and expires_at. Read it to know whether the balance covers the calls you are about to make. Free.
Inputs
This tool takes no inputs.
datacirclemcp_get_download_linkGet a download link for one file from list_files, by its id: url, a signed link valid one hour, fetched as is without the API key, and next_step: what the file holds, with a ready-to-run call per provider for the live profile behind any row.Read-onlyGet a download link
Get a download link for one file from list_files, by its id: url, a signed link valid one hour, fetched as is without the API key, and next_step: what the file holds, with a ready-to-run call per provider for the live profile behind any row. A locked file answers an error saying how to unlock it. Free.
Inputs
file_idintegerrequired- The file's id, from list_files
datacirclemcp_get_invite_linkGet this account's invite link, invite_url, and signed_up_count: how many people signed up with it and verified their email.Read-onlyGet the invite link
Get this account's invite link, invite_url, and signed_up_count: how many people signed up with it and verified their email. required_count (3) of them unlock the 50M+ US dataset and the co-op files; unlocks says so in words, unlocks_datasets names those files' datasets in list_files. Free.
Inputs
This tool takes no inputs.
datacirclemcp_list_apisLists the APIs on Datacircle's sheet and the number of plans and providers for each.Read-onlyList Apis
Lists the APIs on Datacircle's sheet and the number of plans and providers for each. Pass an API's name to search_plans.
Inputs
This tool takes no inputs.
datacirclemcp_list_filesList the data files this account can download: the free 10M+ US B2B leads dataset (us_10m), the 50M+ US dataset (us_50m) and the co-op files (every profile anyone fetched through a provider, new every day).Read-onlyList files
List the data files this account can download: the free 10M+ US B2B leads dataset (us_10m), the 50M+ US dataset (us_50m) and the co-op files (every profile anyone fetched through a provider, new every day). Each file comes with its id, dataset, filename, row_count, size_bytes, created_at and is_unlocked: whether this account may download it. Get one with get_download_link. Free.
Inputs
This tool takes no inputs.
datacirclemcp_search_plansThe sheet's rows, one for each plan of each call, each with every key of the sheet's JSON download: its provider, plan, billing, $ per 1,000 (perThousand), score out of 100 (score), rate limits, speed, the fields it returns and the pages we read it from.Read-onlySearch Plans
The sheet's rows, one for each plan of each call, each with every key of the sheet's JSON download: its provider, plan, billing, $ per 1,000 (perThousand), score out of 100 (score), rate limits, speed, the fields it returns and the pages we read it from. total counts every row found, plans holds up to limit of them from offset. What each key means: https://datacircle.dev/fields
Inputs
apistring- The API, its name as list_apis gives it. Every API when left out.one of
Employee profilePerson enrichmentEmployee lookalikesEmployee recommendationsEmployee searchPeople searchEmployee emailEmail validationReverse email lookupEmployee phonePhone validationCompany profileCompany enrichmentBusiness verificationCompany technologiesCompany hierarchyCompany searchCompany discoveryCompany lookalikesG2 reviewsCapterra reviewsTrustpilot reviewsGlassdoor reviewsJob searchJob postingsJob detailsJob posting detailsJob lookalikesCompany jobsCompany job countLeadership changesPost searchPost detailsEmployee postsEmployee articlesCompany postsPost commentsPost reactionsPost repostsEmployee commentsEmployee reactionsFacebook adsGoogle adsLinkedIn adsTikTok adsCompany headcountCompany fundingX profileInstagram profileTikTok profileYouTube channelReddit profileFacebook pageThreads profileBluesky profileTelegram channelTwitch profileSnapchat profileTruth Social profileGitHub profileX postsInstagram postsTikTok videosYouTube channel videosReddit postsFacebook postsThreads postsBluesky postsTelegram channel postsPinterest pinPinterest board pinsPinterest user boardsHacker News story commentsTwitch videosTwitch clipKick clipTruth Social postsPinterest searchHacker News searchGitHub repositoryGitHub user repositoriesDouyin profileDouyin user videosDouyin videoWeibo profileWeibo user postsWeibo postXiaohongshu profileXiaohongshu user notesXiaohongshu noteZhihu profileZhihu question answersKuaishou profileKuaishou user videosKuaishou videoBilibili profileBilibili user videosBilibili videoAmazon productGoogle Shopping productWalmart producteBay productFacebook Marketplace listingTikTok Shop productAmazon searchWalmart searcheBay searchFacebook Marketplace searchTikTok Shop searchApp Store appApp Store reviewsApp Store searchGoogle Play appGoogle Play reviewsGoogle Play searchZillow propertyRedfin propertyRealtor.com propertyZillow searchRedfin searchRealtor.com searchWeb searchSERPSearch autocompleteNews searchImage searchVideo searchWeb scrapingChatGPT answerPerplexity answerGemini answerBing Copilot answerKeyword researchRanked keywordsRelated keywordsBacklinksDomain authority limitinteger- How many plans to give, 1 to 50. 10 when left out.
offsetinteger- How many found plans to skip first. 0 when left out.
querystring- Words that must all appear in the provider's or plan's name, ignoring case and accents.
sortstring- score, the default: best first, as on the sheet at datacircle.dev, each API's plans together, unscored plans last. provider: A to Z. price: $ per 1,000, lowest first.one of
scoreproviderprice
datacirclemcp_get_linkedin_profileFetch one person's LinkedIn profile by its URL: name, headline, location, current company and title, positions, education, skills.WriteGet a LinkedIn profile
Fetch one person's LinkedIn profile by its URL: name, headline, location, current company and title, positions, education, skills. It costs the provider's own price, taken from the Datacircle balance with no markup: up2data $0.00125 per profile found, free when it isn't found, up to $1 a day per account; harvestapi $0.0037 per profile found, every section of the profile. Every call is live: the provider is asked each time, so the profile is as it is today. The answer is the provider's own JSON plus datacircle_meta {provider, cost_usd, balance_usd}. If up2data answers its daily limit (429), call again with provider harvestapi; if the balance is too low (402), add_funds. Details: https://docs.datacircle.dev/pricing
Inputs
urlstringrequired- The profile's LinkedIn URL, like https://www.linkedin.com/in/williamhgates
providerstring- The data provider that fetches the profile, at its own price: up2data costs least; harvestapi returns every section of the profile, and answers when up2data is at its daily limitone of
up2dataharvestapidefaultup2data
datacirclemcp_add_fundsStart a Stripe Checkout that adds funds to the Datacircle balance.DestructiveAdd funds
Start a Stripe Checkout that adds funds to the Datacircle balance. It answers checkout_url: give it to the user to open and pay; nothing is charged until they do. $50 or more in funds also unlocks the co-op files: the flat file of every API request, new every day.
Inputs
amount_usdintegerrequired- The amount, in US dollars, the user pays at checkout and finds in their balance once paid
No tools match.