Starlight for developers

The Starlight MCP server

The Starlight MCP server is one server for every Starlight product. Anyone can read products and prices with no sign-in. A member who signs in can let an agent read their own account as well, limited to what they allow.

Server address

https://mcp.starlightglobal.industries/mcp

Connect

In any app or agent that supports remote MCP servers, add a server with the address above. Products and prices work straight away, with no sign-in or key.

In Claude, open Settings, then Connectors, choose Add custom connector, and paste the address above.

With Claude Code, run:

claude mcp add --transport http starlight https://mcp.starlightglobal.industries/mcp

Tools

Every tool only reads. None of them spends credits, changes a setting or deletes anything.

Without signing in

ToolWhat it answers
list_productsEvery Starlight product: what it does, where it is, and whether it is paid for from Starlight credits.
get_pricesThe current price list for a Starlight product, or for every product when none is named. Each price is exact, some are fractions of a cent, and the list carries the version every statement line records.
how_starlight_billsHow Starlight counts and prices work: small, whole pieces of work, each priced from what it costs, paid from one balance of Starlight credits.
estimate_recordingWhat a Sluice recording of a given length is expected to cost and how long it is expected to take, before you record it. The cost is the same projection Sluice quotes when a recording starts, from the current prices, at a typical number of things in view. The time is a planning range for processing, with the slowest figure measured so far beside it, and the upload time when you give your upload speed. After you sign in, the recording's own cost and timeline say what it actually took.
upload_recording_linkA link that opens Sluice's upload page with the project, the words to look for and the transcription choice already filled in, so the person can choose their recordings in their browser and upload them there. Use it when you cannot send the files yourself, for example in a chat: the files never pass through you. Nothing is uploaded or charged until the person opens the link, signs in, chooses the files and starts the upload, and Sluice shows the cost first. Words are the things to look for, such as "cordless drill" or "paint cans". Needs no sign-in.

After signing in

Each of these tools needs the permission in its row. A connection only sees the tools its member allowed.

ToolWhat it answersPermission
estimate_costWhat Sluice would charge to process a recording, worked out from the current prices before anything is uploaded. Give its length in seconds and, to include receiving and holding the file, its size in bytes. A real recording is charged for the outlines found in it, so give masks_per_frame for a busier or sparser scene than the usual 15. Each prompt finds at most 200 outlines in a frame and a frame can be prompted any number of times, so a busy frame can hold thousands; give prompts to check masks_per_frame against that. The charge is per outline, not per prompt. Needs sign-in.Sign-in only
get_accountYour Starlight credits balance, whether your account is in good standing, and whether new work can start. Needs sign-in with permission to see your balance.account:read
list_recordingsEvery one of your Sluice recordings, newest activity first, including ones still uploading or not yet charged: its state, how much of it has uploaded, what it has cost so far, and the details that set each apart: its length, resolution, frame rate, codec, bitrate, size and files, and how many frames, outlines and items processing produced. A detail is null where it was not recorded, and older recordings carry only their length and frame rate. Needs sign-in with permission to see your Sluice recordings.sluice:read
get_recordingWhere one of your Sluice recordings has got to: its state, how many of its passes have finished and what share of the frames they cover, how far finding, describing and grouping objects have each got, the transcript's word count, the work queued and the latest failures, the items found so far and when each appears, how sure the model was that each thing it looked for was in view at its best frame, and any problems noted. Each pass looks at twice the frames of the one before, so share_of_frames, not the count of passes, is how much of the work is done. Passes are counted from 1. Needs sign-in with permission to see your Sluice recordings.sluice:read
get_recording_costsWhat one of your Sluice recordings has cost so far: the total, the total for each stage and each unit, and how much of it is on an invoice and how much is on your balance still to be invoiced, with the recording's details as list_recordings gives them. Every charged_micro is money charged, in millionths of a dollar, and each list sums to the total. Needs sign-in with permission to see your Sluice recordings.sluice:read
get_recording_timelineWhere one of your Sluice recordings spent its time: when each piece of work started and finished, how its time split between the graphics processor, the processor, decoding, waiting for the graphics processor and reading or writing, how much of the job's wall-clock time something was running and how much it waited, the longest waits and what they fell between, the time per stage, and the job's timeline marks. The recording's details (length, resolution, frame rate, codec, bitrate, size, frames examined, items) come with it, so the time can be read against what was processed. Every *_ms is milliseconds. A started_at is the finish less the compute time, so it is an estimate. Needs sign-in with permission to see your Sluice recordings.sluice:read
get_recording_picturesHow many of the items found in one of your Sluice recordings have a picture to show, and why the rest do not: the picture is still on the processing computer, it has not been reported yet, or the item has no picture at all. Also lists which passes over the recording have found items and which have made sharper pictures. Counts only, never the pictures. Needs sign-in with permission to see your Sluice recordings.sluice:read
connection_statusWhich Starlight account this connection signs in to, what its owner allowed, and until when. Needs sign-in.Sign-in only
get_planYour Cadence calendar: the time blocks Cadence has planned for your tasks on the days you ask for, your events on those days, and every task it could not fit or that will finish after its deadline. The plan is worked out from your tasks, hours and settings each time, exactly as the Cadence app does, so it moves as time passes and as tasks change. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
list_tasksYour Cadence tasks, soonest planned first: each one's project and stage, how much time is left, its priority and deadline, and when it is next planned or why it could not be. Occurrences of repeating tasks inside the planning horizon are included. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
get_taskEverything about one Cadence task: its fields and notes, every block it is planned in, and whether it is late or could not be placed and why. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
list_projectsYour Cadence projects, each with its stages in the order they must happen and the open tasks in each stage in their set order, with the time left in each. In a project with stages, no task starts before the tasks of earlier stages are planned to finish; in a sequential project each task also waits for the one before it. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
list_eventsThe fixed events in Cadence (appointments and other busy time no task is planned over) between two days. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
list_repeating_tasksYour Cadence repeating tasks: how often each repeats, how long it takes, when each occurrence is due, and its next occurrences and whether they are done. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
get_cadence_settingsYour Cadence settings (time zone, how far ahead it plans, block size and breaks, reminder lead time) and your schedules, each a named set of weekly working hours that tasks are planned into. Needs sign-in with permission to see your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs.cadence:read
save_taskAdds a task to Cadence, or changes one when task_id is given; a change sets only the fields you give, and null clears a field. Cadence then plans it into your working hours; the answer says when, or why it could not. Changing one occurrence of a repeating task changes that occurrence alone. A date is YYYY-MM-DD and a time is YYYY-MM-DDTHH:MM, both in your Cadence time zone, or a full timestamp with its offset. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
update_tasksFinds the tasks that match where and makes the same change to each: the fields in set, with null clearing a field. Every condition in where must hold, and at least one besides status is needed. It previews by default: the answer lists what would change, each task's values before and after, and how the plan would move, and nothing is saved until dry_run is false. At most 200 tasks change in one call; a larger match is refused whole. Occurrences of repeating tasks are not matched; change those with save_repeating_task. A task moved to another project or stage goes last there, keeping the order it had. A date is YYYY-MM-DD and a time is YYYY-MM-DDTHH:MM, both in your Cadence time zone, or a full timestamp with its offset. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
complete_taskMarks a task done, or not done again with done false. For an occurrence of a repeating task (an id ending in a date) only that occurrence is marked. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
move_taskMoves a task to a project and stage, at a position in that stage's order. Order decides which of otherwise equal tasks is planned first, and in a sequential project which waits for which. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
save_projectAdds a project, or changes one when project_id is given. stages, when given, is the whole list of stages in the order they must happen: keep a stage by giving its stage_id (to rename or reorder it), add one by leaving stage_id out, and remove one by leaving it out of the list, which takes its tasks out of any stage. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
create_project_planAdds a whole project at once: its stages in order and the tasks in each, in order, the same shape the Cadence app builds when you compose a project from a description. At most 199 tasks. The answer says how much time it takes and when Cadence plans it to finish. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
save_eventAdds a fixed event (busy time no task is planned over), or changes one when event_id is given. A date is YYYY-MM-DD and a time is YYYY-MM-DDTHH:MM, both in your Cadence time zone, or a full timestamp with its offset. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
save_repeating_taskAdds a task that repeats, or changes one when repeating_task_id is given. freq is daily, weekly or monthly, every interval days, weeks or months from starting_on. A weekly one repeats on by_day; a monthly one on day_of_month, or on the nth by_day of the month when nth is given (1 to 5, or -1 for the last). Each occurrence is due due_days after its date. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
save_scheduleAdds a schedule (a named set of weekly working hours tasks are planned into), or changes one when schedule_id is given. windows, when given, replaces every day's hours. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
update_cadence_settingsChanges your Cadence settings; only the fields you give change. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write
delete_cadence_itemDeletes a task, project, event, repeating task or schedule. Deleting a project keeps its tasks, without a project. A schedule that tasks still use cannot be deleted, nor your last one. To skip one occurrence of a repeating task, mark it done instead. Needs sign-in with permission to change your Cadence tasks, and AI assistant access turned on in Cadence (Account, AI assistants) on a device that syncs. The change reaches your devices the next time each one syncs.cadence:write

Sign-in and consent

The first time an agent calls a tool that needs an account, the server answers that the member must sign in, and the app opens a Starlight sign-in page. The member signs in, then chooses which permissions the app may use and for how long: 30, 90 or 365 days. They can untick any permission they would rather not share.

A connected app can read what its member allowed and nothing else. It cannot spend credits, change a setting or delete a recording.

To disconnect an app, a member opens their Starlight account and chooses Disconnect under Connected agents. From then on that app can no longer read the account.

Protocol details

The server speaks MCP over Streamable HTTP. Each request is a JSON-RPC message sent with POST, and each answer is plain JSON. The server keeps no session, so there is no session header to carry.

Supported protocol versions

2025-11-25, 2025-06-18, 2025-03-26

Sign-in follows MCP authorization, which is OAuth 2.1. The server publishes its protected resource metadata, which names the Starlight account site as the authorization server. Clients use the authorization code flow with PKCE, and identify themselves with a client ID metadata document or by registering dynamically.

Protected resource metadata

https://mcp.starlightglobal.industries/.well-known/oauth-protected-resource/mcp

A call to a signed-in tool without a token answers HTTP 401 with a challenge that starts the client's sign-in. A token that lacks the tool's permission answers HTTP 403, which asks the member to allow more.