Skip to main content
Glama
ni-c

mealie-mcp

by ni-c

{"type":"text"}# mealie-mcp

CI npm downloads container node license docs

Model Context Protocol 서버로, 자체 호스팅 레시피 관리자이자 식사 플래너인 Mealie를 위한 것입니다.

이 서버는 모델에 Mealie 인스턴스의 선별된 보기를 제공합니다: 재료와 단계가 포함된 레시피 검색 및 읽기, 웹사이트에서 새 레시피 가져오기, 태그와 카테고리 정리, 식사 계획 수립, 해당 계획에서 쇼핑 목록 작성, 그리고 실제로 조리된 내용 기록 등이 가능합니다.

📖 전체 문서는 mealie-mcp.ni-c.de에서 확인하세요

데모

Mealie의 REST API는 175개의 경로에 걸쳐 259개의 작업을 제공합니다. 이 서버는 52개의 도구를 노출하며, 일반적인 작업은 한 번의 호출로 처리되고 위험한 영역은 전혀 접근할 수 없도록 선택되었습니다. Mealie v3.22.0에서 검증되었습니다. 모든 요청 형태의 진실 공급원은 게시된 문서(여러 곳에서 최신 정보가 아님)가 아니라 실행 중인 인스턴스의 GET /openapi.json입니다.

요구 사항

  • Node.js 22 이상

  • Mealie 인스턴스 및 설정 → API 토큰에서 발급받은 API 토큰

Related MCP server: Blender Open MCP

설정

변수

필수

설명

MEALIE_URL

기본 URL, 예: https://mealie.example.com

MEALIE_API_TOKEN

설정 → API 토큰에서 발급받은 토큰입니다. 생성한 사용자로 작동합니다.

MEALIE_READ_ONLY

아니오

정확히 true인 경우 17개의 읽기 전용 도구만 등록합니다.

MEALIE_ACCEPT_LANGUAGE

아니오

예: de-DE; 단위 및 레이블 이름을 현지화합니다.

MEALIE_INSECURE_TLS

아니오

정확히 true인 경우 자체 서명된 인증서를 허용하며, 이 연결에만 적용됩니다.

두 불리언 값은 리터럴 문자열 true와 비교되므로, 오타가 있으면 꺼짐 상태로 유지됩니다. stderr의 시작 줄에서 적용 중인 모드를 확인할 수 있습니다.

토큰은 읽힌 후 프로세스 환경에서 제거되므로, 하위 프로세스가 /proc/<pid>/environ에서 이를 가져올 수 없습니다.

설치

Claude Desktop 또는 JSON 설정을 사용하는 모든 MCP 클라이언트:

{
  "mcpServers": {
    "mealie": {
      "command": "npx",
      "args": ["-y", "@ni-c/mealie-mcp"],
      "env": {
        "MEALIE_URL": "https://mealie.example.com",
        "MEALIE_API_TOKEN": "…"
      }
    }
  }
}
claude mcp add mealie \
  -e MEALIE_URL=https://mealie.example.com \
  -e MEALIE_API_TOKEN=… \
  -- npx -y @ni-c/mealie-mcp

Codex (~/.codex/config.toml):

[mcp_servers.mealie]
command = "npx"
args = ["-y", "@ni-c/mealie-mcp"]

[mcp_servers.mealie.env]
MEALIE_URL = "https://mealie.example.com"
MEALIE_API_TOKEN = "…"

또는 컨테이너로:

docker run --rm -i \
  -e MEALIE_URL=https://mealie.example.com \
  -e MEALIE_API_TOKEN=… \
  ghcr.io/ni-c/mealie-mcp

도구를 대화형으로 사용해 보려면:

npx @modelcontextprotocol/inspector npx -y @ni-c/mealie-mcp

도구

레시피search_recipes, get_recipe, suggest_recipes, create_recipe, update_recipe, duplicate_recipe, set_recipe_last_made, delete_recipe 🔒

가져오기preview_recipe_url (드라이 런, 아무것도 저장하지 않음), import_recipe_from_url, import_recipe_from_html_or_json, import_recipe_from_image

정리list_organizers, create_organizer, update_organizer, delete_organizer 🔒 — 각각 kind: tag | category | tool을 받습니다.

재료list_foods, create_food, merge_foods 🔒, list_units, create_unit, merge_units 🔒, parse_ingredients

식사 계획list_mealplans, get_todays_meals, create_mealplan_entry, create_random_meal, update_mealplan_entry, delete_mealplan_entry 🔒

쇼핑list_shopping_lists, get_shopping_list, create_shopping_list, delete_shopping_list 🔒, add_shopping_list_items, update_shopping_list_items, delete_shopping_list_items 🔒, add_recipe_to_shopping_list, remove_recipe_from_shopping_list

요리책list_cookbooks, get_cookbook, create_cookbook, delete_cookbook 🔒

노트 및 공유set_recipe_rating, add_recipe_comment, delete_recipe_comment 🔒, list_recipe_comments, list_recipe_timeline, create_timeline_event, list_share_tokens, create_share_token 🔒, delete_share_token

인스턴스get_about

🔒 확인 토큰이 필요합니다: 한 번 호출하여 토큰을 받은 후, 다시 호출하여 사용합니다.

레시피는 모든 곳에서 슬러그 또는 UUID로 지정할 수 있습니다. Mealie는 두 식별자 공간을 분할하며, 도구는 제공된 것을 해석합니다.

의도적으로 노출하지 않은 항목

/api/admin 아래의 모든 것 (백업, 복원, 유지보수, 사용자, 그룹 및 가구 관리, 이메일, AI 공급자 설정), /api/users/api-tokens (API 자격 증명을 생성하는 도구는 권한 상승 표면입니다), 인증 경로, 사용자 CRUD 및 비밀번호, 웹훅, 이벤트 알림 및 레시피 작업 (세 가지 모두 인스턴스에서 아웃바운드 HTTP를 트리거합니다), 식사 계획 규칙, 마이그레이션, 시더, 초대장, 대량 내보내기 및 ZIP 다운로드, 자산 및 이미지 업로드.

PUT /api/recipes/{slug}도 노출되지 않습니다. 이는 33개 필드의 레시피 객체 전체를 대체하므로, 부분 업데이트를 통해 재료, 단계 및 태그가 자동으로 삭제됩니다. update_recipePATCH를 사용합니다.

안전

  • 인스턴스 콘텐츠는 신뢰할 수 없는 입력입니다. 레시피는 일반적으로 임의의 웹사이트에서 스크래핑되고 댓글은 다른 사용자로부터 오므로, 인스턴스 콘텐츠를 포함할 수 있는 모든 도구 결과에는 모델이 이를 데이터로 처리하도록 명시적인 표시자가 접두사로 붙습니다. 이는 가져오기 후에도 중요합니다. 텍스트는 데이터베이스에 남아 get_recipe를 통해 다시 반환됩니다.

  • 가져오기 도구는 Mealie가 가져오도록 하며, 이 서버가 가져오지 않습니다. URL은 공개 http/https 주소로 제한됩니다. 루프백, 사설 범위, 링크-로컬 및 .lan/.internal/.local 호스트는 거부됩니다.

  • 확인 프롬프트는 업스트림 텍스트를 인용하지 않습니다. ID, 개수 및 플래그만 포함됩니다.

  • 응답은 제한됩니다. 크기가 큰 결과는 JSON 중간을 자르는 대신 전체 항목을 삭제하며, 응답 본문은 8MB를 초과하여 읽히지 않습니다.

  • 리디렉션은 거부되므로 토큰이 다른 호스트로 다시 전송될 수 없습니다.

신뢰 모델 및 취약점 신고 방법은 SECURITY.md를 참조하세요.

개발

npm install && npm test && npm run build

scripts/verify-live.mjs임시 Mealie 인스턴스에 대해 52개 도구를 모두 실행합니다. 설정 방법은 CONTRIBUTING.md에 나와 있습니다.

아키텍처 다이어그램과 소셜 카드는 docs/assets/architecture.source.svgdocs/assets/og.json에서 npm run assets를 통해 렌더링됩니다. CI는 렌더링된 복사본이 수동으로 편집된 경우 실패합니다.

릴리스

모든 것은 태그에 의해 구동되며, 수동 게시 단계는 없습니다.

  1. CHANGELOG.md[Unreleased] 섹션을 새 버전으로 이동하고 날짜를 지정합니다. 릴리스 워크플로는 awk로 해당 섹션을 추출하므로 ## [x.y.z] 제목 형식이 중요합니다.

  2. package.jsonversion을 업데이트합니다.

  3. npm run lint && npm run build && npm run test:coverage를 실행합니다.

  4. 커밋한 후, 서명된 주석 태그를 만듭니다:

    git tag -s v0.1.1 -m "v0.1.1"
    git push origin main v0.1.1

release.yml은 태그가 package.json과 일치하는지 확인하고, Trusted Publishing(OIDC — 유출될 npm 토큰 없음)을 통해 증명과 함께 npm에 게시하며, 버전을 두 server.json 패키지 항목에 동기화하고, MCP 레지스트리에 게시한 후, 변경 로그 섹션에서 GitHub 릴리스를 생성합니다. ci.yml은 멀티 아키텍처 컨테이너 이미지를 GHCR에 병렬로 푸시합니다.

라이선스

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A Model Context Protocol server for Wix AI tools

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…

View all MCP Connectors

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/ni-c/mealie-mcp'

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