| 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: |
| 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: |
| 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: |
| 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: |
| 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: 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: |
| 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'
|