Skip to main content
Glama
Spacepal MCP Server

Spacepal MCP Server

Apply profile

apply_profile
DestructiveIdempotent

Apply a saved profile to replace every Space's names, colours, notes and automations; the current active set is saved first for switching back.

Instructions

Switch to one of the user's saved profiles, replacing the names, colours, notes and automations of every Space with the profile's. If a profile was active, Spacepal first saves the current set under it, so the user can switch back. If none was active, the current names are not saved anywhere and are lost, so ask the user to save them as a profile first. Windows and desktops are not changed. Unlike apply_template, which uses built-in starter names, this uses the user's own saved sets. Get valid names from list_profiles; fails with the list of names if the profile does not exist. Ask the user first.

Input Schema

NameRequiredDescriptionDefault
nameYesProfile name from list_profiles. Matching ignores case.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.2.3
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changedv0.2.2
    • addedInput schema / properties / name / description
      Added value: +"Profile name from list_profiles. Matching ignores case."
  3. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds the crucial detail of what is destroyed and when: an active profile caches the current set, no active profile means the current names are lost. It also scopes the blast radius ('Windows and desktops are not changed') and documents the failure mode returning the list of valid names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then consequences, then the sibling contrast and the safety instruction. Every sentence carries a distinct fact (destruction, preservation, scope limits, error behavior, alternative) with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive mutation with no output schema, the description covers what changes, what is preserved, what is lost, how failures surface, and which sibling to use instead. Nothing an agent needs to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents case-insensitive matching, so the baseline applies. The description adds meaning the schema lacks: where to source the name (list_profiles) and what happens on an unknown name (fails with the list of names), which helps the agent recover from a bad value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Switch to one of the user's saved profiles') and enumerates exactly what gets replaced (names, colours, notes, automations of every Space). It also explicitly contrasts itself with the sibling apply_template, so the agent can route correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit preconditions and an alternative: check list_profiles for valid names, use apply_template when built-in starter names are wanted, and 'Ask the user first.' It also tells the agent what to do in the risky case (ask the user to save a profile before applying).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.