Profound connector
OAuth 2.1/DCR MarketingAnalyticsAIProfound is an AI search visibility and marketing analytics platform that helps brands understand and optimize their presence across AI-powered answer...
Profound connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set 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> -
Set up the connector
Section titled “Set up the connector”Register your Profound credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Firecrawl API key with Scalekit so it can authenticate and proxy scraping requests on behalf of your users. Profound uses API key authentication — there is no redirect URI or OAuth flow.
-
Get a Firecrawl API key
- Go to firecrawl.dev and sign in or create a free account.
- Your API key is shown on the Overview page under API Key. Copy it — it starts with
fc-.
-
Create a connection in Scalekit
- In the Scalekit dashboard, go to AgentKit → Connections → Create Connection.
- Search for Profound and click Create.
- Note the Connection name — use this as
connection_namein your code (e.g.,profoundmcp).
-
Add a connected account
Connected accounts link a specific user identifier in your system to a Firecrawl API key. Add them via the dashboard for testing, or via the Scalekit API in production.
Via dashboard (for testing)
- Open the connection and click the Connected Accounts tab → Add account.
- Fill in Your User’s ID and API Key, then click Save.
Via API (for production)
await scalekit.actions.upsertConnectedAccount({connectionName: 'profoundmcp',identifier: 'user_123',credentials: { token: 'fc-...' },});scalekit_client.actions.upsert_connected_account(connection_name="profoundmcp",identifier="user_123",credentials={"token": "fc-..."})
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'profoundmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Profound:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'profoundmcp_list_models',toolInput: { rationale: 'YOUR_RATIONALE' },})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "profoundmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Profound:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"rationale":"YOUR_RATIONALE"},tool_name="profoundmcp_list_models",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Get bots report, citations report, prompt answers — Measure AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot
- List categories, domains, models — List tracked categories, markets, or segments in an organization
- Whoami records — Confirm the authenticated user, organizations, regions, and entitlements available to this MCP session
Common workflows
Section titled “Common workflows”Scrape a page
Use profoundmcp_firecrawl_scrape to extract clean markdown content from any URL.
const result = await actions.executeTool({ connectionName: 'profoundmcp', identifier: 'user_123', toolName: 'profoundmcp_firecrawl_scrape', toolInput: { url: 'https://docs.example.com/getting-started', onlyMainContent: true, },});console.log(result.data);result = actions.execute_tool( connection_name="profoundmcp", identifier="user_123", tool_name="profoundmcp_firecrawl_scrape", tool_input={ "url": "https://docs.example.com/getting-started", "onlyMainContent": True, },)print(result.data)Search the web
Use profoundmcp_firecrawl_search to run a live web search and get scraped content from the top results.
const result = await actions.executeTool({ connectionName: 'profoundmcp', identifier: 'user_123', toolName: 'profoundmcp_firecrawl_search', toolInput: { query: 'best practices for API rate limiting 2026', limit: 5, },});console.log(result.data);result = actions.execute_tool( connection_name="profoundmcp", identifier="user_123", tool_name="profoundmcp_firecrawl_search", tool_input={ "query": "best practices for API rate limiting 2026", "limit": 5, },)print(result.data)Extract structured data from a URL
Use profoundmcp_firecrawl_extract with a natural-language prompt and optional JSON Schema to pull structured data from one or more pages.
const result = await actions.executeTool({ connectionName: 'profoundmcp', identifier: 'user_123', toolName: 'profoundmcp_firecrawl_extract', toolInput: { urls: ['https://example.com/pricing'], prompt: 'Extract all pricing plan names and their monthly costs.', },});console.log(result.data);result = actions.execute_tool( connection_name="profoundmcp", identifier="user_123", tool_name="profoundmcp_firecrawl_extract", tool_input={ "urls": ["https://example.com/pricing"], "prompt": "Extract all pricing plan names and their monthly costs.", },)print(result.data)Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
profoundmcp_get_bots_report
#
Measure AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot. 14 params
Measure AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot.
domain string required Tracked domain using exact hostname from list_domains end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) bot_name_filter array optional Narrow to specific bots bot_provider_filter array optional Narrow to specific bot providers bot_type_filter array optional Narrow to bot categories cursor string optional Pagination token dimensions array optional Group-by fields filters array optional Advanced predicates limit integer optional Top-N row cap metrics array optional Metrics to return organization_id string optional Disambiguate domain across organizations page_size integer optional First-page size, up to 10,000 profoundmcp_get_citations_report
#
See which sources AI engines cite for a category, and how often, over a date range. 18 params
See which sources AI engines cite for a category, and how often, over a date range.
category_id string required Category to report on end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) citation_category_filter array optional Narrow to specific citation categories cursor string optional Pagination token dimensions array optional Group-by fields filters array optional Advanced predicates hostname_filter array optional Narrow to specific hostnames limit integer optional Top-N row cap metrics array optional Metrics to return model_filter array optional Narrow to specific AI models page_size integer optional First-page size, up to 10,000 persona_filter array optional Narrow to specific personas region_filter array optional Narrow to specific regions root_domain_filter array optional Narrow to specific root domains tag_filter array optional Narrow to specific tags topic_filter array optional Narrow to specific topics profoundmcp_get_prompt_answers
#
Retrieve the actual answers AI engines gave for a category's prompts over a date range. 6 params
Retrieve the actual answers AI engines gave for a category's prompts over a date range.
category_id string required Category to retrieve answers for end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) limit integer optional Rows per page offset integer optional Row offset for pagination profoundmcp_get_referrals_report
#
Measure visits a domain received from AI engines, such as ChatGPT and Perplexity, over a date range. 13 params
Measure visits a domain received from AI engines, such as ChatGPT and Perplexity, over a date range.
domain string required Tracked domain using exact hostname from list_domains end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) cursor string optional Pagination token dimensions array optional Group-by fields filters array optional Advanced predicates limit integer optional Top-N row cap metrics array optional Metrics to return organization_id string optional Disambiguate domain across organizations page_size integer optional First-page size, up to 10,000 referral_source_filter array optional Narrow to specific referrer vendors referral_type_filter array optional Narrow to referral categories profoundmcp_get_sentiment_report
#
Measure sentiment in AI answers for a category over a date range. Default metrics: positive, negative, and occurrences. 16 params
Measure sentiment in AI answers for a category over a date range. Default metrics: positive, negative, and occurrences.
category_id string required Category to report on end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) asset_filter array optional Narrow to brand/competitor assets cursor string optional Pagination token filters array optional Advanced predicates limit integer optional Top-N row cap metrics array optional Metrics to return model_filter array optional Narrow to specific AI models page_size integer optional First-page size, up to 10,000 persona_filter array optional Narrow to specific personas region_filter array optional Narrow to specific regions tag_filter array optional Narrow to specific tags theme_filter array optional Narrow to specific sentiment themes topic_filter array optional Narrow to specific topics profoundmcp_get_visibility_report
#
Measure how often and how prominently a brand appears in AI answers for a category over a date range. 16 params
Measure how often and how prominently a brand appears in AI answers for a category over a date range.
category_id string required Category to report on end_date string required Window end in YYYY-MM-DD format (exclusive) rationale string required Always provide a brief explanation of why you are calling this tool start_date string required Window start in YYYY-MM-DD format (inclusive) asset_filter array optional Narrow to brand/competitor assets cursor string optional Pagination token dimensions array optional Group-by fields filters array optional Advanced predicates with field, operator, value limit integer optional Top-N row cap metrics array optional Metrics to return model_filter array optional Narrow to specific AI models page_size integer optional First-page size, up to 10,000 persona_filter array optional Narrow to specific personas region_filter array optional Narrow to specific regions tag_filter array optional Narrow to specific tags topic_filter array optional Narrow to specific topics profoundmcp_list_categories
#
List tracked categories, markets, or segments in an organization. Most brand visibility reports are scoped to a category. 2 params
List tracked categories, markets, or segments in an organization. Most brand visibility reports are scoped to a category.
org_id string required Organization whose categories to list rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_list_domains
#
List tracked domains for an organization. Domains are exact hostnames, so www.example.com and example.com are distinct. 2 params
List tracked domains for an organization. Domains are exact hostnames, so www.example.com and example.com are distinct.
org_id string required Organization whose tracked domains to list rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_list_models
#
List the AI models Profound tracks. Use returned model IDs to filter reports to a single engine. 1 param
List the AI models Profound tracks. Use returned model IDs to filter reports to a single engine.
rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_list_organizations
#
List the organizations the authenticated user can access. Returned IDs feed category, domain, and report tools. 1 param
List the organizations the authenticated user can access. Returned IDs feed category, domain, and report tools.
rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_list_prompts
#
List prompts configured in a category. Prompts are the questions Profound runs against AI engines to measure brand visibility. 10 params
List prompts configured in a category. Prompts are the questions Profound runs against AI engines to measure brand visibility.
category_id string required Category to list prompts for rationale string required Always provide a brief explanation of why you are calling this tool combine string optional How include filters combine cursor string optional Pagination token from previous response exclude_tag_ids array optional Exclude prompts carrying these tags exclude_topic_ids array optional Exclude prompts under these topics limit integer optional Maximum prompts to return status string optional Filter by prompt status tag_ids array optional Include only prompts carrying these tags topic_ids array optional Include only prompts under these topics profoundmcp_list_regions
#
List geographic regions configured for an organization. Omit org_id to see regions across all accessible organizations. 2 params
List geographic regions configured for an organization. Omit org_id to see regions across all accessible organizations.
rationale string required Always provide a brief explanation of why you are calling this tool org_id string optional Organization identifier profoundmcp_list_tags
#
List tags available within a category for filtering prompts and reports. 2 params
List tags available within a category for filtering prompts and reports.
category_id string required Category whose tags to list rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_list_topics
#
List topics available within a category for filtering prompts and reports. 2 params
List topics available within a category for filtering prompts and reports.
category_id string required Category to list topics for rationale string required Always provide a brief explanation of why you are calling this tool profoundmcp_whoami
#
Confirm the authenticated user, organizations, regions, and entitlements available to this MCP session. 1 param
Confirm the authenticated user, organizations, regions, and entitlements available to this MCP session.
rationale string required Always provide a brief explanation of why you are calling this tool