Powder Toy MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PT_PORT | No | TCP port for the MCP server to communicate with the Lua plugin (default is 8787). | 8787 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Always call read_instructions first, before any execute call.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_instructionsA | pt read_instructions: READ THIS FIRST, before using execute. Returns usage docs for every pt command. |
| executeB | pt execute: run a command against the running Powder Toy game. IMPORTANT: call read_instructions first; it documents every command and its syntax. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools have completely distinct roles: one returns documentation, the other runs commands. There is no realistic way to confuse them, and the descriptions reinforce the required ordering (read_instructions before execute).
Both names are snake_case, but read_instructions follows a verb_noun pattern while execute is a bare verb, and read_instructions is a somewhat unusual verb choice for 'get docs'. Minor deviation only; still predictable and readable.
Two tools is on the thin side, though the pattern is deliberate: a single generic dispatcher plus a docs loader. It avoids a bloated per-command surface, but leaves only one actual capability-bearing tool for the whole domain.
Because execute can invoke any underlying pt command, the surface is nominally broad, and read_instructions is meant to cover discovery. However, there is no structured command enumeration, no typed parameters, and no validation or error contract beyond prose docs, which pushes discovery and correctness entirely onto the agent reading a doc blob.