> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fitsociety.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools & Modules Registry

> Current FITsociety MCP module and write-tool registry.

FITsociety MCP exposes **34 modules**, **180 tools**, and **75 write tools** from
the backend declarative registry.

The registry has two subject surfaces:

* **Company/coach tools** are approved by a Manager or Admin coach and operate
  on company-scoped client, calendar, finance, health, messaging, and nutrition
  data.
* **Client AI tools** are approved by the client and operate only on that
  client's own records in the active company context. The client must be
  connected to the company, have client AI access enabled, and the company MCP
  integration feature must be enabled.

Both surfaces use the same remote MCP endpoint:

```text theme={null}
https://mcp.fitsociety.io/mcp/v1
```

## Module Registry

| Module Key | Title | Subject | Sensitivity | Consent Required | Tools | Write Tools |
| :- | :- | :- | :- | :- | -: | :- |
| `clients` | Clients | Company/coach | `operational` | None | 4 | `create_client` |
| `wishlist` | Wishlist | Company/coach | `operational` | None | 4 | `submit_wishlist_request`<br />`vote_wishlist_item` |
| `calendar_events` | Calendar events | Company/coach | `operational` | None | 2 | None |
| `bookings` | Bookings Module | Company/coach | `operational` | None | 6 | `update_attendance`<br />`create_booking` |
| `subscriptions` | Subscriptions Module | Company/coach | `operational` | None | 3 | None |
| `credits` | Credits Module | Company/coach | `operational` | None | 3 | `adjust_client_credits` |
| `invoices` | Invoices Module | Company/coach | `operational` | None | 3 | None |
| `recurring_bookings` | Recurring Bookings Module | Company/coach | `operational` | None | 1 | None |
| `event_templates` | Event Templates Module | Company/coach | `operational` | None | 2 | None |
| `calendar_tasks` | Calendar Tasks Module | Company/coach | `operational` | None | 5 | `create_calendar_task`<br />`cancel_calendar_task`<br />`update_calendar_task` |
| `measurements` | Measurements | Company/coach | `health` | Health data consent | 2 | None |
| `intake` | Intake | Company/coach | `health` | Health data consent | 2 | None |
| `checkups` | Checkups | Company/coach | `health` | Health data consent | 2 | None |
| `habits` | Habits | Company/coach | `health` | Health data consent | 7 | `create_habit_template`<br />`update_habit_template`<br />`archive_habit_template`<br />`assign_habit_template_to_client` |
| `goals` | Goals | Company/coach | `health` | Health data consent | 3 | `update_client_goals`<br />`set_client_nutrition_targets` |
| `client_notes` | Client Notes Module | Company/coach | `private_communication` | Private communication consent | 4 | `create_client_note`<br />`delete_client_note`<br />`update_client_note` |
| `documents` | Documents | Company/coach | `health` | Health data consent | 2 | None |
| `conversations` | Conversations | Company/coach | `private_communication` | Private communication consent | 11 | `create_conversation`<br />`send_conversation_message`<br />`update_conversation_message`<br />`delete_conversation_message`<br />`add_conversation_participants`<br />`remove_conversation_participant` |
| `nutrition_catalog` | Nutrition catalog | Company/coach | `operational` | None | 12 | `create_supplement`<br />`update_supplement`<br />`archive_supplement`<br />`create_recipe`<br />`update_recipe`<br />`archive_recipe` |
| `nutrition_plans` | Nutrition plans | Company/coach | `operational` | None | 12 | `create_nutrition_plan`<br />`create_nutrition_plan_template`<br />`assign_nutrition_plan`<br />`set_nutrition_plan_item`<br />`materialize_nutrition_day`<br />`materialize_nutrition_days`<br />`update_nutrition_plan`<br />`archive_nutrition_plan` |
| `nutrition_logs` | Nutrition logs | Company/coach | `health` | Health data consent | 6 | `log_nutrition_item`<br />`set_nutrition_day_item` |
| `workout` | Training Module | Company/coach | `health` | Health data consent | 26 | `create_workout_plan_template`<br />`update_workout_plan_template`<br />`archive_workout_plan_template`<br />`duplicate_workout_plan_template`<br />`upsert_workout_plan_day`<br />`set_workout_plan_day_exercises`<br />`create_workout_exercise`<br />`update_workout_exercise`<br />`archive_workout_exercise`<br />`assign_workout_plan`<br />`update_client_workout_plan_status`<br />`start_workout_session`<br />`log_workout_performance`<br />`complete_workout_session`<br />`update_workout_machine_preset`<br />`update_workout_equipment_profile` |
| `wod` | Workout of the Day | Company/coach | `health` | Health data consent | 10 | `create_wod`<br />`create_custom_wod`<br />`update_wod`<br />`publish_wod`<br />`archive_wod` |
| `client_ai_workout` | Client AI training | Client AI | `health` | Health data consent | 12 | `client_ai_start_or_resume_my_workout_session`<br />`client_ai_log_my_workout_performance`<br />`client_ai_complete_my_workout_session` |
| `client_ai_wod` | Client AI WOD | Client AI | `health` | Health data consent | 7 | `client_ai_update_my_wod_preferences`<br />`client_ai_start_my_wod`<br />`client_ai_complete_my_wod` |
| `client_ai_nutrition` | Client AI nutrition | Client AI | `health` | Health data consent | 5 | `client_ai_log_my_food` |
| `client_ai_measurements` | Client AI measurements | Client AI | `health` | Health data consent | 3 | `client_ai_log_my_measurement` |
| `client_ai_habits` | Client AI habits | Client AI | `health` | Health data consent | 3 | `client_ai_check_in_my_habit` |
| `client_ai_goals` | Client AI goals | Client AI | `health` | Health data consent | 2 | `client_ai_update_my_goals` |
| `client_ai_bookings` | Client AI bookings | Client AI | `operational` | None | 4 | `client_ai_book_my_event`<br />`client_ai_cancel_my_booking` |
| `client_ai_messages` | Client AI messages | Client AI | `private_communication` | Private communication consent | 3 | `client_ai_send_message_to_my_coach` |
| `client_ai_checkups` | Client AI checkups | Client AI | `health` | Health data consent | 3 | `client_ai_submit_my_checkup` |
| `client_ai_documents` | Client AI documents | Client AI | `private_communication` | Private communication consent | 2 | None |
| `client_ai_account` | Client AI account | Client AI | `operational` | None | 3 | None |

## Write Tool Registry

Write tools are hidden unless the grant is not read-only and the exact tool name
is present in `allowedWriteTools`.

| Tool | Module | Subject | Description |
| :- | :- | :- | :- |
| `create_client` | `clients` | Company/coach | Create a new client account associated with the company, or link an existing client account to the company if the email already exists. |
| `submit_wishlist_request` | `wishlist` | Company/coach | Publish an anonymous API or MCP request after the coach confirms. |
| `vote_wishlist_item` | `wishlist` | Company/coach | Add the connected coach's vote once, after confirmation. Return only the item and aggregate count. |
| `update_attendance` | `bookings` | Company/coach | Mark a booked client's attendance status for a booking as attended, no-show, or unknown. Use `list_bookings` or `get_booking` first to resolve the booking ID. |
| `create_booking` | `bookings` | Company/coach | Book a client onto a specific calendar event. Supports product-based and free booking modes. |
| `adjust_client_credits` | `credits` | Company/coach | Manually adjust a client's credit balance. Requires a reason and the target credit ID. |
| `create_calendar_task` | `calendar_tasks` | Company/coach | Create a new operational task for one or more coaches within the caller's company. Recurrence, locations, and overrides are excluded in v1. |
| `cancel_calendar_task` | `calendar_tasks` | Company/coach | Cancel or delete a calendar task within the caller's company. |
| `update_calendar_task` | `calendar_tasks` | Company/coach | Update title, notes, timing, or assigned coaches for an existing calendar task. Recurrence edits, locations, and overrides are rejected. |
| `create_habit_template` | `habits` | Company/coach | Create a company standard habit template that can later be assigned to clients. |
| `update_habit_template` | `habits` | Company/coach | Update a company standard habit template without changing existing client habits created from it. |
| `archive_habit_template` | `habits` | Company/coach | Archive a company standard habit template while leaving already assigned client habits active. |
| `assign_habit_template_to_client` | `habits` | Company/coach | Create client habit instances from one or more company standard habit templates. |
| `update_client_goals` | `goals` | Company/coach | Update safe stored goal fields for an existing client. |
| `set_client_nutrition_targets` | `goals` | Company/coach | Set daily and optional weekday-specific nutrition targets for an existing client. |
| `create_client_note` | `client_notes` | Company/coach | Create a new coach note or comment on a specific client's profile. |
| `delete_client_note` | `client_notes` | Company/coach | Delete (archive) a client note by note ID and client ID; the note is no longer returned by `list_client_notes`. |
| `update_client_note` | `client_notes` | Company/coach | Update an existing coach note's title, text, or client visibility. |
| `create_conversation` | `conversations` | Company/coach | Create or find a direct one-to-one conversation, or create a group conversation with coach and member participants. |
| `send_conversation_message` | `conversations` | Company/coach | Send a text message as a coach who is already an active participant in the direct or group conversation. |
| `update_conversation_message` | `conversations` | Company/coach | Update a text message sent by the same active coach participant within the existing chat edit window. |
| `delete_conversation_message` | `conversations` | Company/coach | Soft-delete a text message sent by the same active coach participant within the existing chat edit window. |
| `add_conversation_participants` | `conversations` | Company/coach | Add or restore participants in a group conversation; the actor coach must already be an active coach participant. |
| `remove_conversation_participant` | `conversations` | Company/coach | Remove one participant from a group conversation; the actor coach must already be an active coach participant. |
| `create_supplement` | `nutrition_catalog` | Company/coach | Create a company-scoped supplement in the nutrition catalog. |
| `update_supplement` | `nutrition_catalog` | Company/coach | Update a company-owned supplement in the nutrition catalog. |
| `archive_supplement` | `nutrition_catalog` | Company/coach | Archive a company-owned supplement in the nutrition catalog. |
| `create_recipe` | `nutrition_catalog` | Company/coach | Create a new recipe in the nutrition catalog. |
| `update_recipe` | `nutrition_catalog` | Company/coach | Update an existing recipe in the nutrition catalog. |
| `archive_recipe` | `nutrition_catalog` | Company/coach | Soft-delete or archive an existing recipe in the nutrition catalog. |
| `create_nutrition_plan` | `nutrition_plans` | Company/coach | Create a coach-authored nutrition plan for a client. |
| `create_nutrition_plan_template` | `nutrition_plans` | Company/coach | Create a reusable company nutrition plan template (no client) with targets, slots, and items. |
| `assign_nutrition_plan` | `nutrition_plans` | Company/coach | Copy a company nutrition plan template into a new plan for one client with its own date window. |
| `set_nutrition_plan_item` | `nutrition_plans` | Company/coach | Add, replace, or remove one item in an existing nutrition plan slot, selected with the required `action` parameter (`add`, `replace`, or `remove`). |
| `materialize_nutrition_day` | `nutrition_plans` | Company/coach | Create or refresh a concrete nutrition day for a client/date from one of the client's plans. |
| `materialize_nutrition_days` | `nutrition_plans` | Company/coach | Create or refresh concrete nutrition days for a bounded date range from one of the client's plans. |
| `update_nutrition_plan` | `nutrition_plans` | Company/coach | Update metadata, status, date window, target macros, notes, and existing slot definitions on a nutrition plan. |
| `archive_nutrition_plan` | `nutrition_plans` | Company/coach | Archive or soft-delete a client's nutrition plan. |
| `log_nutrition_item` | `nutrition_logs` | Company/coach | Log a consumed nutrition item for a client. |
| `set_nutrition_day_item` | `nutrition_logs` | Company/coach | Add, replace, or remove a planned or suggested item on a client's concrete nutrition day slot, selected with the required `action` parameter. |
| `create_workout_plan_template` | `workout` | Company/coach | Create a company-owned training plan template that can later be filled with days, exercises, and assigned to clients. |
| `update_workout_plan_template` | `workout` | Company/coach | Update metadata, default exercise settings, dates, or status on a company-owned training plan template. |
| `archive_workout_plan_template` | `workout` | Company/coach | Archive a company-owned training plan template by setting its status to Inactive. |
| `duplicate_workout_plan_template` | `workout` | Company/coach | Copy an existing company training template into a new company-owned draft template that can be modified safely before assignment. |
| `upsert_workout_plan_day` | `workout` | Company/coach | Create or update a template day; `weekNumber`/`weekday` place it in multi-week calendar templates. |
| `set_workout_plan_day_exercises` | `workout` | Company/coach | Replace the full exercise list of one company training template day using visible library exercises. |
| `create_workout_exercise` | `workout` | Company/coach | Create a company-owned exercise in the training library for use in company templates and client sessions. |
| `update_workout_exercise` | `workout` | Company/coach | Update a company-owned exercise in the training library. Global exercises are read-only through this tool. |
| `archive_workout_exercise` | `workout` | Company/coach | Archive a company-owned library exercise only when it is not referenced by active training plans or logged performance. |
| `assign_workout_plan` | `workout` | Company/coach | Assign visible days of a company training template to one accessible client, with an optional bounded date range. |
| `update_client_workout_plan_status` | `workout` | Company/coach | Activate or deactivate one training plan assigned to a client without changing the template. |
| `start_workout_session` | `workout` | Company/coach | Start or safely resume a client's non-WOD plan-day or freestyle training session. |
| `log_workout_performance` | `workout` | Company/coach | Upsert logged sets for one exercise in an accessible client's active non-WOD session. |
| `complete_workout_session` | `workout` | Company/coach | Complete an accessible client's non-WOD session without awarding duplicate XP on replay. |
| `update_workout_machine_preset` | `workout` | Company/coach | Merge bounded setup-field changes into a coach- or company-scoped exercise preset. |
| `update_workout_equipment_profile` | `workout` | Company/coach | Replace selected equipment for the company gym or one accessible client's home. |
| `create_wod` | `wod` | Company/coach | Create a draft WOD from an existing company workout template and plan moment. |
| `create_custom_wod` | `wod` | Company/coach | Create a custom draft WOD and backing workout plan after validating every exercise. |
| `update_wod` | `wod` | Company/coach | Update WOD content without changing its publication state. |
| `publish_wod` | `wod` | Company/coach | Publish a WOD when coach access, company settings, and publish permission allow it. |
| `archive_wod` | `wod` | Company/coach | Archive a WOD while retaining it for later republishing. |
| `client_ai_start_or_resume_my_workout_session` | `client_ai_workout` | Client AI | Start or resume the authenticated client's assigned plan-day or freestyle session; WOD and group sessions are rejected. |
| `client_ai_log_my_workout_performance` | `client_ai_workout` | Client AI | Upsert allowlisted sets and client-owned setup values in the authenticated client's active non-WOD, non-group session. |
| `client_ai_complete_my_workout_session` | `client_ai_workout` | Client AI | Complete the authenticated client's active non-WOD, non-group session through the completion and XP core. |
| `client_ai_update_my_wod_preferences` | `client_ai_wod` | Client AI | Update WOD participation or notifications for the authenticated client without changing company settings. |
| `client_ai_start_my_wod` | `client_ai_wod` | Client AI | Start a fresh published WOD session; an existing session must be resumed in the client app. |
| `client_ai_complete_my_wod` | `client_ai_wod` | Client AI | Complete the authenticated client's WOD through the scoring, verification, leaderboard, and XP flow. |
| `client_ai_log_my_food` | `client_ai_nutrition` | Client AI | Log a consumed food item or recipe for the authenticated client. |
| `client_ai_log_my_measurement` | `client_ai_measurements` | Client AI | Record a new measurement entry for the authenticated client. |
| `client_ai_check_in_my_habit` | `client_ai_habits` | Client AI | Submit a check-in value for an already assigned habit. |
| `client_ai_update_my_goals` | `client_ai_goals` | Client AI | Update safe stored goals for the authenticated client. |
| `client_ai_book_my_event` | `client_ai_bookings` | Client AI | Book an available calendar event for the authenticated client. |
| `client_ai_cancel_my_booking` | `client_ai_bookings` | Client AI | Cancel a planned booking for the authenticated client, respecting cancellation rules. |
| `client_ai_send_message_to_my_coach` | `client_ai_messages` | Client AI | Send a text message to a coach in the active company. |
| `client_ai_submit_my_checkup` | `client_ai_checkups` | Client AI | Submit answers for an assigned open check-up form. |

## Tool Execution

Call tools through standard JSON-RPC:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": "example-1",
  "method": "tools/call",
  "params": {
    "name": "search_clients",
    "arguments": {
      "query": "Jane"
    }
  }
}
```

Use `tools/list` after authorization to see the exact tools available for the
current grant. The result is filtered by subject type, modules, consent flags,
read-only state, write-tool permissions, and the relevant feature gate. Company
grants require the company MCP integration feature. Client AI grants require
client AI access for the connected company.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.