PHP, Symfony & Laravel Playground MCP
A remote MCP server that allows AI assistants to create, read, and manage shareable PHP, Symfony, and Laravel playgrounds. It generates links containing code that runs in the user's browser via WebAssembly, enabling agents to provide executable code snippets without server-side execution or storage.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://apprendre.forelse.fr/mcpWhat its tools do
3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Create a Symfony playground with a /hello/{name} controller that answers in JSON.
- Show me in a Laravel playground how to validate a form with a FormRequest.
- Make a PHP playground with Carbon that shows how many days are left until Christmas.
- Isolate a service injection problem and make a Symfony playground that reproduces it.
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- php-playground 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 3 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {},
"logging": {},
"completions": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
get_starter — Get a playground starting project
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.
{
"type": "object",
"required": [
"framework"
],
"properties": {
"language": {
"enum": [
"en",
"fr"
],
"type": "string",
"default": "en",
"description": "Language of the starting project and its page: \"fr\" for a French-speaking user, else \"en\"."
},
"framework": {
"enum": [
"symfony",
"laravel",
"php"
],
"type": "string",
"description": "The playground: \"symfony\", \"laravel\" or \"php\" (no framework)."
},
"include_config": {
"type": "boolean",
"default": false,
"description": "Also return the content of the configuration files (config/, bootstrap/), e.g. to reproduce a bug that depends on the configuration."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false
}create_sandbox — Create a shareable PHP playground
Creates a shareable link to a playground that runs the given code in the browser (PHP in WebAssembly), with no account and nothing to install. Give only the files you change or add: the others stay as in the starting project (see get_starter). Nothing is stored: the code travels inside the link, after the "#". The page asks the visitor before running code received by a link.
{
"type": "object",
"required": [
"framework",
"files"
],
"properties": {
"files": {
"type": "object",
"description": "The files to change or add, by path relative to the project root (e.g. \"src/Controller/AccueilController.php\"), with their full content.",
"additionalProperties": {
"type": "string"
}
},
"language": {
"enum": [
"en",
"fr"
],
"type": "string",
"default": "en",
"description": "Language of the page: \"fr\" for a French-speaking user, else \"en\"."
},
"packages": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Symfony and plain PHP playgrounds: Composer packages to add, from the \"packages\" list of get_starter (e.g. \"symfony/security-bundle\", \"nesbot/carbon\"). For Symfony, their Flex recipe is applied when the page opens."
},
"framework": {
"enum": [
"symfony",
"laravel",
"php"
],
"type": "string",
"description": "The playground: \"symfony\", \"laravel\" or \"php\" (no framework)."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}read_sandbox — Read a shared PHP playground
Reads a playground link (https://<site>/bac-a-sable/... or /en/playground/...#code=..., or a short link /bac-a-sable/s/<id> or /en/playground/s/<id>): returns the framework and the files that differ from the starting project, to review or fix the code someone shared.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The full playground link: a short link (/s/<id>), or a long one including the part after \"#code=\"."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1410 ms
- 95th percentile latency
- 1410 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1410 ms · metadata changed · 3 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http php-symfony-laravel-playground-mcp https://apprendre.forelse.fr/mcpCodex
codex mcp add php-symfony-laravel-playground-mcp --url https://apprendre.forelse.fr/mcpCursor
{
"mcpServers": {
"php-symfony-laravel-playground-mcp": {
"url": "https://apprendre.forelse.fr/mcp"
}
}
}Cline
{
"mcpServers": {
"php-symfony-laravel-playground-mcp": {
"type": "streamableHttp",
"url": "https://apprendre.forelse.fr/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"php-symfony-laravel-playground-mcp": {
"type": "http",
"url": "https://apprendre.forelse.fr/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http php-symfony-laravel-playground-mcp https://apprendre.forelse.fr/mcpClaude Desktop
https://apprendre.forelse.fr/mcpWindsurf
{
"mcpServers": {
"php-symfony-laravel-playground-mcp": {
"serverUrl": "https://apprendre.forelse.fr/mcp"
}
}
}Let your agent find its tools
Find servers like PHP, Symfony & Laravel Playground MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.