Skip to main content
Glama
Restaurant Backend MCP Server

Restaurant Backend MCP Server

by PasanIS

Restaurant Backend MCP Server

MCP (Model Context Protocol) server for interacting with the Restaurant FastAPI backend.

Installation

cd mcp-servers/backend-mcp
uv sync 

Related MCP server: FastAPI + FastMCP + Gemini Integration

Configuration

Update the BASE_URL in src/backend_mcp/server.py to match your FastAPI backend URL:

(python)
BASE_URL = "http://localhost:8000"  # Change this to your backend URL

Available Tools

Menu Management

  • get_menu_items - Browse menu items with filters

  • get_menu_item_details - Get detailed item information

  • create_menu_item - Add new menu items (staff only)

  • update_menu_item - Update existing items (staff only)

Order Management

  • create_order - Place new orders

  • get_order_details - Get order information

  • get_customer_orders - Get all orders for a customer

  • get_orders_by_status - Filter orders by status

  • update_order_status - Update order status

  • get_order_journey - View order status history

  • get_filtered_orders - Advanced order filtering

Customer Management

  • register_customer - Create new customer account

  • get_customer_profile - Get customer information

  • update_customer_profile - Update customer details

  • customer_login - Authenticate customer

Promo Codes

  • apply_promo_code - Validate and calculate discounts

  • get_promo_details - Get promo code information

Reviews

  • get_order_reviews - Get order reviews

  • create_review - Submit a review

Analytics

  • get_dashboard_stats - Overall statistics

  • get_popular_items - Most ordered items

  • get_revenue_stats - Revenue analysis

Staff Operations

  • staff_login - Staff authentication

System

  • check_backend_health - Backend health check

Running the Server

For Development/Testing

uv run python -m backend_mcp.server

As MCP Server (for Claude Desktop)

Add to your Claude Desktop config:

(.json)
{
  "mcpServers": {
    "restaurant-backend": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-servers/backend-mcp",
        "run",
        "backend-mcp"
      ]
    }
  }
}

Testing

uv run python test_server.py
**Make sure your FastAPI backend is running before testing.

Environment Variables

You can override the backend URL using environment variables:

export BACKEND_URL="http://<your-backend-url>:8000"

Architecture

Chatbot (Claude) 
    ↓ (MCP Protocol)
Backend MCP Server
    ↓ (HTTP/REST)
FastAPI Backend
    ↓
Database

Next

  • Create Database MCP Server for direct SQL operations Implement authentication/authorization

  • Add error handling and retry logic

  • Add caching for frequently accessed data

Available Tools

24 tools
apply_promo_codeD

Inputs: promo_code (required), order_amount (required).

check_backend_healthD

Inputs: no named parameters.

create_menu_itemD

Inputs: name (required), price (required), category (required), image_url, +3 more.

create_orderD

Inputs: items (required), order_type (required), customer_id (required), promo_code, +2 more.

create_reviewD

Inputs: rating (required), customer_id (required), comment, order_id, +1 more.

customer_loginD

Inputs: email (required), password (required).

get_customer_ordersD

Inputs: customer_id (required).

get_customer_profileD

Inputs: customer_id (required).

get_dashboard_statsD

Inputs: no named parameters.

get_filtered_ordersD

Inputs: skip, limit, status, end_date, +5 more.

get_menu_item_detailsD

Inputs: item_id (required).

get_menu_itemsD

Inputs: category, is_available.

get_order_detailsD

Inputs: order_id (required).

get_order_journeyD

Inputs: order_id (required).

get_order_reviewsD

Inputs: order_id (required).

get_orders_by_statusD

Inputs: status (required).

get_promo_detailsD

Inputs: promo_id (required).

get_revenue_statsD

Inputs: end_date (required), start_date (required), group_by.

register_customerD

Inputs: email (required), password (required), last_name (required), first_name (required), +2 more.

staff_loginD

Inputs: email (required), password (required), user_type.

update_customer_profileD

Inputs: customer_id (required), phone, address, password, +2 more.

update_menu_itemD

Inputs: item_id (required), name, price, category, +4 more.

update_order_statusD

Inputs: status (required), order_id (required), notes, staff_id.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    D1.9/5.0

    Scored across 24 tools

    Disambiguation4/5

    Most tools target distinct resources and actions, but get_orders_by_status and get_filtered_orders could overlap, and get_order_details vs get_order_journey might cause confusion.

    Naming Consistency4/5

    Predominantly uses verb_noun snake_case, but inconsistencies like singular/plural (menu_items vs menu_item_details) and 'staff_login' (noun-style) break the pattern slightly.

    Tool Count4/5

    24 tools cover multiple domains (menu, orders, customers, etc.) reasonably; slightly high but not excessive given the scope.

    Completeness4/5

    Covers CRUD for most entities but lacks delete operations for menu items, promotions, and reviews; minor gaps but overall comprehensive.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers