Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRANSPORTNoTransport mode for the server. Set to 'http' for remote access, defaults to stdio for local usestdio
THERMOWORKS_EMAILNoYour ThermoWorks account email (required for live device integration)
THERMOWORKS_PASSWORDNoYour ThermoWorks account password (required for live device integration)

Tools

Functions exposed to the LLM to take actions

NameDescription
bbq_get_cooking_guidance

Get comprehensive cooking guidance for a specific protein including target temperatures, time estimates, and tips.

This is the primary tool for planning a cook. It provides:

  • Target internal temperature based on desired doneness

  • Pull temperature (accounting for carryover)

  • Estimated cook time based on weight and method

  • Timeline for when to start if serving time is specified

  • Stall warnings for large cuts

  • Resting instructions

  • Pro tips for the specific protein

Args:

  • protein_type: Type of meat (e.g., 'beef_brisket', 'pork_shoulder', 'chicken_whole')

  • weight_pounds: Weight in pounds (e.g., 12.5)

  • target_doneness: Desired doneness level (optional, uses recommended if not specified)

  • cook_method: Cooking method (optional, uses recommended if not specified)

  • serving_time: Target serving time in ISO 8601 format (optional)

  • response_format: 'markdown' or 'json'

Examples:

  • "How should I cook a 14 lb brisket?" -> protein_type='beef_brisket', weight_pounds=14

  • "I want to serve pulled pork at 6pm" -> protein_type='pork_butt', serving_time='2024-12-25T18:00:00'

bbq_analyze_temperature

Analyze current temperature reading and provide progress assessment, trend analysis, and recommendations.

Use this tool to interpret live temperature data from a thermometer. It provides:

  • Progress percentage toward target

  • Temperature trend (rising, falling, stalled, stable)

  • Rate of temperature change per hour

  • Estimated time remaining

  • Stall detection

  • Actionable recommendations

Args:

  • current_temp: Current internal temperature in °F

  • target_temp: Target internal temperature in °F

  • protein_type: Type of protein being cooked

  • cook_method: Cooking method (optional)

  • cook_start_time: When cook started, ISO 8601 format (optional)

  • previous_readings: Array of {temp, timestamp} for trend analysis (optional)

  • response_format: 'markdown' or 'json'

Examples:

  • "My brisket is at 165°F, target is 203°F" -> current_temp=165, target_temp=203, protein_type='beef_brisket'

  • "Temperature hasn't moved in 2 hours" -> Include previous_readings for stall detection

bbq_get_target_temperature

Get the target internal temperature for a specific protein and doneness level.

Returns both the target serving temperature and the pull temperature (when to remove from heat) accounting for carryover cooking.

Args:

  • protein_type: Type of protein

  • doneness: Desired doneness level (optional, uses recommended if not specified)

  • include_pull_temp: Whether to include pull temperature (default: true)

  • response_format: 'markdown' or 'json'

Examples:

  • "What temp for medium-rare ribeye?" -> protein_type='beef_ribeye', doneness='medium_rare'

  • "When is chicken done?" -> protein_type='chicken_whole'

bbq_list_proteins

List all supported protein types with their key cooking information.

Use this to discover available proteins and their identifiers for use with other tools.

Args:

  • category: Filter by category ('beef', 'pork', 'poultry', 'lamb', 'seafood', 'all')

  • response_format: 'markdown' or 'json'

Examples:

  • "What meats can you help me cook?" -> category='all'

  • "Show me beef options" -> category='beef'

bbq_estimate_cook_time

Estimate total cooking time for a protein based on weight and cooking method.

Provides time estimates with confidence levels and accounts for factors like stalls.

Args:

  • protein_type: Type of protein

  • weight_pounds: Weight in pounds

  • cook_method: Cooking method to use

  • smoker_temp: Smoker/grill temperature in °F (optional)

  • target_doneness: Target doneness level (optional)

  • response_format: 'markdown' or 'json'

Examples:

  • "How long for a 10 lb pork butt?" -> protein_type='pork_butt', weight_pounds=10, cook_method='smoke_low_slow'

  • "Time for hot and fast brisket" -> protein_type='beef_brisket', cook_method='smoke_hot_fast'

bbq_detect_stall

Analyze temperature readings to detect if a cook is experiencing a stall.

The stall is a phenomenon where internal temperature plateaus, common with large cuts like brisket and pork shoulder. This tool analyzes temperature trend to detect stalls and provides recommendations.

Args:

  • protein_type: Type of protein being cooked

  • current_temp: Current internal temperature in °F

  • readings: Array of at least 3 readings with {temp, timestamp}

  • response_format: 'markdown' or 'json'

Examples:

  • "Is my brisket stalling?" -> Provide current_temp and readings array

  • "Temp hasn't moved in 2 hours" -> Include readings over that period

bbq_get_cooking_tips

Get cooking tips and best practices for a specific protein and situation.

Args:

  • protein_type: Type of protein

  • cook_method: Specific cooking method (optional)

  • current_phase: Current cooking phase for targeted tips (optional)

    • 'prep': Preparation and seasoning

    • 'cooking': Active cooking

    • 'stall': Temperature stall

    • 'wrapping': Texas crutch / wrapping

    • 'final_push': End of cook

    • 'resting': Rest period

    • 'serving': Slicing and serving

  • response_format: 'markdown' or 'json'

Examples:

  • "Tips for smoking brisket" -> protein_type='beef_brisket', cook_method='smoke_low_slow'

  • "Help with the stall" -> protein_type='beef_brisket', current_phase='stall'

bbq_calculate_rest_time

Calculate recommended rest time and expected carryover cooking.

Resting allows juices to redistribute and temperature to equalize. This tool provides rest time recommendations and predicts final temperature after carryover.

Args:

  • protein_type: Type of protein

  • current_temp: Current internal temperature when removed from heat

  • target_final_temp: Desired final temperature after resting (optional)

  • response_format: 'markdown' or 'json'

Examples:

  • "Brisket is at 200°F, how long to rest?" -> protein_type='beef_brisket', current_temp=200

  • "Pulled steak at 125°F for medium-rare" -> protein_type='beef_ribeye', current_temp=125, target_final_temp=130

bbq_analyze_device_reading

Analyze temperature readings from a ThermoWorks device (Signals, Smoke, BlueDOT).

Simulates integration with ThermoWorks Cloud to provide analysis of multi-probe readings.

Args:

  • device_type: Type of ThermoWorks device ('Signals', 'Smoke', 'BlueDOT')

  • probe_readings: Array of probe readings with {probe_id, name, temperature}

  • protein_type: Type of protein being cooked (optional)

  • target_temp: Target temperature (optional)

  • response_format: 'markdown' or 'json'

Examples:

  • "Signals reading: Probe 1 at 165°F, Ambient at 250°F"

  • "Smoke shows 180°F on the meat probe"

bbq_convert_temperature

Convert temperature between Fahrenheit and Celsius.

Args:

  • temperature: Temperature value to convert

  • from_unit: Source unit ('fahrenheit' or 'celsius')

  • to_unit: Target unit ('fahrenheit' or 'celsius')

Examples:

  • "What is 225°F in Celsius?" -> temperature=225, from_unit='fahrenheit', to_unit='celsius'

  • "Convert 100°C to Fahrenheit" -> temperature=100, from_unit='celsius', to_unit='fahrenheit'

thermoworks_authenticate

Connect to ThermoWorks Cloud using your ThermoWorks account credentials.

This allows the BBQ MCP Server to access live temperature data from your connected ThermoWorks devices (Signals, Smoke, BlueDOT, etc.).

IMPORTANT: Your credentials are only used to authenticate with ThermoWorks' servers and are not stored. The authentication token expires after 1 hour.

Args:

  • email: Your ThermoWorks account email (same as the ThermoWorks app)

  • password: Your ThermoWorks account password

  • use_legacy_smoke: Set to true for older Smoke Gateway devices (pre-2022)

Returns: Authentication status and list of connected devices.

Security Notes:

  • Credentials are sent directly to ThermoWorks/Firebase servers over HTTPS

  • No credentials are stored by the MCP server

  • For production use, set credentials via environment variables: THERMOWORKS_EMAIL and THERMOWORKS_PASSWORD

Examples:

  • "Connect to my ThermoWorks account" -> Provide email and password

  • "I have an older Smoke Gateway" -> Set use_legacy_smoke=true

thermoworks_check_auth

Check if you're currently authenticated with ThermoWorks Cloud.

Returns: Authentication status and token expiry time.

thermoworks_get_devices

Get a list of all ThermoWorks devices connected to your account.

Requires authentication first via thermoworks_authenticate.

Args:

  • response_format: 'markdown' or 'json'

Returns: List of devices with serial numbers, names, and types.

thermoworks_get_live_readings

Get current temperature readings from your ThermoWorks devices.

Requires authentication first via thermoworks_authenticate.

Args:

  • device_serial: Serial number of specific device (optional, defaults to all devices)

  • response_format: 'markdown' or 'json'

Returns: Current probe temperatures, alarm settings, and timestamps.

Examples:

  • "What are my current temperatures?" -> Gets all device readings

  • "Show me the Signals readings" -> Specify device_serial

thermoworks_analyze_live

Get live temperature from a connected ThermoWorks device and analyze cooking progress.

Combines real-time device data with the BBQ cooking knowledge base to provide actionable recommendations.

Requires authentication first via thermoworks_authenticate.

Args:

  • device_serial: Serial number of the device

  • probe_id: Probe number to analyze (default: '1')

  • protein_type: Type of protein being cooked

  • target_temp: Target temperature (optional, uses protein default)

  • response_format: 'markdown' or 'json'

Returns: Current temperature, progress percentage, trend analysis, and recommendations.

Examples:

  • "How's my brisket doing?" -> Analyzes probe 1 against brisket targets

  • "Check the turkey on probe 2" -> protein_type='turkey_whole', probe_id='2'

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jweingardt12/bbq-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server