Skip to main content
Glama

PHP, Symfony & Laravel playground

Get a playground starting project

get_starter
Read-only

Returns the starting project of a playground (Symfony 8, Laravel 13 or plain PHP 8.5 with Composer autoloading): its files, the paths you may create or edit, and, for Symfony and plain PHP, the Composer packages you may add. Call it before create_sandbox to write code that fits the project. Configuration files (config/, bootstrap/) are listed in config_files; ask for their content with include_config when you need to change one.

Input Schema

NameRequiredDescriptionDefault
languageNoLanguage of the starting project and its page: "fr" for a French-speaking user, else "en".en
frameworkYesThe playground: "symfony", "laravel" or "php" (no framework).
include_configNoAlso return the content of the configuration files (config/, bootstrap/), e.g. to reproduce a bug that depends on the configuration.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, and the description adds real context beyond that: the return payload's three components, the fact that config/ and bootstrap/ files are surfaced only as a listing in config_files, and the remedy (include_config) for reading them. It still doesn't clarify whether non-config files come back with contents or as a bare listing.

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?

Three sentences, front-loaded with what is returned before the call-order advice and the config escape hatch. The parenthetical framework/version list partially duplicates the enum values but earns its place by signaling supported runtime versions.

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?

With no output schema, the description carries the burden of describing returns and does so at a useful level of detail for a read-only starter-project fetch. The remaining ambiguity is whether file contents are included outside config files, which matters for an agent deciding between this and read_sandbox.

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%, so all three parameters are already documented, and the description largely restates the framework options and include_config behavior. Its one genuine addition is naming the output field config_files, which the schema cannot convey since there is no output schema. Baseline 3 applies given the schema does the heavy lifting.

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 ('Returns the starting project of a playground') and enumerates exactly what comes back: files, creatable/editable paths, and allowed Composer packages. The framework variants named in the parenthetical map directly to the enum, so an agent knows the scope without opening the schema.

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 an explicit ordering rule tied to a named sibling: 'Call it before create_sandbox to write code that fits the project.' It also routes config-file needs to the include_config flag. It does not mention read_sandbox or state when this tool is unnecessary, so it falls short of a full when/when-not treatment.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.