
DietBox
Patient, prescription, anthropometry, scheduling, chat and food diary management for dietitians.
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Patient, prescription, anthropometry, scheduling, chat and food diary management for dietitians.
How to connect
How to connect DietBox to Claude
The server address to paste into Claude settings:
https://api.mcp.ai/p_dietbox
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect DietBox to ChatGPT
The server address to paste into ChatGPT settings:
https://api.mcp.ai/p_dietbox
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect DietBox to Cursor
The server address to paste into Cursor settings:
https://api.mcp.ai/p_dietbox
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (42)
Raw names from tools/list. Only developers need these.
| dietbox_list_accounts | List all Dietbox accounts linked to this install. Returns each account's id, email, label, and an "is_default" flag (true when only one is linked — no need to pass `account` in other tools). When multiple accounts are linked, every other dietbox_* tool accepts an optional `account` parameter; pass id, email, or label (full or partial). |
| dietbox_get_profile | Get the nutritionist's Dietbox profile (perfil): name, email, subscription plan, features. |
| dietbox_get_nutritionist | Get the nutritionist's professional profile in Dietbox: CRN, specialties, signature, subscription details. |
| dietbox_patient_list | Read patients in Dietbox. Actions: list (paginated, search by name), get (full detail). [Flattened action: list] Bulk support: accepts patient_ids for batched execution. |
| dietbox_patient_get | Read patients in Dietbox. Actions: list (paginated, search by name), get (full detail). [Flattened action: get] Bulk support: accepts patient_ids for batched execution. |
| dietbox_patient_write_create | Create or update patients in Dietbox. Actions: create (Name required, uses POST), update (partial fields, uses PATCH — no need to send all fields). Gender: Masculino or Feminino (converted to boolean for the API). Observation field for notes. Endereço, dados civis e de acesso (Address, Number, Complement, Neighborhood, State, City, Cep, MaritalStatus, Occupancy, Expire) são suportados em create e update — use os mesmos nomes de campo retornados pelo dietbox_patient (get); o adapter mapeia internamente a divergência de nomes do endpoint de update. Phone / MobilePhone são normalizados automaticamente para E.164 em create e update (o endpoint update/PATCH /patients rejeita HTTP 400 "'Body Mobile Phone Value' is not in format 'E.164'" quando recebe número sem prefixo internacional). Envie "67991234567", "(67) 99123-4567" ou "+5567991234567" indistintamente — o adapter ajusta para "+5567991234567" antes de chamar a API. Para números não-brasileiros, envie já com "+{código}". For destructive removal use dietbox_patient_delete. [Flattened action: create] Bulk support: accepts patient_ids for batched execution. |
| dietbox_patient_write_update | Create or update patients in Dietbox. Actions: create (Name required, uses POST), update (partial fields, uses PATCH — no need to send all fields). Gender: Masculino or Feminino (converted to boolean for the API). Observation field for notes. Endereço, dados civis e de acesso (Address, Number, Complement, Neighborhood, State, City, Cep, MaritalStatus, Occupancy, Expire) são suportados em create e update — use os mesmos nomes de campo retornados pelo dietbox_patient (get); o adapter mapeia internamente a divergência de nomes do endpoint de update. Phone / MobilePhone são normalizados automaticamente para E.164 em create e update (o endpoint update/PATCH /patients rejeita HTTP 400 "'Body Mobile Phone Value' is not in format 'E.164'" quando recebe número sem prefixo internacional). Envie "67991234567", "(67) 99123-4567" ou "+5567991234567" indistintamente — o adapter ajusta para "+5567991234567" antes de chamar a API. Para números não-brasileiros, envie já com "+{código}". For destructive removal use dietbox_patient_delete. [Flattened action: update] Bulk support: accepts patient_ids for batched execution. |
| dietbox_patient_delete | Permanently delete a patient from Dietbox. Irreversible. Bulk support: accepts patient_ids for batched execution. |
| dietbox_prontuario | Get the clinical record (prontuario) for a Dietbox patient: medical history, notes. Bulk support: accepts patient_ids for batched execution. |
| dietbox_prontuario_write | Update the clinical record (prontuario) for a Dietbox patient. Pass the text content directly (HTML supported). Returns 204 on success. Bulk support: accepts patient_ids for batched execution. |
| dietbox_anamnese_list | Read anamnesis (health history questionnaire) records in Dietbox. Actions: list (paginated), get (by ID), get_latest (most recent for patient). [Flattened action: list] Bulk support: accepts patient_ids, anamnesis_ids for batched execution. |
| dietbox_anamnese_get | Read anamnesis (health history questionnaire) records in Dietbox. Actions: list (paginated), get (by ID), get_latest (most recent for patient). [Flattened action: get] Bulk support: accepts patient_ids, anamnesis_ids for batched execution. |
| dietbox_anamnese_get_latest | Read anamnesis (health history questionnaire) records in Dietbox. Actions: list (paginated), get (by ID), get_latest (most recent for patient). [Flattened action: get_latest] Bulk support: accepts patient_ids, anamnesis_ids for batched execution. |
| dietbox_anamnese_write_create | Create or update an anamnesis (health history questionnaire) in Dietbox. Actions: - create: cria nova anamnese. Obrigatório: patient_id. Opcional: descricao, texto_livre (HTML), tipo (1=completa default, 2=simplificada), data (ISO), overrides (map com qualquer campo extra: fuma, diabetes, medicamentos, alergias, ...). - update: atualiza uma anamnese existente. Obrigatório: anamnesis_id. Demais campos sobrescrevem os atuais. Retorna { id } da anamnese criada/atualizada. [Flattened action: create] Bulk support: accepts patient_ids, anamnesis_ids for batched execution. |
| dietbox_anamnese_write_update | Create or update an anamnesis (health history questionnaire) in Dietbox. Actions: - create: cria nova anamnese. Obrigatório: patient_id. Opcional: descricao, texto_livre (HTML), tipo (1=completa default, 2=simplificada), data (ISO), overrides (map com qualquer campo extra: fuma, diabetes, medicamentos, alergias, ...). - update: atualiza uma anamnese existente. Obrigatório: anamnesis_id. Demais campos sobrescrevem os atuais. Retorna { id } da anamnese criada/atualizada. [Flattened action: update] Bulk support: accepts patient_ids, anamnesis_ids for batched execution. |
| dietbox_anamnese_delete | Remove uma anamnese do Dietbox. Ação irreversível. Bulk support: accepts anamnesis_ids, patient_ids for batched execution. |
| dietbox_antropometria_list | Read anthropometric evaluations in Dietbox (weight, height, BMI, body composition). Actions: list (paginated, filter by tipo), get (by ID), get_latest (current measurements). [Flattened action: list] Bulk support: accepts patient_ids, anthropometry_ids for batched execution. |
| dietbox_antropometria_get | Read anthropometric evaluations in Dietbox (weight, height, BMI, body composition). Actions: list (paginated, filter by tipo), get (by ID), get_latest (current measurements). [Flattened action: get] Bulk support: accepts patient_ids, anthropometry_ids for batched execution. |
| dietbox_antropometria_get_latest | Read anthropometric evaluations in Dietbox (weight, height, BMI, body composition). Actions: list (paginated, filter by tipo), get (by ID), get_latest (current measurements). [Flattened action: get_latest] Bulk support: accepts patient_ids, anthropometry_ids for batched execution. |
| dietbox_antropometria_write | Create a new anthropometric evaluation in Dietbox. Required: patient_id, weight (kg, 0.1-1000), height (meters, 0.1-3.0). Type: 1=physical evaluation (default), 4=bioimpedance. All measurement fields (circumferences, skinfolds, bioimpedance) default to null. Bulk support: accepts patient_ids for batched execution. |
| dietbox_antropometria_delete | Delete an anthropometric evaluation from Dietbox. This is irreversible. Bulk support: accepts anthropometry_ids for batched execution. |
| dietbox_meal_plan | Get the active meal plan (plano alimentar) for a patient in Dietbox. Returns the full list of meals with foods, portions, schedule, and day-of-week assignments. Each meal has: title (e.g. "Café da manhã"), time, text (food items with portions), observacao, and weekday flags. NOTE: This is different from "prescriptions" — prescriptions in Dietbox are supplement/herbal medicine prescriptions. Use this tool for food/meal plans. READ-ONLY (UPSTREAM LIMITATION): A API v2 do Dietbox não expõe endpoint público de criação/edição de plano alimentar — a interface web usa rotas MVC internas (dietbox.me/PlanoAlimentar/...) que exigem cookies de sessão do browser, inacessíveis programaticamente. Por isso não existe dietbox_meal_plan_write. Para criar/editar planos, use a UI web do Dietbox, ou considere webdiet_prescription_write (WebDiet) quando for opção. Caso a Dietbox venha a expor esse endpoint na API, o adapter será atualizado. Bulk support: accepts patient_ids for batched execution. |
| dietbox_prescription_list | Read supplement/herbal medicine prescriptions in Dietbox (NOT meal plans — use dietbox_meal_plan for food plans). Actions: list (by patient), get (full detail by ID), list_models (reusable templates). [Flattened action: list] Bulk support: accepts patient_ids, prescription_ids for batched execution. |
| dietbox_prescription_get | Read supplement/herbal medicine prescriptions in Dietbox (NOT meal plans — use dietbox_meal_plan for food plans). Actions: list (by patient), get (full detail by ID), list_models (reusable templates). [Flattened action: get] Bulk support: accepts patient_ids, prescription_ids for batched execution. |
| dietbox_prescription_list_models | Read supplement/herbal medicine prescriptions in Dietbox (NOT meal plans — use dietbox_meal_plan for food plans). Actions: list (by patient), get (full detail by ID), list_models (reusable templates). [Flattened action: list_models] Bulk support: accepts patient_ids, prescription_ids for batched execution. |
| dietbox_prescription_write | Create a new supplement/herbal medicine prescription in Dietbox. For meal plans, use dietbox_meal_plan (read-only — Dietbox não expõe escrita via API). Required: title (nome da prescrição) and patient_id. Without title the API returns 400 "'Title' deve ser informado / 'Title' não pode ser nulo". "data" is a JSON string with the remaining prescription payload (Items, Orientations etc.); title and patient_id são mesclados automaticamente antes do POST. Bulk support: accepts patient_ids for batched execution. |
| dietbox_agenda_list | Read schedule/agenda in Dietbox. Actions: list (filter by date range/patient), summary (today's overview). [Flattened action: list] Bulk support: accepts patient_ids for batched execution. |
| dietbox_agenda_summary | Read schedule/agenda in Dietbox. Actions: list (filter by date range/patient), summary (today's overview). [Flattened action: summary] Bulk support: accepts patient_ids for batched execution. |
| dietbox_agenda_write | Create a new event/appointment in the Dietbox agenda. Requires Start and End as ISO datetime strings. Timezone defaults to America/Sao_Paulo (IANA format). Valid Tipo values: "consulta" (appointment), "retorno" (follow-up), "bloqueio" (block). Bulk support: accepts patient_ids for batched execution. |
| dietbox_chat_list | Read chat conversations in Dietbox. Actions: list (conversations, filter by patient/unread), messages (message history for patient). [Flattened action: list] Bulk support: accepts patient_ids for batched execution. |
| dietbox_chat_messages | Read chat conversations in Dietbox. Actions: list (conversations, filter by patient/unread), messages (message history for patient). [Flattened action: messages] Bulk support: accepts patient_ids for batched execution. |
| dietbox_chat_write | Send a chat message to a patient in Dietbox. Pass message data as a JSON string. |
| dietbox_list_goals | List nutrition/health goals for a Dietbox patient: weight targets, habit goals, custom objectives. Bulk support: accepts patient_ids for batched execution. |
| dietbox_get_goal_progress | Get goal progress for a Dietbox patient: completion percentages, streaks, recent activity. Bulk support: accepts patient_ids for batched execution. |
| dietbox_list_diario | List food diary entries for a Dietbox patient on a specific date. Shows what the patient ate, meal photos, comments. Bulk support: accepts patient_ids for batched execution. |
| dietbox_list_finance_transactions | List financial transactions in Dietbox: payments, receivables, filtered by date and status. |
| show_version | Show the current MCP platform and adapter versions. |
| report_bug | Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction. |
| connect | Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs. |
| toolkit_info | Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes. |
| marketplace | The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login. |
| authenticate | MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link. |