---
title: Operate and scope
summary: What runs, on which Mac, over which folders, and for whom: the job queue, profiles, models and access.
eyebrow: Capabilities
accent: wave
order: 7
outcome: operate
---

Some tools here are marked In the app. Granting a folder, creating an access token, moving the library and cloning a voice are things only you can do, in GroundSlate itself. An agent can read what it has access to, but it cannot give itself more.

## The job queue

| Tool | What it does |
| --- | --- |
| `job_status` | Check one background job by its `job_id` and return right away |
| `job_wait` | Wait until a background job finishes, or until `timeout` seconds pass |
| `job_events` | Queue updates newer than `after`: queued, started, 25/50/75% progress, done, error and cancelled. Includes other agents' jobs, so you can see why yours is waiting |
| `list_jobs` | What is running, what is queued and in what order, and what finished recently, across all AI apps, with how long each kind of job has usually taken on your Mac |
| `schedule_job` | Queue a long job for later: tonight, in eight hours, at 2am |
| `list_scheduled_jobs` | Everything scheduled to start later, soonest first, plus what ran recently |
| `cancel_scheduled_job` | Cancel a scheduled job before it starts |
| `cancel_job` | Stop one job by `job_id`, running or queued, whichever AI app started it |
| `stop_all_jobs` | Stop every running and queued job on this Mac, from every AI app |
| `set_max_concurrent` | Set how many jobs run at once, from 1 to 3 |
| `list_scratch` | Files in Scratch Outputs, newest first. Renders go here when you do not pass an `out_path` in a granted folder |
| `scratch_stats` | The size of Scratch Outputs: `{path, bytes, human, files}` |
| `empty_scratch` | Delete temporary files from Scratch Outputs. Data, Library Renders and Downloaded Media are never touched |
| `set_scratch_expiry` | Delete Scratch Outputs files automatically after a number of days |
| `suggest_keeps` | Ask the user what to keep. Suggests, file by file, whether to keep it for reuse, keep it with the project, or throw it away |
| `record_keep` | Save the user's answer to `suggest_keeps` and act on it |
| `storage_summary` | What is using your disk, by type: source media, metadata, downloads, renders, scratch, design library, projects, catalog, and deleted files not yet cleared |
| `storage_largest` | The biggest files, largest first, optionally within one category or media type |
| `storage_volumes` | Each drive the library uses: total space, free space, and how much GroundSlate uses |
| `storage_reclaim` | Where space can safely be freed, ranked by how safe it is first and size second |

## This Mac, and what may reach it

| Tool | What it does |
| --- | --- |
| `hello` | Say hello to GroundSlate. Called when the user pastes "tell GroundSlate MCP hello" from the app's setup screen, or says "tell GroundSlate hello" |
| `first_video` | Make a first video from one sentence, with no footage. Called when `hello` returns a `first_video` block, or whenever someone wants to see GroundSlate make something before anything is indexed. It renders a short film on your Mac and opens it for approval |
| `help` | The full documentation for one tool, beyond the short description an agent gets when it connects. For a first call to a tool, or after a refusal the agent does not recognise |
| `access_status` | A read-only view of access: server settings, default limits, every token with its usage, and the connected sessions |
| `system_requirements` | What your Mac has and what is missing: ffmpeg, Ollama and the chosen models, Playwright and Chromium for HTML rendering, and the face engine |
| `memory_status` | Your Mac's memory right now: `{total_gb, available_gb, used_pct}` |
| `token_usage` | How many tokens the local vision and reasoning models have used in this profile |
| `provision_status` | Whether this install is ready, in one read-only call. The same check the first-run screen shows |
| `list_models` | The models available on the current engine (MLX by default, or Ollama) and which are selected |
| `set_vision_model` | Choose the model used for indexing and analysis. A Hugging Face repo id from the curated list (such as `mlx-community/gemma-4-12B-it-4bit`) selects MLX; an Ollama tag selects Ollama |
| `set_reasoning_model` | Choose the text model used for summaries |
| `set_vision_tuning` | Tune the local vision engine to this Mac's speed. Use it when the log shows 'fallback' |
| `add_allowed_folder` | DISABLED for MCP clients. You choose which folders agents may use, in the app under Data then Allowed Folders |
| `folder_settings` | Where GroundSlate saves the files it makes |
| `create_token` | DISABLED for MCP clients. You create access tokens yourself, in the app's Access/Server settings |
| `list_tokens` | Every access token with its usage (calls, minutes, last seen), limits and live sessions. Read-only |
| `revoke_token` | DISABLED for MCP clients. You revoke access tokens yourself, in the app's Access/Server settings |
| `set_token_limits` | DISABLED for MCP clients. You set token limits yourself, in the app's Access/Server settings |
| `set_server_bind` | DISABLED for MCP clients. Opening the server to your local network (`0.0.0.0`) instead of this Mac only is your choice, made in the app's Access/Server settings |
| `set_media_policy` | Set what happens when media is unavailable |
| `set_activity_expiry` | DISABLED for MCP clients. You set how long the activity log is kept, in the app under Config then Data then Activity expiry |
| `set_data_dir` | DISABLED for MCP clients. You move the library yourself, in the app's Data Home settings |
| `set_downloads_dir` | DISABLED for MCP clients. You move Downloaded Media yourself, in the app |
| `set_renders_dir` | DISABLED for MCP clients. You move Library Renders yourself, in the app |
| `set_scratch_dir` | DISABLED for MCP clients. You move Scratch Outputs yourself, in the app |
| `list_profiles` | List your profiles. Each is a separate, self-contained library (clips, people, relationships, events, projects, watch folders) in its own folder |
| `create_profile` | Create a new empty profile, for example to keep family footage apart from a YouTube channel. Does not switch to it |
| `switch_profile` | Make a profile active by id (`prof_…`) or name. Every tool then uses it, and the app on screen switches too |
| `rename_profile` | Change a profile's name. Its id and folder stay the same, so nothing breaks |
| `delete_profile` | Archive a profile. Nothing is deleted: its folder moves to `&lt;library&gt;/.archived-profiles/` and can be moved back to restore it |
| `set_profile_image` | Set, replace or clear a profile's picture in the profile switcher |
| `list_blocked` | Faces that detection skips because someone blocked them, as in the People page's "Blocked faces" |
| `unblock` | Remove one block by its `bid`, so matching faces are recognized again |
| `clear_blocked` | Remove many blocks at once. With no `source`, clears every block except ghosts that can be restored (use `restore_person` for those) |
| `acknowledge_blocked` | Keep an at-risk block but stop the app's warning about it, by `bid` |
| `reverse_geocode` | Turn a clip's GPS into a place name, offline and private, using a built-in list of cities |
| `heal_place_labels` | Fix place labels that name the wrong city, without re-indexing |

## Your own service keys

| Tool | What it does |
| --- | --- |
| `list_provider_keys` | The keys you added in the app, under Data then Provider Keys, by name, with the hosts, methods and upload size each allows. Never the key itself. Keys belong to the profile they were added in, and switching off the Provider gateway on that tab stops them all |
| `provider_request` | Call a web service with one of your keys. GroundSlate attaches the key on the way out and refuses any reply that echoes it back. A clip or file from the library can be the upload. Text and JSON replies come back, up to a size limit; a reply that is a file does not |
| `provider_request_status` | Check on a `provider_request` that is still running |

## Web capture

| Tool | What it does |
| --- | --- |
| `browser_policy` | Read your web capture settings: whether it is on, the site mode, and the site lists |
| `request_browser_site` | Ask you to allow web capture of a site. This grants nothing by itself |
| `approve_browser_request` | DISABLED for MCP clients. Only you can approve a site request |
| `allow_browser_site` | DISABLED for MCP clients. Only you can allow a site, in the app |
| `block_browser_site` | DISABLED for MCP clients. Only you can block a site, in the app |
| `set_browser_enabled` | DISABLED for MCP clients. Only you can turn web capture on or off |
| `set_browser_sites_mode` | DISABLED for MCP clients. Only you can choose the site policy: block all, allow all, or a list |
