Connecting the MCP server
Model Context Protocol lets AI assistants work with brandfound. directly — manage companies, analyse mentions, and create content from chat. Each MCP tool is an HTTP call to API v1. Some endpoints are optimized for the MCP workflow (context_only for the Factory, atomic setup for queries).
MCP Endpoint
https://app.brandfound.ai/api/mcp/streamOAuth 2.1 + PKCE
Secure browser-based authorization. The API key is created automatically on first connection. The token is valid for 90 days. You can revoke access in the settings.
OAuth 2.1S256HTTPgfx_90 daysBearer/.well-known/oauth-protected-resource/.well-known/oauth-authorization-serverChoose an AI assistant
Click the client you need — connection instructions will appear.
Available tools
Once connected, the connector exposes these brandfound. functions to the LLM client. The client picks the right ones depending on the task.
Workspaces
One token for every accessible workspace
- •An OAuth token has an active workspace, initially the one used to sign in. switch_workspace selects another workspace where you have an ACCEPTED invitation.
- •The switch persists in ApiKey.activeAccountId and affects every MCP client using this key on its next request, including Claude Desktop and Cursor. No new sign-in is needed.
- •Access is checked on EVERY request. If you leave the team, the next tool call silently returns to the token’s original workspace, without a 401 response.
- •Switching also resets preferredCompanyId, which belongs to the previous workspace.
list_workspacesList accessible workspaces, including your own and ACCEPTED TeamMember memberships, with the active one marked
switch_workspacePersistently switch the API key’s active workspace; resets preferredCompanyId
accountId
Companies & Products
v1.1: upsert tools replace create/update pairs
- •save_company / save_competitor / save_product replace create_* and update_*: omit id to create; provide id to update only supplied fields.
- •Updating synonyms replaces the entire list, without merging. Send the full array when adding synonyms.
list_companiesList the user’s companies with search and pagination
search, limit, offset, sortBy, sortOrder
get_companyGet details of a company and its products
companyId
save_companyCreate or update a company; omit companyId to create. regionTargets defines measurement countries and the query-generation country.
companyId?, name, description, url, country, categoryId, synonyms, regionTargets, defaultLanguageId, defaultResponseLanguageId, defaultLocale, autogenQueryTypes, autogenQueriesPerRun
get_company_categoriesCompany category directory: industries and niches
search_geoCountries, cities and languages with their UUIDs for regionTargets and defaultLanguageId
kind, q, countryIso2, limit
save_competitorCreate or update a competitor; omit competitorId to create
competitorId?, companyId, name, productId, url, synonyms
save_productCreate or update a product, including reassigning intents (upsert)
productId?, companyId, name, description, url, intents
Keywords
v1.1: lifecycle managed through action
- •manage_keyword combines create / rename / archive / restore / delete using action. archive and delete support dryRun.
- •link_keywords combines attach by name (find-or-create) and detach by keywordIds for company / product / competitor associations.
list_keywordsList keywords filtered by target and state
companyId, productId, competitorId, state, search, limit, offset, sortBy, sortOrder
manage_keywordManage one keyword: create / rename / archive / restore / delete
action, keywordId, name, attach, dryRun
link_keywordsBulk attach keywords by name, or detach by id, from a target
action, target, names, keywordIds
Analytics & Metrics
v1.1: consolidated reports
- •get_analytics_report replaces six tools with one report selector: overview / keywords / timeline / recent / geo / cluster.
- •get_trends combines strategic topics (scope="topics",7–30 days) and tactical signals (scope="pulse",6–72 hours).
get_competitor_analyticsCompetitor analysis: Share of Voice and leaders
companyId, productId, timeRange, dateFrom, dateTo, sourceIds, labelSlugs, labelFilterMode
get_brand_visibilityBrand Mention Rate (BMR) timeline: brand visibility
companyId, productId, timeRange, granularity, dateFrom, dateTo, sourceIds, labelSlugs, labelFilterMode
get_tonalitySentiment analysis: sentiment, fairness, helpfulness and 10+metrics
companyId, productId, timeRange, dateFrom, dateTo, sourceIds, labelSlugs, labelFilterMode, queryType, sentiment
list_mentionsBrand mentions in AI answers with filters
companyId, productId, competitorId, sourceIds, timeRange, dateFrom, dateTo, sentiment, type, isOurs, search, sortBy, sortOrder, limit, offset
list_queriesAI queries with answers and analytics
companyId, productId, hasAnswers, searchText, sourceIds, types, sentiment, dateFrom, dateTo, isFavorite, sortBy, sortOrder, limit, offset
get_trendsTrends: scope="topics" (strategy,7–30 days) or scope="pulse" (signals,6–72 hours)
scope, companyId, timeRange, limit, minGrowthPercent, window, signals, minSeverity
get_analytics_reportSummary report: overview / keywords / timeline / recent / geo / cluster
report, companyId, timeRange, productId, category, granularity, groupBy, labelId
list_query_labelsQuery labels and clusters with query counts
companyId, q, limit, offset, lite
list_notificationsUser notifications (WIDGET / BANNER / TOAST / EMAIL)
limit, offset, type, includeDismissed
Queries
Two options: your agent writes queries or the service generates them
- •setup_queries uses BYO-LLM: your agent writes queries from the brand card (get_brand_card) and competitors (get_company). Free; you only pay your own LLM’s token costs.
- •autogenerate_queries generates DRAFTS at 1 FoxCoin per query, without polling AI models. approve_query_drafts starts paid polling at 10 FoxCoin per answer (query×model). Run dryRun and show the estimate before approval.
- •Six types: neutral, commercial, informational (no brands), comparative (brand + database competitor), reputational and branded (brand in text). Legacy negative/general are accepted aliases.
- •Generation uses the company’s region settings (save_company.regionTargets). For multiple countries, pass targets: one task per country, defaulting to its official language (AE→ar,IN→hi).
- •list_answers exports batches of up to 200 answers with links and mentions, replacing per-query loops.
setup_queriesCreate queries written by your agent with clusters and optional paid AI polling
companyId, clusters, providers
autogenerate_queriesGenerate query drafts without polling AI models (1 FoxCoin per query)
companyId, productId, count, types, clusters, userWishes, name, region, language, city, includeDistricts, targets
get_autogeneration_statusGeneration task progress: RUNNING / OK / FAILED / CANCELLED
clientToken, runId, limit
list_query_draftsGenerated queries awaiting approval
status, companyId, type, page, limit
approve_query_draftsApprove drafts and start paid polling of selected models; dryRun estimates costs only
draftIds, providers, dryRun
reject_query_draftsReject drafts for free, without polling models
draftIds
list_answersBatch AI answers: links, mentions, brandDomainCited
companyId, productId, queryId, provider, type, label, region, language, createdAtFrom, createdAtTo, hasLinks, mentionsOurs, include, limit, offset
Links & Mentions
list_linksLinks in AI answers with trust rank and citation counts
companyId, productId, search, timeRange, dateFrom, dateTo, providers, sentiment, queryType, labelSlugs, domain, domainsOnly, active, sortBy, sortOrder, page, pageSize
get_link_contentParsed page by linkId: full text (view="text") or RAG chunks (view="chunks")
linkId, view, limit
search_link_contentFull-text search across all company sources
companyId, query, limit
list_brand_mentions_in_contentBrand mentions in parsed article text
companyId, timeRange, limit, offset
Factory
v1.1: BYO-LLM by default; only explicit mode="generate" is paid
- •enrich_content_task / generate_content_plan / generate_article default to mode="context_only", returning prompt and context. The client’s LLM writes results and saves via save_*; no FoxCoin is charged.
- •Explicit mode="generate" runs paid server generation, as in the UI: enrichment 20 FC, outline 50 FC, article 70 FC; insufficient funds return 402 INSUFFICIENT_FOXCOINS.
- •suggest_topics was removed. The agent develops alternative angles from enrichment context and passes topicTitle to generate_content_plan.
- •manage_content_task combines kanban task create / update / archive through action.
list_content_tasksFactory kanban tasks with filters
companyId, statuses, types, priorities, search, tagId, aiGenerated, sortBy, sortOrder, limit, offset
get_content_taskA complete task, including its saved article
id
manage_content_taskCreate / update / archive a factory task using action
action, taskId, title, companyId, type, status, priority, description, targetKeywords
enrich_content_taskEnrich a task: RAG search, analytics and competitors (context_only free; generate 20 FC)
taskId, companyId, topic, description, keywords, mode
generate_content_planArticle outline: structure, key points and tone (context_only free; generate 50 FC)
taskId, prompt, topicId, topicTitle, mode
generate_articleFull Markdown article (context_only free; generate 70 FC)
taskId, planId, articleLength, mode
save_enrichment_analysisSave analysis from the client’s LLM
taskId, aiAnalysis, usage
save_generated_planSave the client’s JSON content outline
taskId, plan, topicId, topicTitle, prompt, usage
save_generated_articleSave the client’s Markdown article
taskId, content, planId, usage
set_publication_urlSet the published article URL for BMR tracking
taskId, publishedUrl
detect_insightsDetect 15 insight types: content gaps, competitor wins; free, rule-based
companyId, insightType
list_content_tagsFactory tags with task counts
list_publicationsPublished content with performance metrics
companyId
Brand card
Your agent can read and manage the entire brand card
- •A brand card is a Markdown file tree: instruction.md is sent to AI first; the main / settings.md core file is always applied, plus user files and folders for products, facts, cases and FAQs.
- •Files link using [Name](brandcard://<id>), with IDs from the index. Links survive renaming, and linked files take generation priority. One-shot injection limit: about 60,000 characters.
- •```private blocks are automatically removed before AI receives content. save_brand_card_file overwrites the entire file, so always read it before editing.
- •Recommended flow: get_brand_card_index (structure + links) → get_brand_card_file for needed paths → save_brand_card_file. Use MCP prompt manage-brand-card for fill / audit / restructure.
get_brand_cardEntire card as Markdown: manifest → core → linked → remaining files; private blocks removed
companyId
get_brand_card_indexCard index: manifest and files with path, id, isCore and outgoing links
companyId
get_brand_card_fileOne file by path: content preserves brandcard:// links verbatim; links resolves them to paths
companyId, path
save_brand_card_fileCreate or overwrite a file by path; missing folders are created automatically
companyId, path, content
delete_brand_card_fileDelete a file or folder recursively; protected framework files cannot be deleted
companyId, path