Skip to main content
Glama

franchisedata-mcp

npm version License: MIT Glama MCP Tools Chains Locations

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 claude

2. 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: franchisedata

  • Type: command

  • Command: 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

FRANCHISE_MODE=discovery

6 tools

Brand discovery, catalog lookups, and endpoint exploration. Minimal token footprint (~1,200 tokens).

FRANCHISE_MODE=diligence

10 tools

Underwriting, commercial due diligence, FDD Item 19 analysis, and operator portfolios.

FRANCHISE_MODE=operations

13 tools

Store-level operations, POS hardware fingerprints, aggregator visibility, and live status.

FRANCHISE_MODE=all (default)

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

search_brands

FREE

Catalog

Search all 500 indexed chains by concept, sector, or category.

describe_endpoint

FREE

Catalog

Inspect schema, parameters, and pricing for any REST API endpoint.

check_balance

FREE

Catalog

Read-only check of remaining credit balance in USD.

topup_credits

State-Mutating

Catalog

Mint a new API key ($1.00 min) or top up prepaid credits.

fetch_franchise_data

Universal

Catalog

Parameterized runner calling any REST endpoint when dedicated tool is not present.

semantic_vector_search

PAID ($0.005)

Catalog

pgvector cosine similarity search across multi-unit operators and menu items.

get_fdd_item19

PAID ($0.010)

Financials

Statutory Item 19 AUV quartiles, royalty fee %, and EBITDA benchmarks.

get_operator_intelligence

PAID ($0.005)

Financials

Multi-unit franchisee holding LLCs, PE backing, and store fleet counts.

track_brand_changes

PAID ($0.003)

Financials

Real-time audit log of store openings, permanent closures, and fleet relocations.

get_menu_pricing

PAID ($0.003)

Financials

Localized menu item pricing, national benchmarks, and price variance analysis.

mcdonalds_locations

PAID ($0.003)

Locations

Fast lookup of McDonald's stores with drive-thru, 24h, and PlayPlace filters.

starbucks_store_status

PAID ($0.002)

Locations

Real-time operating hours, active open/closed status, and store features.

franchise_search_near

PAID ($0.005)

Locations

Radial cross-brand coordinate search (up to 50 miles) for open restaurant locations.

detect_tech_stack

PAID ($0.003)

Intelligence

Fingerprint POS (Toast, Aloha, Brink), KDS, and online ordering gateways.

get_local_share_of_choice

PAID ($0.005)

Intelligence

Hyperlocal digital shelf observations across DoorDash, Uber Eats, and 1P web.

get_weekly_scorecard

PAID ($0.010)

Intelligence

Standardized 6-Question Weekly Operating Review Scorecard for store diagnostics.

recommend_local_action

PAID ($0.005)

Intelligence

Margin-guardrailed tactical interventions with holdout test design.


⚙️ Environment Variables

Variable

Default

Description

FRANCHISE_API_KEY

""

Optional fc_live_... API key for Pro tier unmasking. Get one at franchisedata.io/topup.

FRANCHISE_API_URL

https://franchisedata.io/api/mcp

Upstream JSON-RPC endpoint.

FRANCHISE_MODE

all

Scoping mode: all, discovery, diligence, operations.

FRANCHISE_COMPACT

true

Toggles automatic null-pruning and token reduction.

FRANCHISE_TIMEOUT_MS

30000

HTTP request timeout in milliseconds.

FRANCHISE_MAX_RETRIES

3

Maximum exponential backoff retry attempts.


📄 License

MIT © Outis Co

Available Tools

17 tools
check_balanceCheck API Credit BalanceA
Read-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 PricingA
Read-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 StackA
Read-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 RunnerA
Read-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 SearchA
Read-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 EconomicsA
Read-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_local_share_of_choiceHyperlocal Digital Shelf Share of ChoiceA
Read-onlyIdempotent

PAID ($0.005). Query local digital shelf telemetry from DoorDash, Uber Eats, and 1st-party apps, including delivered basket price gaps, delivery ETA disparities, and organic vs sponsored placement. Atomically debits $0.005. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use to diagnose delivery channel share loss, competitor promotion surges, and aggregator markup disparities. WHEN NOT TO USE: Do not use for static national FDD disclosures (use 'get_fdd_item19'). ALTERNATIVES: Use 'recommend_local_action' to generate guardrailed tactical responses based on shelf telemetry; use 'get_menu_pricing' for in-store menu pricing.

Inputs: store_id (required), daypart, platform. Returns: store_id, rival_brand, observations, rival_promo_badge, +4 more

get_menu_pricingRetrieve Store Menu Pricing and Price VarianceA
Read-onlyIdempotent

PAID ($0.003). Extract localized menu item prices, benchmark variances against national averages, and identify delivery aggregator price markups. Atomically debits $0.003. Requires 'fc_live_...' API key. Returns 402 if balance insufficient. WHEN TO USE: Use for local pricing strategy audits, inflation index tracking, and menu margin variance analysis. WHEN NOT TO USE: Do not use for delivery shelf placement rankings (use 'get_local_share_of_choice'). ALTERNATIVES: Use 'get_local_share_of_choice' for DoorDash/UberEats basket comparisons; use 'get_fdd_item19' for national revenue benchmarks.

Inputs: brand (required), store_id (required). Returns: brand, items, store_id, balance_remaining_usd

get_operator_intelligenceMulti-Unit Franchisee Ownership IntelligenceA
Read-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 ScorecardA
Read-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 LocationsA
Read-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 ActionA
Read-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 CatalogA
Read-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

starbucks_store_statusReal-Time Starbucks Operating StatusA
Read-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 RelocationsA
Read-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

    A4.1/5.0

    Scored across 17 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides hospitality intelligence tools for restaurant optimization, including menu profitability analysis, food cost calculation, reservation management, review sentiment analysis, and allergen checking.
      8 npm
      31 PyPI
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Franchise 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.
      8
      6 npm
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      The 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
      -