@goparrot/franchise-mcp-server
v0.0.8
Published
MCP Server for Franchise API
Downloads
11
Readme
Franchise MCP Server
A comprehensive Model Context Protocol (MCP) server implementation providing a unified interface for franchise business operations. This server acts as a central hub for managing all aspects of franchise operations including:
- Store and merchant management
- Menu and catalog operations
- Order processing and fulfillment
- Payment processing and integrations
- User access and role management
- Service charge and tax configurations
The server implements a modular architecture with specialized services for:
- Store Operations: Complete store lifecycle management and configuration
- Menu Management: Comprehensive menu orchestration, synchronization, and item management
- Order Processing: Order handling, service charges, and configurations
- Payment Systems: Multi-provider payment processing with legacy system support
- User Management: Role-based access control and account management
- Merchant Operations: Merchant-level configurations and multi-store management
This implementation serves as the backbone for franchise operations, providing a scalable and maintainable API system that handles both modern and legacy requirements.
Features
- Store Management API
- Create, read, update, and delete store operations
- Store listing with pagination
- Store configuration management
- Order Management
- Order listing with pagination
- Order details retrieval
- Order action handling
- Service Charge Management
- Service charge CRUD operations
- Store-specific service charge configuration
- Merchant Management
- Merchant creation and retrieval
- Merchant profile updates
- Merchant configuration management
Installation
npm install -g @goparrot/franchise-mcp-serverUsage
As a Command Line Tool
franchise-mcp-server startAs a Module
import { startServer } from "@goparrot/franchise-mcp-server";
// Start the server
startServer();Goose Integration
Command Line Integration
You can add the Franchise MCP Server as a Goose extension using the CLI:
goose-configureFollow these steps in the interactive prompt:
- Select "Add Extension"
- Choose "Command-line Extension"
- Enter "Franchise MCP Server" as the extension name
- Set "franchise-mcp-server" as the command
- Set timeout to 300 seconds
- Add required environment variable:
DASHBOARD_ACCESS_TOKEN: Your dashboard access token
- Optional environment variables:
WEBSTORE_GATEWAY_BASE_URL: Base URL for webstore API gatewayDASHBOARD_GATEWAY_BASE_URL: Base URL for dashboard API gatewayDISALLOW_WRITES: Set to "true" to prevent write operations (defaults to true)
Desktop UI Integration
- Open Goose Desktop application
- Click on the menu in the top right
- Select "Settings"
- Navigate to the "Extensions" section
- Click "Add Extension"
- Fill in the following details:
- Name: Franchise MCP Server
- Type: Command Line
- Command: franchise-mcp-server
- Timeout: 300
- Required Environment Variables:
- DASHBOARD_ACCESS_TOKEN
- Optional Environment Variables:
- WEBSTORE_GATEWAY_BASE_URL
- DASHBOARD_GATEWAY_BASE_URL
- DISALLOW_WRITES

Figure: Goose Desktop Extension Configuration Screen
Environment Variables
DASHBOARD_ACCESS_TOKEN: JWT token for dashboard API access (Required)WEBSTORE_GATEWAY_BASE_URL: (Optional) Base URL for webstore API gatewayDASHBOARD_GATEWAY_BASE_URL: (Optional) Base URL for dashboard API gatewayDISALLOW_WRITES: (Optional) Set to "true" to prevent write operations. When true, only read operations are allowed. Defaults to true
API Overview
Webstore API Methods
- Store Operations
GET /api/v3/stores/{storeId}- Get store by ID
- Merchant Operations
GET /api/v3/merchants/{merchantId}- Get merchant by ID
Dashboard API Methods
The dashboard API is organized into several logical groups:
Order Related APIs
- Order Management
PATCH /orders/api/v2/orders/{uuid}/actions- Handle order actionsGET /orders/api/v2/orders/{uuid}- Get order details
- Order Configuration
- Configuration endpoints for order settings
Menu Related APIs
- Menu Orchestrator
- Menu structure and organization endpoints
- Menu Sync
Menu Sync Item- Item synchronizationMenu Sync Config- Configuration synchronizationMenu Sync Tax- Tax settings synchronization
Store Items APIs
- Location Items
- Location-specific item management
- Item base and group management
- Item options and sets
- Store bundles and combos
- Merchant Items
- Merchant-level item management
- Item base and group management
- Item options and sets
- Store bundles and combos
- Categories and Concepts
- Location and merchant categories
- Menu concepts management
- Selection Types
- Location selection types
- Merchant selection types
- Tax Management
- Store-specific tax configuration
Payment Related APIs
- Payment Management
- Payment store configuration
- OAuth integration
- Payment Domain
- Domain-specific payment settings
- Legacy Payment
- Legacy app integration
- Square payment integration
User Related APIs
- User Management
- User CRUD operations
- User invitations and franchise connections
- Role Management
- Role definitions and assignments
- Merchant-specific roles
- Account Management
- Password reset
- Email confirmation
Other APIs
- Store Management
- Store CRUD operations
- Store configuration
- Service Charge Management
- Service charge CRUD operations
- Store-specific charges
- Merchant Management
- Merchant CRUD operations
- Merchant configuration
Each API group is organized in its own directory with dedicated handlers and methods:
src/dashboard/services/
├── order/ # Order related services
├── menu/ # Menu related services
├── storeitems/ # Store items services
├── payment/ # Payment related services
├── user/ # User related services
└── ... # Other servicesDevelopment
- Clone the repository
- Install dependencies:
npm install - Copy environment configuration:
cp .env.example .env - Start development server:
npm run start:dev
Available Scripts
npm run build- Build the projectnpm run watch- Watch mode for developmentnpm run start- Start the production servernpm run start:dev- Start the development servernpm run format- Format code with Prettiernpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
License
Apache-2.0 © Block, Inc
