Skip to main content
Glama
brynj-digital

laravel-forge-readonly-mcp

Get Background Process Log

get_background_process_log
Read-onlyIdempotent

Fetch a daemon or queue worker's log to diagnose stuck or crashing queues; use a process ID from list_background_processes and optionally tail the last N lines.

Instructions

The log of a daemon or queue worker — what a stuck or crashing queue is actually printing. Get the id from list_background_processes. Requires the server:create-daemons scope; that scope ALSO grants creating daemons and enabling Horizon/Octane/Pulse, so a strictly read-only token will get a 403 here while list_background_processes still works.

Input Schema

NameRequiredDescriptionDefault
serverYesServer id from list_servers.
tail_linesNoReturn only the last N lines, where failures appear (default 200). Output is additionally capped by character count, so a very long single line cannot flood the response.
organizationNoOrganisation slug. Optional when the server has a default configured.
background_processYesProcess id from list_background_processes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, but the description goes well beyond them by disclosing the required server:create-daemons scope, warning that the same scope also grants daemon creation and Horizon/Octane/Pulse enablement, and predicting the 403 outcome for read-only tokens. That auth-failure behavior is exactly the kind of context annotations cannot carry.

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

Conciseness4/5

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

Purpose is front-loaded in the first clause and the auth caveat is consolidated into a single dense second sentence. The 'what a stuck or crashing queue is actually printing' framing is slightly colorful padding, but the remainder earns its length.

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 4-parameter read tool with 100% schema coverage and no output schema, the description supplies purpose, id sourcing, and the non-obvious permission behavior. Nothing critical is missing, though a brief note on how the output is shaped or bounded would round it out.

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

Parameters3/5

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

Schema description coverage is 100%, including the tail_lines default, character cap, and the origin of both id parameters, so the schema already does the heavy lifting and baseline 3 applies. The description only lightly reinforces the id source already documented in the schema.

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

Purpose4/5

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

The description names a specific resource (the log of a daemon or queue worker) and frames the use case sharply with 'what a stuck or crashing queue is actually printing,' which separates it from generic output tools like get_command_output. It doesn't explicitly name which log sibling it is not (get_scheduled_job_output, get_deployment_log), but the resource and routing pointer to list_background_processes make the target unambiguous.

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?

Gives a clear triggering situation (diagnosing a stuck or crashing queue) plus an explicit prerequisite chain: get the id from list_background_processes first. It also tells the agent that a strictly read-only token will 403 here while list_background_processes still works, which is real routing guidance, though it doesn't discuss when a different log tool is the right call.

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