Foodzilla MCP 서버
Foodzilla는 Model Context Protocol을 지원하므로, AI 어시스턴트가 스크래핑이 아니라 표준 인터페이스로 코치의 계정이나 고객의 기록에서 작업할 수 있습니다. HTTPS 엔드포인트 하나, PKCE를 쓰는 OAuth 2.1, 그리고 60개가 넘는 도구입니다.
https://api.foodzilla.io/mcp동작 방식보다 무엇을 할 수 있는지가 궁금하신가요? Autopilot 개요 보기
Model Context Protocol 이란
MCP는 AI 어시스턴트를 실제 데이터를 가진 시스템에 연결하기 위한 개방형 표준입니다. 어시스턴트가 서버에 어떤 도구가 있는지 묻고, 서버가 이름과 타입이 정해진 인자로 답하고, 어시스턴트가 그것을 호출합니다. 웹 페이지나 문서화되지 않은 엔드포인트를 더듬어 가던 방식을 대체합니다.
영양 상담에서는 이것이 다른 분야보다 더 중요합니다. 고객이 설명한 식사는 모델이 지어낸 숫자가 아니라 실제 식품 데이터베이스의 영양 정보와 함께 기록에 들어가야 하고, 본인의 기록에만 들어가야 합니다. 타입이 정해진 도구와 계정별 스코프가 그것을 지켜줍니다.
연결 레퍼런스
MCP 클라이언트를 Foodzilla로 향하게 하는 데 필요한 모든 것.
- 엔드포인트
- https://api.foodzilla.io/mcp
- 전송
- Streamable HTTP, POST 기반 JSON-RPC 2.0
- 인가
- PKCE를 쓰는 OAuth 2.1 인가 코드, 동적 클라이언트 등록
- 디스커버리
- /.well-known/oauth-protected-resource/mcp
- 스코프
- autopilot, coach, openid, offline_access
- 플랜
- 코치는 Professional 이상
autopilot상담을 받는 고객. 본인의 플랜과 본인의 기록뿐입니다.
coach자기 계정에서 일하는 코치. 레시피, 템플릿, 양식, 예약, 콘텐츠, 스토어, 설정, 구독. 어떤 고객 기록에도 접근할 수 없습니다.
토큰은 둘 중 하나만 가지며 둘 다 갖지는 않습니다. 어느 쪽인지는 동의 화면에서 정해지고, 고객 기록도 가진 코치에게는 어느 쪽으로 연결할지 묻습니다.
인증되지 않은 요청이 받는 응답
401과, 리소스 메타데이터 URL을 알려주는 WWW-Authenticate 헤더입니다. 제대로 만든 MCP 클라이언트는 이것으로 인가 서버를 스스로 찾습니다.
도구 목록
현재 61개입니다. 이름은 안정적입니다. 덮어쓰거나 돈이 나가는 것은 destructive로 표시되므로 어시스턴트가 실행 전에 확인합니다.
고객 스코프
16개 도구기록
log_food, log_planned_meal, log_water, log_exercise, log_sleep, log_weight, delete_food_log
본인의 플랜
get_plan, get_todays_meals, get_recipe
돌아보기
get_day, get_progress, get_recent_foods, get_profile, get_status
계정
sign_out_everywhere
log_food는 Foodzilla 식품 데이터베이스와 매칭되어 재료별 실제 영양 정보가 붙는 식품 목록을 받거나, 어떤 데이터베이스에도 없는 것에 대한 숫자를 받습니다. 데이터베이스가 모르는 줄이 하나라도 있으면 추정치를 기록하지 않고 호출 전체를 거부하며 그 줄을 짚어줍니다.
코치 스코프
46개 도구레시피
generate_recipe, import_recipe_from_url, update_recipe_draft, discard_recipe_draft, save_recipe, list_my_recipes
플랜 템플릿
generate_plan_template, list_my_templates, describe_plan_settings
컬렉션과 식품
create_collection, add_recipes_to_collection, list_collections, add_food, add_foods, import_food_from_url, import_food_from_text
양식과 예약
create_form, update_form, list_forms, get_booking_setup, set_availability, create_appointment_type, update_appointment_type
콘텐츠
create_post, update_post, publish_post, pin_post, list_posts
스토어
get_store, update_store, create_store_plan, update_store_plan, publish_store, unpublish_store
설정
get_app_experience, set_app_experience, update_my_profile, get_invoice_settings, update_invoice_settings
계정과 결제
get_my_account, get_subscription, preview_plan_change, change_plan, activate_subscription, extend_trial
Professional 미만인 코치는 이 가운데 다섯 개로 연결됩니다. 계정과 구독 도구여서, 어시스턴트가 업그레이드 금액을 제시하고 적용할 수 있습니다. 나머지는 플랜이 올라가는 순간 같은 연결에서 나타납니다.
어시스턴트 연결하기
설치할 것도, 발급할 키도 없습니다. 나머지는 OAuth 흐름이 처리합니다.
Claude
- 1설정, 커넥터, 사용자 지정 커넥터 추가 순서로 이동합니다.
- 2URL에 https://api.foodzilla.io/mcp 를 붙여 넣습니다.
- 3페이지가 열리면 Foodzilla 이메일과 비밀번호로 로그인합니다.
- 4동의 화면에 표시된 계정을 확인하고 연결을 누릅니다.
ChatGPT
- 1설정, 커넥터, 고급으로 이동해 개발자 모드를 켭니다. Foodzilla는 아직 커넥터 디렉터리에 없습니다.
- 2URL을 https://api.foodzilla.io/mcp 로 해서 커넥터를 추가합니다.
- 3Foodzilla 이메일과 비밀번호로 로그인합니다.
- 4동의 화면에 표시된 계정을 확인하고 연결을 누릅니다.
- 5커넥터를 켠 상태로 대화를 시작합니다.
MCP를 지원하는 그 밖의 것
엔드포인트로 향하게 하면 됩니다. 동적 클라이언트 등록으로 스스로 등록하고, 보호 리소스 메타데이터에서 인가 서버를 찾고, PKCE가 붙은 인가 코드 흐름을 실행합니다. 액세스 토큰보다 오래 연결을 유지하려면 offline_access를 요청하세요.
사용 한도와 소진량
주 단위로 계산
모든 플랜에 주간 한도가 있고 월요일에 초기화됩니다. 읽기, 쓰기, 모델 시간을 쓰는 호출은 각각 따로 집계되므로 읽기가 많은 한 주가 레시피 생성 예산을 잡아먹지 않습니다.
고객은 한도를 공유
고객은 각자 하나씩이 아니라 전체가 하나의 한도를 나눠 씁니다. 말 많은 고객 한 명이 상담소의 한 주를 다 쓸 수 없다는 뜻입니다.
플랜에 따라 증가
White Label은 Professional의 네 배입니다. Team은 코치 한 명당 일곱 배입니다.
퍼센트로 확인
Foodzilla의 Autopilot 탭에서 이번 주에 얼마나 썼는지 볼 수 있습니다. 한도에 닿으면 도구가 조용히 실패하지 않고 그 사실을 응답으로 알려줍니다.
서버가 거부하는 것
- 고객 기록을 요구하는 코치 토큰. 고객 ID를 받는 도구 자체가 없으므로 겨눌 대상이 없습니다.
- 자기 기록과 플랜을 벗어나려는 고객 토큰. 레시피는 그 고객의 플랜에 있을 때만 읽을 수 있어, 라이브러리를 호출마다 훑어갈 수 없습니다.
- 코치가 이미 연결을 해제한 토큰. 유효 기간이 남아 있어도 거부합니다.
- 재연결 이후에 들어온 이전 승인의 토큰. 연결을 끊었다가 다시 이어도 오래된 키가 조용히 되살아나지 않습니다.
- 플랜에 더 이상 Autopilot이 포함되지 않는 계정의 모든 호출. 자격은 동의 시점만이 아니라 호출마다 확인합니다.
- 코치가 고객 접근을 꺼둔 고객.
개인 식별 정보는 서버 로그에 남기지 않습니다. 고객이나 코치의 이름, 이메일, 전화번호를 쓰지 않습니다.
관련 기능
영양 전문가를 위한 더 많은 도구를 살펴보세요