Skip to main content
Glama
dwooods
by dwooods

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SKYLIGHT_EMAILNoDeprecated. Email used for fallback email/password login (replays Skylight's web login form). Prefer the stored OAuth credential.
SKYLIGHT_TOKENNoExplicit API token; overrides the stored OAuth credential.
SKYLIGHT_FRAME_IDNoYour household frame ID (the number in https://ourskylight.com/my-skylight/<number>). Treat it as a secret.
SKYLIGHT_PASSWORDNoDeprecated. Password used for fallback email/password login. Stored in plaintext in your MCP client config; prefer the stored OAuth credential.
SKYLIGHT_TIMEZONENoDefault timezone used for date/time calculations.America/New_York
SKYLIGHT_AUTH_TYPENoAuth type for SKYLIGHT_TOKEN: 'bearer' (default) or 'basic' (only with SKYLIGHT_TOKEN).bearer

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_calendar_eventsA

Get calendar events from Skylight.

Use this to answer questions like:

  • "What's on my calendar today?"

  • "What do we have scheduled this weekend?"

  • "Are there any events on Friday?"

Returns a list of events with their titles, times, and details.

get_source_calendarsA

Get connected calendar sources synced to Skylight.

Use this to answer:

  • "Which calendars are synced to Skylight?"

  • "What calendar accounts are connected?"

Returns a list of connected calendar sources (Google, iCloud, etc.).

create_calendar_eventA

Create a new calendar event in Skylight.

Use this when:

  • Scheduling a new event: "Add a dentist appointment on Friday at 2pm"

  • Creating family activities: "Schedule soccer practice every Saturday at 10am"

  • Adding reminders: "Put Mom's birthday on the calendar"

Parameters:

  • summary (required): Event title (e.g., "Dentist Appointment")

  • startsAt (required): Start time in ISO format or natural language

  • endsAt (required): End time in ISO format or natural language

  • allDay: Set to true for all-day events

  • description: Additional notes for the event

  • location: Where the event takes place

  • categoryIds: Family member IDs to associate with the event

Returns: The created event details.

Related: Use get_family_members to get category IDs for assignments.

update_calendar_eventA

Update an existing calendar event.

Use this when:

  • Changing event time: "Move the dentist appointment to 3pm"

  • Updating event details: "Add location to the meeting"

  • Renaming an event: "Change 'Doctor' to 'Dr. Smith checkup'"

Parameters:

  • eventId (required): ID of the event to update (from get_calendar_events)

  • summary: New title for the event

  • startsAt: New start time (ISO format)

  • endsAt: New end time (ISO format)

  • description: Updated notes

  • location: Updated location

  • categoryIds: Updated family member assignments

Returns: The updated event details.

delete_calendar_eventA

Delete a calendar event from Skylight.

Use this when:

  • Canceling an event: "Remove the dentist appointment"

  • Deleting old events: "Delete the meeting from yesterday"

Parameters:

  • eventId (required): ID of the event to delete (from get_calendar_events)

Note: This permanently removes the event. For recurring events, this may only delete one instance.

get_choresA

Get chores from Skylight.

Use this to answer:

  • "What chores do I need to do today?"

  • "Show me this week's chores"

  • "What's on the chore chart?"

  • "What chores does [name] have?"

Returns chores with their assignees, due dates, and completion status.

create_choreB

Add a new chore to Skylight.

Use this when the user wants to:

  • Add a new task like "empty the dishwasher"

  • Assign chores to family members

  • Create recurring chores

The chore will appear on the Skylight display.

update_choreA

Update an existing chore in Skylight.

Use this when:

  • Marking a chore as complete: "Mark 'dishes' as done"

  • Changing chore assignment: "Reassign the trash to Dad"

  • Updating chore details: "Change the time for the homework chore"

Parameters:

  • choreId (required): ID of the chore (from get_chores)

  • summary: New description for the chore

  • status: "completed" to mark done, "pending" to mark incomplete

  • date: New due date

  • time: New due time

  • assignee: New family member assignment

Returns: The updated chore details.

delete_choreA

Delete a chore from Skylight.

Use this when:

  • Removing an old or irrelevant chore

  • Deleting a chore that was added by mistake

Parameters:

  • choreId (required): ID of the chore to delete (from get_chores)

Note: This permanently removes the chore. For recurring chores, this may only delete one instance.

get_listsA

Get all lists from Skylight (grocery lists, to-do lists, etc.).

Use this to see what lists are available before adding items. Returns list names, types (shopping/to_do), and item counts.

get_list_itemsA

Get items from a specific Skylight list.

Use this to answer:

  • "What's on the grocery list?"

  • "Show me my to-do list"

  • "What items are on [list name]?"

Returns items organized by section with their completion status.

create_listA

Create a new list in Skylight.

Use this when:

  • Creating a new shopping/grocery list

  • Creating a new to-do list

Parameters:

  • label (required): Name of the list (e.g., "Vacation Packing", "Weekly Groceries")

  • kind (required): "shopping" for grocery/shopping lists, "to_do" for task lists

  • color: Optional color for the list

Returns: The created list details.

update_listA

Update an existing list's name or settings.

Use this when:

  • Renaming a list

  • Changing a list's type or color

Parameters:

  • listId: ID of the list to update (use get_lists to find IDs)

  • listName: Name of the list to update (alternative to listId)

  • label: New name for the list

  • kind: New type ("shopping" or "to_do")

  • color: New color for the list

Returns: The updated list details.

delete_listA

Delete a list from Skylight.

Use this when:

  • Removing an old or unused list

  • Deleting a temporary list

Parameters:

  • listId: ID of the list to delete (use get_lists to find IDs)

  • listName: Name of the list to delete (alternative to listId)

Note: This permanently deletes the list and all its items.

create_list_itemA

Add an item to a Skylight list.

Use this when:

  • Adding something to the grocery list: "Add milk to the shopping list"

  • Creating a to-do item: "Put 'call doctor' on my to-do list"

  • Adding items to any list

Parameters:

  • label (required): The item text (e.g., "Milk", "Call doctor")

  • listId: ID of the list to add to

  • listName: Name of the list to add to (e.g., "Grocery List")

  • section: Category within the list (e.g., "Dairy", "Produce")

If no list is specified, adds to the default grocery list.

Returns: Confirmation of the added item.

Related: Use get_lists to see available lists and their IDs.

update_list_itemA

Update a list item (mark complete, rename, move to section).

Use this when:

  • Marking an item as complete: "Check off milk from the list"

  • Renaming an item: "Change 'milk' to '2% milk'"

  • Moving an item to a different section

Parameters:

  • itemId (required): ID of the item to update

  • listId (required): ID of the list containing the item

  • label: New text for the item

  • status: "completed" to check off, "pending" to uncheck

  • section: Move to a different section

Returns: The updated item details.

delete_list_itemA

Remove an item from a list.

Use this when:

  • Removing an item that was added by mistake

  • Deleting an item instead of marking it complete

Parameters:

  • itemId (required): ID of the item to delete

  • listId (required): ID of the list containing the item

Note: This permanently removes the item. Use update_list_item with status="completed" to check it off instead.

create_taskA

Add a task to the Skylight task box.

The task box holds unscheduled tasks that can later be assigned to specific dates.

Use this when the user says:

  • "Add XYZ to my task list"

  • "Remind me to do ABC" (without a specific date)

  • "Put 'clean garage' on the task box"

The task will appear on the Skylight display in the task box.

get_family_membersA

Get family members/profiles from Skylight.

Shows who can be assigned chores and their profile details.

Use this to answer:

  • "Who's in our family on Skylight?"

  • "What family members are set up?"

  • "Who can I assign chores to?"

get_frame_infoA

Get Skylight household/frame information.

Useful for setup verification and debugging.

Use this to answer:

  • "Show Skylight household info"

  • "What's my frame ID?"

get_devicesA

List Skylight devices in the household.

Use this to answer:

  • "What Skylight devices do we have?"

  • "How many Skylight frames are connected?"

get_avatarsA

Get available avatar options for Skylight profiles.

Use this when:

  • Setting up a new family member profile

  • Changing someone's profile picture

  • Exploring available avatar options

Returns: List of available avatars with their IDs and details.

get_colorsA

Get available color options for Skylight profiles and lists.

Use this when:

  • Choosing a color for a family member profile

  • Setting a list color

  • Exploring available color options

Returns: List of available colors with their IDs and hex values.

get_messagesA

Get messages (Skylight calls them "nudges") shown on the family frame.

Use this when:

  • Checking what has already been posted to the frame

  • Avoiding a duplicate before sending a reminder

Returns: Messages grouped by day with time, text, recipients and sender. Defaults to the last 7 days through the next 7 days. Max 31 days.

send_messageA

Post a message to the family frame (shown to everyone, on all devices, now).

PERMANENT: Skylight has no way to delete a message, and it appears on the family frame for the whole household immediately.

Two-step by design. Called without confirm it only previews and posts nothing. Show the user the exact text and get a clear yes, then call again with confirm: true. Never pass confirm: true on the first call, and never invent message text the user did not ask for. Read aloud is OFF by default; enable it only if the user asked.

Check get_messages first to avoid posting a duplicate.

update_messageA

Edit the text (and optionally the sender) of a message already on the frame.

Only messages sent to everyone on all devices and not repeating can be edited; anything else must be edited in the Skylight app. Delivery time and read-aloud setting are kept. The edit is visible on the frame immediately. Get the message ID from get_messages (looks within 31 days either side of today).

get_week_overviewA

One compact view of the family's week: calendar events, chores and tasks (with status and assignee), planned meals, and list summaries, day by day, plus any scheduling conflicts.

Use this first when planning anything (dinners, errands, who drives). It replaces separate calls to get_calendar_events, get_chores, get_meal_sittings and get_lists for the same range.

Parameters:

  • date: first day (YYYY-MM-DD, 'today', 'monday'...). Default today.

  • days: how many days (1โ€“31). Default 7. Or give dateEnd instead.

  • includeLists: include grocery/to-do list summaries. Default true.

find_conflictsA

Find calendar events that overlap in time within a date range. All-day events never count as conflicts.

Returns each overlapping pair with the overlap window, or "none".

find_free_slotsA

Find free time of at least a given length on each day, between an earliest and latest time, around the calendar's timed events. All-day events are not treated as busy.

Use for "when could we do X this week?" questions.

plan_week_mealsA

Schedule several meals in one call - Plus subscription required.

Each entry names a date, a meal (category name like "Dinner", default Dinner), and either a free-text summary ("Thai green curry") or a saved recipeId. A slot that already has a meal is skipped and reported, never overwritten. Use dryRun first to see what would change.

Parameters:

  • meals: list of { date, meal?, summary?, recipeId? }

  • dryRun: report the plan without writing. Default false.

  • addRecipesToGroceryList: for entries with a recipeId, also push that recipe's ingredients to the grocery list. Default false.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 30 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and descriptions explicitly clarify boundaries like create_task vs create_chore vs create_list_item. The main overlap is get_week_overview duplicating individual getters for calendar, chores, and lists, plus possible confusion between dedicated conflict/free-slot tools and overview features.

Naming Consistency5/5

Names consistently use snake_case and a predictable verb_noun pattern: get_*, create_*, update_*, delete_*, plus send_message and plan_week_meals. The special verbs still fit the resource-oriented convention and do not introduce inconsistent casing or styles.

Tool Count3/5

The server covers several distinct domains (calendar, chores, lists, messages, meals, profiles/devices), so many CRUD tools are justified. However, 30 tools is heavy for an MCP surface, and some metadata getters or aggregate/individual overlaps could likely be consolidated.

Completeness3/5

Calendar events, chores, lists, and list items have full CRUD coverage, and messages are well covered given the permanent-post limitation. Notable gaps remain around tasks (create only, with no standalone update/delete) and meals (planning exists, but retrieval/update/delete lifecycle is thin).

Maintenance

ActivityMaintained
ResponsivenessNo issues