Mealie Mcp Ts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mealie Mcp Ts (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.
An MCP (Model Context Protocol) server that enables LLMs to interact with Mealie - a self-hosted recipe manager and meal planner.
# Clone the repository
git clone https://github.com/your-username/mealie-mcp.git
cd mealie-mcp
# Install dependencies
pnpm install
# Build
pnpm run buildCreate a .env file based on .env.example:
cp .env.example .envRequired environment variables:
| Variable | Description |
|---|---|
MEALIE_URL | URL of your Mealie instance (e.g., http://localhost:9925) |
MEALIE_API_KEY | API key from Mealie (Settings → API Tokens) |
ENABLED_TOOLS | (Optional) Comma-separated list of tools to enable |
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mealie": {
"command": "node",
"args": ["/path/to/mealie-mcp/dist/index.js"],
"env": {
"MEALIE_URL": "http://localhost:9925",
"MEALIE_API_KEY": "your-api-key"
}
}
}
}For running the server on a different machine (Synology NAS, home server, etc.), use the HTTP transport. The SDK's Streamable HTTP transport lets Claude Desktop connect over the network.
Set these env vars:
MCP_TRANSPORT=http
PORT=3000
ALLOWED_HOSTS=nas.local,192.168.1.50 # Host header allowlist (DNS rebind protection)
MEALIE_URL=http://mealie:9000 # service name if on same compose network
MEALIE_API_KEY=...Claude Desktop config:
{
"mcpServers": {
"mealie": {
"url": "http://nas.local:3000/mcp"
}
}
}The bundled Dockerfile defaults to HTTP transport on port 3000.
docker build -t mealie-mcp .
docker run -p 3000:3000 \
-e MEALIE_URL=http://host.docker.internal:9925 \
-e MEALIE_API_KEY=your-api-key \
-e ALLOWED_HOSTS=localhost \
mealie-mcp mealie-mcp:
build: ./mealie-mcp
container_name: mealie-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- MEALIE_URL=http://mealie:9000
- MEALIE_API_KEY=${MEALIE_API_KEY}
- ALLOWED_HOSTS=nas.local,192.168.1.50
depends_on:
- mealie| Tool | Description |
|---|---|
list_recipes | List all recipes with pagination |
get_recipe | Get full recipe details by slug |
create_recipe | Create a new recipe with ingredients and instructions |
update_recipe | Update an existing recipe |
delete_recipe | Delete a recipe |
upload_recipe_image | Upload an image to a recipe (base64) |
| Tool | Description |
|---|---|
test_scrape_url | Test if a URL can be scraped for recipe data |
create_recipe_from_url | Import a recipe by scraping a URL |
| Tool | Description |
|---|---|
list_meal_plans | List meal plans with optional date range filter |
get_todays_meal_plan | Get today's planned meals |
create_meal_plan | Create a meal plan entry for a specific date |
delete_meal_plan | Delete a meal plan entry |
| Tool | Description |
|---|---|
list_shopping_lists | List all shopping lists |
get_shopping_list | Get shopping list with items |
add_shopping_list_item | Add an item to a shopping list |
update_shopping_list_item | Update an item (quantity, note, or check/uncheck) |
delete_shopping_list_item | Remove an item from a shopping list |
add_recipe_to_shopping_list | Add all ingredients from a recipe to a list |
| Tool | Description |
|---|---|
list_categories | List all recipe categories |
create_category | Create a new category |
list_tags | List all recipe tags |
create_tag | Create a new tag |
| Tool | Description |
|---|---|
list_foods | List all foods/ingredients |
create_food | Create a new food item |
| Tool | Description |
|---|---|
get_current_user | Get current API user info including group and household context |
Mealie scopes data by group and household. When you create an API token, it inherits the group context of your current session. If recipes or other items you create via the API aren't visible in your browser:
get_current_user tool to see which group the API token is associated with# Run in development mode
pnpm run dev
# Lint
pnpm run lint
# Format
pnpm run format
# Build
pnpm run buildStart a local Mealie instance for testing:
docker-compose up -dThis starts Mealie at http://localhost:9925.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.