Skip to main content
Glama

create_or_update_python_task

Schedule and run Python scripts as macOS LaunchAgent jobs by creating or updating a launchd service with configurable triggers, environment, and process settings.

Instructions

Create/update a LaunchAgent from a Python script string and load it.

Args: task_name: Human friendly task name. Will be sanitized for label suffix. python_script: Python source code to execute. label_prefix: Reverse-domain prefix (e.g. "link.igtm.launchd-mcp"). run_at_load: Whether to run immediately after load. start_interval_seconds: Optional StartInterval in seconds. start_calendar: Optional object/array for StartCalendarInterval. watch_paths_csv: Optional comma-separated list for WatchPaths. queue_directories_csv: Optional comma-separated list for QueueDirectories. working_directory: Optional WorkingDirectory. Defaults to task directory. python_bin: Optional python executable path. Defaults to python3 on PATH. extra_path_csv: Optional comma-separated PATH entries prepended in plist. keep_alive: Optional KeepAlive (bool or object). throttle_interval_seconds: Optional ThrottleInterval in seconds. process_type: Optional ProcessType (Background/Standard/Adaptive/Interactive). nice: Optional Nice value. umask: Optional octal umask like "022" or "0o022". hard_resource_limits: Optional HardResourceLimits object. replace_existing: If true, bootout existing service first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
niceNo
umaskNo
task_nameYes
keep_aliveNo
python_binNo
run_at_loadNo
label_prefixNolink.igtm.launchd-mcp
process_typeNo
python_scriptYes
extra_path_csvNo
start_calendarNo
watch_paths_csvNo
replace_existingNo
working_directoryNo
hard_resource_limitsNo
queue_directories_csvNo
start_interval_secondsNo
throttle_interval_secondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the main mutation behavior (create/update and load), the destructive 'replace_existing' behavior ('bootout existing service first'), and relevant internals such as plist creation and default working directory. It does not cover permissions or error handling, but the core behavioral surface is well communicated.

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?

The opening sentence is immediately informative, and the Arg section is organized, scannable, and free of fluff. Each one-liner adds semantic value without repetition, which is appropriate for a tool with 18 parameters.

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

Completeness4/5

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

For a high-complexity tool with 18 parameters, the description covers every parameter with practical details and the output schema handles return values. It lacks only explicit edge-case or failre behavior, and could state when not to use it, but as an invocation guide it is substantially complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the Arg- list is essential. It covers all 18 parameters with meaningful semantics: format of start_calendar, csv shape of watch_paths_csv/queue_directories_csv, default for python_bin and working_directory, '022'/'0o022' umast format, and the destructive meaning of replace_existing. This fully compensates for the schema.

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?

The first sentence states a specific action, resource, and side effect: 'Create/update a LaunchAgent from a Python script string and load it.' This makes the tool's purpose immediately clear and distinguishes it from the sibling operations like remove_python_task, list_python_tasks, and bootout_service.

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

Usage Guidelines4/5

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

The description does not explicitly say 'use this when...' or list alternatives, but the action sentence plus sibling tool names make the context unambiguous: this is the tool for creating or updating a Python-script LaunchAgent. It is clear enough for an agent to choose correctly without further guidance.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/igtm/launchd-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server