franchisedata-mcp
Access franchise restaurant data—locations, operations, economics, and competitive intelligence—through 17 MCP tools.
Search indexed franchise brands and endpoint documentation (FREE).
Check credit balance, top up prepaid credits, or mint new API keys.
Fetch McDonald's locations and Starbucks live store status.
Run radial cross-brand searches for nearby open restaurants.
Detect POS/tech stack, online ordering, and KDS fingerprints.
Retrieve multi-unit franchisee ownership and operator intelligence.
Get FDD Item 19 AUV, royalty fees, and investment ranges.
Analyze local menu pricing, price variance, and digital shelf share.
Track brand openings, closures, and relocations.
Generate weekly operating scorecards and local action recommendations.
Perform semantic vector search across operators and menu items.
Call any REST endpoint via universal fetch fallback (PAID).
Supports hyperlocal digital shelf observations for DoorDash as part of local share-of-choice analysis.
Provides fast lookup of McDonald's store locations, including drive-thru filters.
Provides real-time operating hours and open/closed status for Starbucks stores.
Supports hyperlocal digital shelf observations for Uber Eats as part of local share-of-choice analysis.
franchisedata-mcp
Official Model Context Protocol (MCP) server for franchisedata.io — the commercial intelligence gateway for restaurant franchise location data, in-store POS hardware fingerprints, statutory FDD Item 19 unit economics, and multi-unit franchisee ownership trees.
Powered by the official @modelcontextprotocol/sdk (TypeScript + Zod) with built-in token compaction, dynamic tool scoping, and exponential backoff resilience.
Compatible with Claude Desktop, Cursor, Zed, Cline, and autonomous AI agent runtimes.
🚀 Quick Install
1. Claude Desktop (via Smithery)
npx -y @smithery/cli install franchisedata-mcp --client claude2. Claude Desktop (claude_desktop_config.json)
Remote Streamable HTTP (Zero Local Dependencies)
{
"mcpServers": {
"franchisedata": {
"url": "https://franchisedata.io/mcp",
"headers": {
"Authorization": "Bearer fc_live_optional_pro_key"
}
}
}
}Local CLI Runner (via npx)
{
"mcpServers": {
"franchisedata": {
"command": "npx",
"args": ["-y", "franchisedata-mcp"],
"env": {
"FRANCHISE_API_KEY": "fc_live_optional_pro_key",
"FRANCHISE_MODE": "all"
}
}
}
}3. Cursor
In Cursor Settings -> Features -> MCP Servers -> Add New MCP Server:
Name:
franchisedataType:
commandCommand:
npx -y @outis-co/franchisedata-mcp
Related MCP server: guerrilla-franchising-mcp-server
⚡ Agent Experience (AX) & Token Optimization
Dynamic Tool Scoping (FRANCHISE_MODE)
Prevent LLM context window bloat by loading only the tools relevant to your agent's current objective:
Mode | Tools Loaded | Best For |
| 6 tools | Brand discovery, catalog lookups, and endpoint exploration. Minimal token footprint (~1,200 tokens). |
| 10 tools | Underwriting, commercial due diligence, FDD Item 19 analysis, and operator portfolios. |
| 13 tools | Store-level operations, POS hardware fingerprints, aggregator visibility, and live status. |
| 17 tools | Full comprehensive franchise commercial intelligence suite. |
Automatic Response Compaction
By default (FRANCHISE_COMPACT=true), responses recursively prune null attributes, empty arrays, and extraneous internal SQLite keys, saving 40% to 60% of agent context tokens while preserving 100% of financial figures, unit counts, coordinates, and operational facts.
Network Resilience
Built-in exponential backoff retry (1s, 2s, 4s with random jitter) on HTTP 429 rate limits or 5xx server errors, backed by a 30-second abort timeout.
🛠️ Registered MCP Tools (17 Grade A Tools)
Every tool provides strict Zod input validation, typed outputSchema, MCP behavioral annotations (readOnlyHint, idempotentHint), and explicit disambiguation boundaries (WHEN TO USE / WHEN NOT TO USE / ALTERNATIVES).
Tool Name | Type | Category | Description |
| FREE | Catalog | Search all 500 indexed chains by concept, sector, or category. |
| FREE | Catalog | Inspect schema, parameters, and pricing for any REST API endpoint. |
| FREE | Catalog | Read-only check of remaining credit balance in USD. |
| State-Mutating | Catalog | Mint a new API key ($1.00 min) or top up prepaid credits. |
| Universal | Catalog | Parameterized runner calling any REST endpoint when dedicated tool is not present. |
| PAID ($0.005) | Catalog | pgvector cosine similarity search across multi-unit operators and menu items. |
| PAID ($0.010) | Financials | Statutory Item 19 AUV quartiles, royalty fee %, and EBITDA benchmarks. |
| PAID ($0.005) | Financials | Multi-unit franchisee holding LLCs, PE backing, and store fleet counts. |
| PAID ($0.003) | Financials | Real-time audit log of store openings, permanent closures, and fleet relocations. |
| PAID ($0.003) | Financials | Localized menu item pricing, national benchmarks, and price variance analysis. |
| PAID ($0.003) | Locations | Fast lookup of McDonald's stores with drive-thru, 24h, and PlayPlace filters. |
| PAID ($0.002) | Locations | Real-time operating hours, active open/closed status, and store features. |
| PAID ($0.005) | Locations | Radial cross-brand coordinate search (up to 50 miles) for open restaurant locations. |
| PAID ($0.003) | Intelligence | Fingerprint POS (Toast, Aloha, Brink), KDS, and online ordering gateways. |
| PAID ($0.005) | Intelligence | Hyperlocal digital shelf observations across DoorDash, Uber Eats, and 1P web. |
| PAID ($0.010) | Intelligence | Standardized 6-Question Weekly Operating Review Scorecard for store diagnostics. |
| PAID ($0.005) | Intelligence | Margin-guardrailed tactical interventions with holdout test design. |
⚙️ Environment Variables
Variable | Default | Description |
|
| Optional |
|
| Upstream JSON-RPC endpoint. |
|
| Scoping mode: |
|
| Toggles automatic null-pruning and token reduction. |
|
| HTTP request timeout in milliseconds. |
|
| Maximum exponential backoff retry attempts. |
📄 License
MIT © Outis Co
Available Tools
17 toolscheck_balanceCheck API Credit BalanceARead-onlyIdempotent
FREE. Query the remaining prepaid credit balance (in USD and micro-USD) and active status for a FranchiseData Pro API key. Read-only operation requiring an API key passed via 'api_key' argument or 'Authorization: Bearer fc_live_...' header. Returns 400 if key is omitted, or 401 if key is invalid. WHEN TO USE: Use before executing batch paid queries to verify sufficient funds remain. WHEN NOT TO USE: Do not use for minting new keys or topping up funds; use 'topup_credits' instead. ALTERNATIVES: Use 'topup_credits' to deposit credits or create new credentials.
Inputs: api_key. Returns: is_active, key_prefix, balance_usd, balance_micro
describe_endpointDescribe Endpoint Schema and PricingARead-onlyIdempotent
FREE. Inspect technical documentation, supported query parameters, authentication methods, and per-call pricing for any REST API route on franchisedata.io. Read-only operation requiring no API key or balance. Rate limit: 60 req/min. Returns 404 if the endpoint route is unrecognized. WHEN TO USE: Use before calling 'fetch_franchise_data' to verify required query parameters, authentication headers, and per-request prices. WHEN NOT TO USE: Do not use to fetch actual brand data records; use 'fetch_franchise_data' or specialized shortcut tools instead. ALTERNATIVES: Use 'search_brands' to discover brand slugs; use 'fetch_franchise_data' to execute the request.
Inputs: endpoint (required). Returns: formats, pricing, endpoint, authentication, +1 more
detect_tech_stackDetect In-Store POS and Kitchen Tech StackARead-onlyIdempotent
PAID ($0.003). Fingerprint point-of-sale (POS) hardware (Toast, NCR Aloha, Brink, Micros, Square), kitchen display systems (KDS), and online ordering gateways for a store location. Atomically debits $0.003. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use for restaurant tech competitive auditing, vendor market share tracking, and POS displacement prospecting. WHEN NOT TO USE: Do not use for menu item prices (use 'get_menu_pricing') or store status (use 'starbucks_store_status'). ALTERNATIVES: Use 'get_menu_pricing' for item prices; use 'get_operator_intelligence' for franchisee ownership.
Inputs: brand (required), store_id (required). Returns: tech_stack, balance_remaining_usd
fetch_franchise_dataUniversal Franchise REST Endpoint RunnerARead-onlyIdempotent
PAID ($0.002 - $0.005). Execute parameterized REST queries against any franchisedata.io API endpoint with typed arguments. Atomically debits balance per request. Requires 'fc_live_...' API key with sufficient balance. Returns 402 if balance is insufficient. WHEN TO USE: Use ONLY as an escape hatch for arbitrary or custom REST routes not covered by typed shortcut tools. WHEN NOT TO USE: Do not use when a dedicated typed tool exists (e.g. use 'get_fdd_item19' for FDD unit economics, 'detect_tech_stack' for POS hardware, 'get_operator_intelligence' for ownership trees, 'mcdonalds_locations' for McDonald's stores). ALTERNATIVES: Use 'describe_endpoint' first to verify route parameters; use specialized shortcuts for validated schemas.
Inputs: path (required), params, api_key. Returns: data, endpoint, balance_remaining_usd
franchise_search_nearRadial Cross-Brand Location Proximity SearchARead-onlyIdempotent
PAID ($0.005). Radial coordinate-based proximity search (up to 50 miles) across all 500 US restaurant franchise chains. Returns geocoded locations, distance, and brand classification. Atomically debits $0.005 from prepaid balance. Requires 'fc_live_...' API key. Returns 402 if balance is insufficient. WHEN TO USE: Use for geographic competitive landscape queries, local market density analysis, and finding nearby restaurants across multiple brands. WHEN NOT TO USE: Do not use for single-brand McDonald's lookups by city/zip (use 'mcdonalds_locations') or brand catalog metadata (use 'search_brands'). ALTERNATIVES: Use 'mcdonalds_locations' for dedicated McDonald's filters; use 'get_local_share_of_choice' for delivery shelf share.
Inputs: lat (required), lng (required), category, radius_miles. Returns: center, results, balance_remaining_usd
get_fdd_item19Statutory FDD Item 19 Unit EconomicsARead-onlyIdempotent
PAID ($0.010). Retrieve regulatory Franchise Disclosure Document (FDD) Item 19 financial disclosures: Average Unit Volume (AUV), quartile revenue tiers, royalty fee %, marketing fund %, and initial capital investment requirements. Atomically debits $0.010. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use for franchise investment underwriting, brand unit-level financial benchmarking, and royalty fee comparisons. WHEN NOT TO USE: Do not use for store-level weekly performance (use 'get_weekly_scorecard') or individual store pricing (use 'get_menu_pricing'). ALTERNATIVES: Use 'get_weekly_scorecard' for operational store scorecards; use 'search_brands' to discover brand catalog.
Inputs: brand (required). Returns: brand, fdd_item19, balance_remaining_usd
get_operator_intelligenceMulti-Unit Franchisee Ownership IntelligenceARead-onlyIdempotent
PAID ($0.005). Retrieve corporate franchisee entity trees, operating LLCs, portfolio unit counts, and executive leadership contacts. Requires either 'operator_id' OR both 'brand' and 'store_id'. Atomically debits $0.005. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use to identify who owns and operates a franchise location (e.g. Flynn Group, Carrols), examine multi-unit consolidation, and find franchisee executive contacts. WHEN NOT TO USE: Do not use for corporate franchisor FDD financial benchmarks (use 'get_fdd_item19') or in-store hardware (use 'detect_tech_stack'). ALTERNATIVES: Use 'get_fdd_item19' for statutory Item 19 disclosures; use 'semantic_vector_search' to find operators by fuzzy concept.
Inputs: brand, store_id, operator_id. Returns: operator, operators, balance_remaining_usd
get_weekly_scorecardWeekly Operating Review Store ScorecardARead-onlyIdempotent
PAID ($0.010). Retrieve the standardized 6-Question Weekly Operating Review Scorecard for a restaurant location covering Funnel conversion, Drivers, Competitor Moves, Fact vs Inference, 1 Recommended Action, and Holdout design. Atomically debits $0.010. Requires 'fc_live_...' API key. If 'week' is omitted, defaults to latest evaluated week. Returns 404 if no scorecard found, 402 if balance insufficient. WHEN TO USE: Use for weekly operational store diagnostics, executive unit reviews, and root-cause sales analysis. WHEN NOT TO USE: Do not use for general location searches (use 'franchise_search_near') or brand FDD data (use 'get_fdd_item19'). ALTERNATIVES: Use 'recommend_local_action' for isolated action extraction; use 'get_local_share_of_choice' for raw delivery panel telemetry.
Inputs: store_id (required), week. Returns: week, store_id, balance_remaining_usd, question_1_what_changed, +5 more
mcdonalds_locationsQuery McDonald's Store LocationsARead-onlyIdempotent
PAID ($0.003). Dedicated fast search for McDonald's fleet stores filtered by city, state, postal zip code, and drive-thru availability. Atomically debits $0.003 from prepaid balance. Requires 'fc_live_...' API key. Returns 402 if balance is insufficient. WHEN TO USE: Use specifically when looking up McDonald's store locations and filtering for drive-thru lanes. WHEN NOT TO USE: Do not use for other chains or cross-brand searches; use 'franchise_search_near' instead. ALTERNATIVES: Use 'franchise_search_near' for coordinate-based cross-brand proximity search; use 'search_brands' to discover other chains.
Inputs: zip, city, limit, state, +1 more. Returns: brand, count, locations, balance_remaining_usd
recommend_local_actionRecommend Margin-Guardrailed Local ActionARead-onlyIdempotent
PAID ($0.005). Synthesize local competitor shifts and digital funnel gaps to formulate a single controllable, margin-guardrailed tactical intervention with matched holdout test design. Atomically debits $0.005. Requires 'fc_live_...' API key. Returns 404 if no scorecard exists, 402 if balance insufficient. WHEN TO USE: Use to formulate an immediate, actionable operational response to local competitive pressure with rigorous holdout controls. WHEN NOT TO USE: Do not use for broad exploratory searches (use 'franchise_search_near') or multi-unit franchisee mapping (use 'get_operator_intelligence'). ALTERNATIVES: Use 'get_weekly_scorecard' for the full 6-question review; use 'get_local_share_of_choice' for underlying delivery shelf data.
Inputs: store_id (required). Returns: status, store_id, recommended_action, epistemic_foundation, +1 more
search_brandsSearch Franchise Brands CatalogARead-onlyIdempotent
FREE. Search and discover indexed restaurant brands across the 500 US franchise database by name, concept, sector, or category. Returns matching chains with total unit counts, category classification, and per-call endpoint pricing. Read-only operation requiring no API key or balance. Rate limit: 60 req/min. WHEN TO USE: Use first when discovering brand slugs or verifying if a chain is indexed in the catalog. WHEN NOT TO USE: Do not use for physical store locations (use 'franchise_search_near' or 'mcdonalds_locations'), corporate filings (use 'get_fdd_item19'), or natural language vector searches (use 'semantic_vector_search'). ALTERNATIVES: Use 'semantic_vector_search' for conceptual similarity; use 'describe_endpoint' to inspect route pricing.
Inputs: query. Returns: total, brands
semantic_vector_searchpgvector Semantic Embeddings SearchARead-onlyIdempotent
PAID ($0.005). Perform high-dimensional cosine similarity semantic vector search across multi-unit operators and menu items using embeddings. Atomically debits $0.005. Requires 'fc_live_...' API key. Type defaults to 'operators' if omitted. 'brand' parameter is only applied when type is 'menu'. Returns 402 if balance insufficient. WHEN TO USE: Use for conceptual natural language queries (e.g. 'private equity franchisee groups in Texas' or 'spicy chicken breakfast sandwich'). WHEN NOT TO USE: Do not use for exact brand catalog keyword searches (use 'search_brands') or coordinate proximity searches (use 'franchise_search_near'). ALTERNATIVES: Use 'search_brands' for keyword catalog matching; use 'get_menu_pricing' for exact store menu lookups.
Inputs: query (required), type, brand, limit. Returns: type, brand, query, results, +1 more
starbucks_store_statusReal-Time Starbucks Operating StatusARead-onlyIdempotent
PAID ($0.002). Retrieve live operating status, weekly schedule, and current open/closed state for a specific Starbucks store. Atomically debits $0.002 from prepaid balance. Requires 'fc_live_...' API key. If 'store_id' is omitted, defaults to the first indexed store. Returns 404 if store is not found, 402 if balance insufficient. WHEN TO USE: Use to verify whether an individual Starbucks store is currently open or to view its operating schedule. WHEN NOT TO USE: Do not use for fleet-wide location discovery (use 'franchise_search_near' or 'fetch_franchise_data'). ALTERNATIVES: Use 'franchise_search_near' for finding open stores near coordinates; use 'track_brand_changes' for permanent closures.
Inputs: store_id. Returns: city, name, hours, state, +4 more
topup_creditsMint API Key or Top Up Prepaid CreditsA
Deposit prepaid credits into an existing API key or mint a new key ($1.00 USD minimum, $500.00 max). State-mutating operation that creates or updates database credentials. Requires no prior authentication. Pass 'api_key' to top up an existing key, or omit 'api_key' to mint a fresh key. Returns generated or updated key details and balance in USD. WHEN TO USE: Use when an existing key has exhausted credits, or when a new agent session requires dedicated credentials. WHEN NOT TO USE: Do not use solely to inspect an existing balance without depositing funds; use 'check_balance' instead. ALTERNATIVES: Use 'check_balance' for read-only balance verification without adding credits.
Inputs: amount_usd (required), api_key. Returns: key, message, success, balance_usd
track_brand_changesTrack Fleet Openings, Closures, and RelocationsARead-onlyIdempotent
PAID ($0.003). Audit recent fleet events including permanent closures, new unit openings, and relocations for a brand. Atomically debits $0.003. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use for tracking brand footprint expansion, net unit growth velocity, and distress/closure detection. WHEN NOT TO USE: Do not use for real-time daily operating hours (use 'starbucks_store_status'). ALTERNATIVES: Use 'starbucks_store_status' for live store hours; use 'franchise_search_near' for current open units.
Inputs: brand (required), event_type. Returns: brand, changes, balance_remaining_usd
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Descriptions include explicit WHEN TO USE / WHEN NOT TO USE / ALTERNATIVES sections, making most boundaries clear (e.g. mcdonalds_locations vs franchise_search_near, search_brands vs semantic_vector_search). Minor overlap remains among the analytics tools (get_weekly_scorecard vs recommend_local_action, and get_local_share_of_choice vs get_menu_pricing both touch delivery pricing), but the cross-references largely resolve it.
Predominantly snake_case with clear verb_noun structure (search_brands, get_operator_intelligence, detect_tech_stack, track_brand_changes). Deviations are brand-prefixed or noun-only names (mcdonalds_locations, starbucks_store_status, semantic_vector_search) which break the pattern but stay readable and snake_case.
17 tools is slightly above the ideal range but each targets a distinct data source or operation, so they mostly earn their place. The generic fetch_franchise_data escape hatch coexists sensibly with the specialized shortcuts.
Strong coverage of discovery, endpoints, billing, geolocation, operator intelligence, tech stack, brand change tracking, menu pricing, FDD financials, delivery share, and operational scorecards. Read-oriented surface is fairly complete; a dedicated single-brand detail tool and more lifecycle/write operations are minor gaps.
Maintenance
Related MCP Connectors
Pre-opening US restaurant and bar leads, scored from liquor, permit and business filings.
Real-world location intelligence: foot traffic, trade areas, demographics, site scoring, and more.
OSM-sourced local business data across 9 niches — cuisine, dietary options, delivery, accessibility.
Local business intel for AI agents: audits, lead scoring, tech stack, prospecting.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides hospitality intelligence tools for restaurant optimization, including menu profitability analysis, food cost calculation, reservation management, review sentiment analysis, and allergen checking.8 npm31 PyPIMIT
- AlicenseAqualityDmaintenanceFranchise evaluation tools built from 81+ closed deals. Validate FDD investment ranges, identify red flags, assess readiness, and connect with a free franchise consultant. E-2 visa guide in English and Spanish.86 npmMIT
- AlicenseAqualityDmaintenanceRegulatory intelligence API — look up permits, licenses, and fees for food service businesses in Austin, SF, and NYC.350 npmMIT
- FlicenseNot gradedqualityCmaintenanceThe owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer-