franchisedata-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRANCHISE_API_KEY | No | API key for paid data unmasking, e.g. fc_live_.... Free tools require no API key. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_brandsA | 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. |
| describe_endpointA | 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. |
| check_balanceA | 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. |
| topup_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. |
| fetch_franchise_dataA | 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. |
| mcdonalds_locationsA | 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. |
| starbucks_store_statusA | 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. |
| franchise_search_nearA | 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. |
| get_operator_intelligenceA | 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. |
| detect_tech_stackA | 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. |
| track_brand_changesA | 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. |
| get_menu_pricingA | 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. |
| get_fdd_item19A | 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. |
| get_local_share_of_choiceA | 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. |
| get_weekly_scorecardA | 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. |
| recommend_local_actionA | 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. |
| semantic_vector_searchA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.