Foodzilla
Para programadores

O servidor MCP da Foodzilla

A Foodzilla fala o Model Context Protocol, por isso um assistente de IA pode trabalhar na conta de um profissional ou no diário de um cliente através de uma interface normalizada em vez de raspar páginas. É um endpoint HTTPS, OAuth 2.1 com PKCE e mais de 60 ferramentas.

Endpointhttps://api.foodzilla.io/mcp

Procura o que faz em vez de como funciona? Ver a apresentação do Autopilot

O que é o Model Context Protocol

O MCP é uma norma aberta para ligar assistentes de IA aos sistemas que guardam os dados verdadeiros. O assistente pergunta ao servidor que ferramentas tem, o servidor responde com nomes e argumentos tipados, e o assistente chama-as. Substitui o padrão em que um assistente vai adivinhando por uma página web ou por um endpoint sem documentação.

Num consultório de nutrição isso conta mais do que noutro sítio. Uma refeição que um cliente descreve tem de entrar no diário dele com valores de uma base de dados alimentar a sério, não com um número inventado pelo modelo, e tem de entrar no registo dele e em mais nenhum. Ferramentas tipadas e scopes por conta são o que mantém isso verdadeiro.

Referência de ligação

Tudo o que precisa para apontar um cliente MCP à Foodzilla.

Endpoint
https://api.foodzilla.io/mcp
Transporte
HTTP em streaming, JSON-RPC 2.0 por POST
Autorização
Authorization code OAuth 2.1 com PKCE, registo dinâmico de clientes
Descoberta
/.well-known/oauth-protected-resource/mcp
Scopes
autopilot, coach, openid, offline_access
Plano
Professional ou acima para profissionais
autopilot

Um cliente acompanhado. O plano dele e o diário dele, mais nada.

coach

Um profissional a trabalhar na sua própria conta. Receitas, modelos, formulários, marcações, conteúdos, loja, definições e subscrição. Sem acesso a qualquer registo de cliente.

Um token leva um dos dois, nunca os dois. Qual deles decide-se na página de consentimento, e a quem é profissional e tem também registo de cliente é perguntado com qual se está a ligar.

O que recebe um pedido sem autenticação

Um 401 com um cabeçalho WWW-Authenticate que indica o URL dos metadados do recurso, que é como um cliente MCP bem feito encontra sozinho o servidor de autorização.

As ferramentas

61 neste momento. Os nomes são estáveis. Tudo o que sobrepõe ou gasta dinheiro está marcado como destrutivo, por isso o seu assistente pergunta antes de executar.

Scope de cliente

16 ferramentas

Registo

log_food, log_planned_meal, log_water, log_exercise, log_sleep, log_weight, delete_food_log

O plano deles

get_plan, get_todays_meals, get_recipe

Olhar para trás

get_day, get_progress, get_recent_foods, get_profile, get_status

Conta

sign_out_everywhere

log_food aceita ou uma lista de alimentos, correspondidos às bases de dados da Foodzilla com nutrição real por ingrediente, ou números simples para algo que nenhuma base de dados tem. Uma linha que a base não conhece faz falhar a chamada inteira e nomeia-a, em vez de registar um palpite.

Scope de profissional

46 ferramentas

Receitas

generate_recipe, import_recipe_from_url, update_recipe_draft, discard_recipe_draft, save_recipe, list_my_recipes

Modelos de plano

generate_plan_template, list_my_templates, describe_plan_settings

Colecções e alimentos

create_collection, add_recipes_to_collection, list_collections, add_food, add_foods, import_food_from_url, import_food_from_text

Formulários e marcações

create_form, update_form, list_forms, get_booking_setup, set_availability, create_appointment_type, update_appointment_type

Conteúdos

create_post, update_post, publish_post, pin_post, list_posts

Loja

get_store, update_store, create_store_plan, update_store_plan, publish_store, unpublish_store

Definições

get_app_experience, set_app_experience, update_my_profile, get_invoice_settings, update_invoice_settings

Conta e facturação

get_my_account, get_subscription, preview_plan_change, change_plan, activate_subscription, extend_trial

Quem está abaixo de Professional liga-se com cinco destas: as de conta e subscrição, para que o assistente possa orçamentar uma subida de plano e aplicá-la. O resto aparece assim que o plano sobe, na mesma ligação.

Ligar um assistente

Nada para instalar e nenhuma chave para gerar. O fluxo OAuth faz o resto.

Claude

  1. 1Definições, depois Conectores, depois Adicionar conector personalizado.
  2. 2Cole https://api.foodzilla.io/mcp como URL.
  3. 3Entre com o seu email e palavra-passe da Foodzilla quando a página abrir.
  4. 4Confirme a conta indicada na página de consentimento e carregue em Ligar.

ChatGPT

  1. 1Definições, depois Conectores, depois Avançado, e active o modo programador. A Foodzilla ainda não está no directório de conectores.
  2. 2Acrescente um conector com https://api.foodzilla.io/mcp como URL.
  3. 3Entre com o seu email e palavra-passe da Foodzilla.
  4. 4Confirme a conta indicada na página de consentimento e carregue em Ligar.
  5. 5Abra uma conversa com o conector activado.

Qualquer outra coisa que fale MCP

Aponte-a ao endpoint. Regista-se sozinha por registo dinâmico de clientes, encontra o servidor de autorização pelos metadados do recurso protegido e corre o fluxo authorization code com PKCE. Peça offline_access se quiser que a ligação dure mais do que o token de acesso.

Limites e consumo

Contado à semana

Cada plano tem um limite semanal que reinicia à segunda-feira. Leituras, escritas e chamadas que gastam tempo de modelo são contadas em separado, por isso uma semana de muita leitura não come o orçamento de gerar receitas.

Os clientes partilham um fundo

Os seus clientes vão a um único limite comum em vez de um cada. Assim um cliente muito falador não gasta a semana do consultório.

Cresce com o plano

O White Label leva quatro vezes o limite do Professional. O Team leva sete vezes, por profissional.

Visível em percentagem

O separador Autopilot na Foodzilla mostra quanto já foi da semana. Ao chegar ao limite, a ferramenta responde a dizê-lo, em vez de falhar em silêncio.

O que o servidor recusa

  • Um token de profissional que peça o registo de um cliente. Não há ferramenta nenhuma que aceite um id de cliente, por isso não há a que apontar.
  • Um token de cliente que passe além do seu diário e do seu plano. Uma receita só é legível se estiver no plano desse cliente, o que impede percorrer a biblioteca chamada a chamada.
  • Um token de uma ligação que o profissional entretanto desligou, mesmo que ainda esteja dentro da validade.
  • Um token de uma concessão anterior depois de uma religação, para que desligar e voltar a ligar não traga de volta uma chave velha sem ninguém dar por isso.
  • Tudo numa conta cujo plano já não inclui o Autopilot. A elegibilidade é verificada em cada chamada, não só no consentimento.
  • Um cliente cujo profissional desligou o acesso dos clientes.

Dados pessoais ficam fora dos registos do servidor. Sem nomes de clientes ou profissionais, sem emails, sem telefones.

Perguntas Frequentes

MCP Server for Nutrition Coaching: Endpoint, Scopes, Tools | Foodzilla