cook-mcp-windy
Version:
HowToCook MCP Server - Intelligent Chinese recipe management and meal planning for AI assistants
215 lines • 8.9 kB
TypeScript
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
import { z } from 'zod';
import { type MCPResponse } from '../types/index.js';
declare const RecommendMealPlanInput: z.ZodObject<{
preferences: z.ZodObject<{
numberOfPeople: z.ZodNumber;
dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>, "many">>;
allergies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
preferredCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
excludedCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
cookingSkillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
timeConstraints: z.ZodOptional<z.ZodObject<{
maxPrepTime: z.ZodOptional<z.ZodString>;
maxCookTime: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}>>;
nutritionalGoals: z.ZodOptional<z.ZodObject<{
targetCalories: z.ZodOptional<z.ZodNumber>;
highProtein: z.ZodOptional<z.ZodBoolean>;
lowCarb: z.ZodOptional<z.ZodBoolean>;
balanced: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}>;
startDate: z.ZodOptional<z.ZodString>;
planDuration: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
includeShoppingList: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
consolidateIngredients: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
preferences: {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
};
startDate?: string | undefined;
planDuration?: number | undefined;
includeShoppingList?: boolean | undefined;
consolidateIngredients?: boolean | undefined;
}, {
preferences: {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
};
startDate?: string | undefined;
planDuration?: number | undefined;
includeShoppingList?: boolean | undefined;
consolidateIngredients?: boolean | undefined;
}>;
type RecommendMealPlanInput = z.infer<typeof RecommendMealPlanInput>;
declare const MealPlanResponse: z.ZodObject<{
mealPlan: z.ZodAny;
shoppingList: z.ZodOptional<z.ZodAny>;
statistics: z.ZodObject<{
totalRecipes: z.ZodNumber;
uniqueRecipes: z.ZodNumber;
categoriesUsed: z.ZodArray<z.ZodString, "many">;
averageCaloriesPerDay: z.ZodNumber;
totalEstimatedCookTime: z.ZodNumber;
budgetEstimate: z.ZodString;
}, "strip", z.ZodTypeAny, {
totalRecipes: number;
uniqueRecipes: number;
categoriesUsed: string[];
averageCaloriesPerDay: number;
totalEstimatedCookTime: number;
budgetEstimate: string;
}, {
totalRecipes: number;
uniqueRecipes: number;
categoriesUsed: string[];
averageCaloriesPerDay: number;
totalEstimatedCookTime: number;
budgetEstimate: string;
}>;
recommendations: z.ZodObject<{
cookingTips: z.ZodArray<z.ZodString, "many">;
prepAdvice: z.ZodArray<z.ZodString, "many">;
substitutions: z.ZodArray<z.ZodString, "many">;
timeManagement: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
cookingTips: string[];
prepAdvice: string[];
substitutions: string[];
timeManagement: string[];
}, {
cookingTips: string[];
prepAdvice: string[];
substitutions: string[];
timeManagement: string[];
}>;
}, "strip", z.ZodTypeAny, {
statistics: {
totalRecipes: number;
uniqueRecipes: number;
categoriesUsed: string[];
averageCaloriesPerDay: number;
totalEstimatedCookTime: number;
budgetEstimate: string;
};
recommendations: {
cookingTips: string[];
prepAdvice: string[];
substitutions: string[];
timeManagement: string[];
};
mealPlan?: any;
shoppingList?: any;
}, {
statistics: {
totalRecipes: number;
uniqueRecipes: number;
categoriesUsed: string[];
averageCaloriesPerDay: number;
totalEstimatedCookTime: number;
budgetEstimate: string;
};
recommendations: {
cookingTips: string[];
prepAdvice: string[];
substitutions: string[];
timeManagement: string[];
};
mealPlan?: any;
shoppingList?: any;
}>;
/**
* Tool definition for recommending meal plans
*/
export declare const recommendMealPlanTool: Tool;
/**
* Handler for recommend_meal_plan tool
*/
export declare function handleRecommendMealPlan(input: RecommendMealPlanInput): Promise<MCPResponse<z.infer<typeof MealPlanResponse>>>;
export {};
//# sourceMappingURL=recommendMealPlan.d.ts.map