Mealie Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mealie Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that allows LLMs to save recipes directly to your Mealie instance. This server accepts recipes in schema.org/Recipe format and handles the conversion and saving to Mealie automatically.
cd mealie-mcpnpm installnpm run buildCreate a configuration file named .mealie-mcp.json in the project directory:
cp .mealie-mcp.json.example .mealie-mcp.jsonThen edit .mealie-mcp.json with your Mealie instance details:
{
"mealieUrl": "https://your-mealie-instance.com",
"apiToken": "your-api-token-here"
}/user/profile/api-tokensNote: The server looks for .mealie-mcp.json in the current working directory when it starts.
Add this server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"mealie": {
"command": "node",
"args": ["/absolute/path/to/mealie-mcp/build/index.js"],
"cwd": "/absolute/path/to/mealie-mcp"
}
}
}Replace /absolute/path/to/mealie-mcp with the actual path to this project.
Important: The cwd (current working directory) must be set to the project directory so the server can find the .mealie-mcp.json configuration file.
Once configured, you can ask Claude to save recipes to Mealie:
Save this recipe to Mealie:
Chocolate Chip Cookies
Ingredients:
- 2 cups flour
- 1 cup butter
- 1 cup sugar
- 2 eggs
- 2 cups chocolate chips
Instructions:
1. Preheat oven to 350°F
2. Mix butter and sugar
3. Add eggs and flour
4. Fold in chocolate chips
5. Bake for 12 minutesSave this pasta recipe to Mealie:
Name: Classic Spaghetti Carbonara
Cuisine: Italian
Category: Main Course
Prep Time: 10 minutes
Cook Time: 20 minutes
Servings: 4
Ingredients:
- 400g spaghetti
- 200g guanciale or pancetta
- 4 egg yolks
- 100g Pecorino Romano cheese
- Black pepper
- Salt
Instructions:
1. Cook pasta in salted boiling water until al dente
2. Cut guanciale into small pieces and cook until crispy
3. Mix egg yolks with grated cheese
4. Combine hot pasta with guanciale
5. Remove from heat and mix in egg mixture
6. Season with black pepper and serve
Tags: italian, pasta, quick-mealsThe MCP tool accepts recipes in schema.org/Recipe format with the following fields:
name: Recipe namedescription: Recipe descriptionrecipeYield: Number of servings (e.g., "4 servings")totalTime: Total time (ISO 8601 duration, e.g., "PT30M")prepTime: Preparation time (ISO 8601 duration)cookTime: Cooking time (ISO 8601 duration)recipeCategory: Category or array of categories ⚠️ Not currently saved (see limitations)recipeCuisine: Cuisine typekeywords: Tags/keywords (string or array) ⚠️ Not currently saved (see limitations)recipeIngredient: Array of ingredient stringsrecipeInstructions: String or array of instruction objectsnutrition: Object with nutritional informationimage: Image URL or array of URLsurl: Original source URLaggregateRating: Rating informationnpm run devnpm run buildmealie-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config.ts # Configuration management
│ ├── types.ts # TypeScript interfaces
│ ├── converter.ts # Schema.org to Mealie converter
│ ├── converter.test.ts # Converter tests
│ ├── mealie-client.ts # Mealie API client
│ └── mealie-client.test.ts # Integration tests
├── build/ # Compiled JavaScript
├── MEALIE_API_STRUCTURE.md # API format documentation
├── CATEGORIES_TAGS_LIMITATION.md # Categories/tags limitation details
├── package.json
├── tsconfig.json
└── README.md.mealie-mcp.json exists in the project directorymealieUrl and apiToken are presentcwd is set correctly in the config/user/profile/api-tokensmealieUrl is correctThe server handles the complete workflow automatically:
POST /api/recipes with just the recipe name → returns a slugreferenceId (UUID) for each ingredientdisplay, unit, food, isFood, disableAmount fieldstitle and ingredientReferences to instructionsPATCH /api/recipes/{slug} with complete recipe dataIf the update fails, the recipe will exist in Mealie with just a name and can be edited manually.
For detailed information about the data structure, see MEALIE_API_STRUCTURE.md.
Run integration tests (requires .mealie-mcp.json configuration):
npm testRun converter tests only:
npm test -- converter.testISC
Issues and pull requests are welcome!
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.