pixelblaze
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pixelblazeCreate a new pattern that looks like rain falling through the layers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PixelBlaze AI
Create and iterate on LED patterns for a PixelBlaze controller using Claude Code. An MCP server connects Claude directly to your PixelBlaze so it can create, update, and manage patterns on the device.
The included patterns and design guidance (CLAUDE.md) are built for a 2D grid mapped as rows and columns — specifically an edge-lit acrylic depth display where each row is a separate physical layer. The Y axis represents discrete layers (not a smooth gradient), so patterns are designed to create strong visual contrast and coordinated animation across layers while running smooth effects within each layer.
This approach works well for any 2D PixelBlaze setup where one axis has significantly fewer pixels than the other (e.g. 8 rows x 32 columns), and where per-row visual differentiation matters more than smooth vertical blending.
Note: This project assumes the PixelBlaze's Mapper has already been configured correctly for your hardware. The mapper defines the 2D pixel map that tells PixelBlaze which physical LED corresponds to which (x, y) coordinate — patterns depend on this being set up before they can work properly.
Adapting for your hardware
The patterns auto-detect the grid dimensions at startup using mapPixels(), so they adapt to different sizes without code changes. To adapt the design guidance for a different display:
Edit
CLAUDE.mdto describe your hardware — pixel layout, how light works physically, what effects look good and which don'tUpdate the pixel map on your PixelBlaze to match your physical layout
Ask Claude to help you adapt — for example:
"I have a 16x16 LED matrix mounted flat on a wall. Both axes have equal resolution and smooth blending. Update CLAUDE.md to reflect this — we don't need to treat Y as discrete layers, and effects should work as true 2D patterns."
"I have a cylindrical display with 12 rings of 30 LEDs each. X wraps around the cylinder and Y is the vertical axis. Update CLAUDE.md so patterns account for the X-axis wrapping and create effects that look good on a cylinder."
Related MCP server: pixoo-mcp-server
What's in the box
src/pixelblaze_mcp/-- MCP server that exposes PixelBlaze controls (create/update/delete patterns, set brightness, read device info, etc.)docs/pixelblaze/-- Cached PixelBlaze language reference, available to Claude via thedocs_get_api_referencetoolpatterns/-- Pattern JS files with documentation headers, tracked in gitCLAUDE.md-- Project instructions that Claude reads automatically (hardware context, design principles, coding conventions, pattern templates)
Setup
Prerequisites
PixelBlaze on your local network
Claude Code CLI installed
uv (Python package manager)
Python 3.11+
1. Clone and install dependencies
git clone <repo-url>
cd pixelblaze-ai
uv sync2. Create the MCP config
Create .mcp.json in the project root (this file is gitignored). This tells Claude Code how to connect to your PixelBlaze:
{
"mcpServers": {
"pixelblaze": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/path/to/pixelblaze-ai",
"run",
"python",
"-m",
"pixelblaze_mcp.server"
],
"env": {
"PIXELBLAZE_HOST": "192.168.2.97"
}
}
}
}Replace /path/to/pixelblaze-ai with the absolute path to this directory, and 192.168.2.97 with your PixelBlaze's IP.
3. Start Claude Code
cd pixelblaze-ai
claudeClaude will automatically pick up CLAUDE.md for project context and .mcp.json for the PixelBlaze connection.
Usage
Once Claude Code is running, you can ask it to create and modify patterns conversationally. Claude has access to the PixelBlaze API reference and can deploy patterns directly to the device.
Sample prompts
Creating patterns:
"Create a new pattern that looks like rain falling through the layers"
"Make a bouncing ball effect with configurable speed and size"
"Create an aurora effect using Perlin noise"
Modifying patterns:
"The heartbeat effect has too much dark time between beats, make it faster"
"Make the fire pattern symmetric -- both edges should be white-hot"
"Add more randomization to the comet so it doesn't repeat the same path"
Adjusting parameters:
"Increase the brightness of the fireflies effect"
"The aurora layers look too similar -- add more color contrast between them"
"Make the glitch effect more chaotic with panel blackouts and freezes"
Working with the display:
"List all patterns on the device"
"Switch to the plasma pattern"
"Set the display brightness to 50%"
Available MCP tools
Claude has access to these PixelBlaze tools:
Tool | Description |
| Create and activate a new pattern |
| Update an existing pattern's code |
| Remove a pattern from the device |
| List all patterns on the device |
| Switch to a specific pattern |
| See which pattern is running |
| Read a pattern's source code |
| Set display brightness (0-1) |
| Read current slider/control values |
| Set a slider/control value |
| Get device status and config |
| Get the PixelBlaze language reference |
Project structure
pixelblaze-ai/
.mcp.json # MCP server config (gitignored)
CLAUDE.md # Project instructions for Claude
pyproject.toml # Python project config
src/pixelblaze_mcp/ # MCP server source
docs/pixelblaze/ # Cached API reference
patterns/ # Pattern JS files (deployed to device)Available Tools
14 toolsdocs_fetch_pageA
Fetch the text content of a PixelBlaze documentation page from the web.
Use this to look up specific pages on electromage.com/docs/ that aren't covered by the cached API reference, such as hardware-specific guides, GPIO, networking, or advanced topics.
Args: url: Full URL of the documentation page (e.g. https://electromage.com/docs/GPIO/).
Returns the page text content, or an error message if unreachable.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses it returns page text or error message if unreachable. Could be more explicit about being read-only, but sufficient for a fetch tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, front-loaded paragraphs with no extraneous information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists (not needing return format explanation), the description covers purpose, usage, parameter, and basic return behavior completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'url' is described with format and example, adding meaning beyond the schema which has no description. Schema coverage is 0%, so this compensation is excellent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fetch text), resource (PixelBlaze documentation page), and distinguishes from sibling tools like docs_get_api_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (for specific pages not covered by cached API reference) and gives examples of topics. Implicitly contrasts with cached reference tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_get_api_referenceA
Get the full PixelBlaze language reference (electromage.com/docs/language-reference).
This covers all built-in functions available when writing pattern code: render(index), beforeRender(delta), color functions (hsv, rgb), math/waveform functions (time, wave, triangle, sin, cos, etc.), array functions, 2D/3D rendering, UI controls (sliders, pickers), language features and limitations, variables, constants, and more.
Always call this before writing or editing any PixelBlaze pattern code.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It accurately describes the tool as retrieving a static reference document, with no contradictions. The behavior is straightforward and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: first line states action, then bullet-like list, then usage instruction. Every sentence adds value with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description covers purpose, content, and usage. It is complete and sufficient for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100%), so baseline is 4. The description adds value by detailing the content covered beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets the full PixelBlaze language reference, listing covered topics. It distinguishes itself from sibling tools like docs_fetch_page and docs_get_mapper_reference by specifying it is for the full language reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes explicit instruction: 'Always call this before writing or editing any PixelBlaze pattern code.' This provides clear context, though it does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_get_mapper_referenceA
Get the PixelBlaze 2D/3D pixel mapping reference documentation.
This covers how to define spatial coordinates for pixels using the mapper, coordinate systems, and the render2D/render3D pattern functions.
Call this when working with multi-dimensional LED layouts or spatial effects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It describes the tool as retrieving documentation, which implies read-only behavior, but does not explicitly state idempotency, response format, or side effects. The behavior is straightforward, but additional detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, content summary, usage guidance. Perfectly front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the existence of an output schema, the description is complete. It covers what the tool does, what content it provides, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema provides full coverage. Baseline is 4 for zero parameters. The description does not add parameter info, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves PixelBlaze 2D/3D pixel mapping reference documentation. It distinguishes from siblings like docs_get_api_reference and docs_fetch_page by specifying the exact resource and content scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Call this when working with multi-dimensional LED layouts or spatial effects.' This clearly indicates when to use, though it does not explicitly exclude cases or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_create_patternA
Create a new pattern on the PixelBlaze with the given JavaScript code, then activate it.
Args: name: Display name for the new pattern. code: PixelBlaze JavaScript source code (must define a render(index) function).
Returns a dict with the new pattern's 'id' and 'name'.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses that the tool activates the pattern after creation and requires the code to define a render(index) function, providing important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences plus clear Args block, all concise and front-loaded with the main action. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no annotations, and existing output schema (mentioned in description), this covers purpose, parameter semantics, side effect, and return value completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description adds meaning. It explains that 'name' is a display name and 'code' must be PixelBlaze JavaScript with a render(index) function, which goes beyond the schema's title-only fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Create' and resource 'pattern on PixelBlaze', and adds 'then activate it', clearly distinguishing this from sibling tools like pixelblaze_update_pattern or pixelblaze_set_active_pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool by mentioning activation, but does not explicitly state when not to use it or provide alternatives. The purpose is clear but lacks explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_delete_patternC
Delete a pattern from the PixelBlaze device.
Args: pattern_id: The ID of the pattern to delete.
Returns a confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'Returns a confirmation message' without detailing side effects (e.g., permanent deletion, impact on active pattern). The agent is left uncertain about irreversible consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with two sentences and a parameter line. It front-loads the purpose, but the lack of detail makes it feel under-specified rather than efficiently lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description does not need to explain return values, but it still fails to cover important contextual details like safety considerations or error conditions. For a simple deletion operation, it is barely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the schema: 'The ID of the pattern to delete.' With 0% schema description coverage, the description should provide more context, such as how to obtain the pattern_id or its expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a pattern from the PixelBlaze device,' specifying a definite verb and resource. It distinguishes from sibling tools like pixelblaze_create_pattern, pixelblaze_update_pattern, and pixelblaze_list_patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. It does not mention prerequisites, such as the pattern not being currently active, or when deletion is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_get_active_patternA
Get the currently active (running) pattern on the PixelBlaze.
Returns a dict with 'id' and 'name' of the active pattern.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool reads the active pattern and returns a dict, but does not mention potential edge cases (e.g., when no pattern is active) or authentication requirements. Acceptable for a simple getter but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with action and resource, followed by return value. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (not shown) but description covers the return dict structure. For a no-parameter, simple read tool, this is largely complete. Minor omission: no mention of error conditions or what happens if no pattern is running.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Per guidelines, baseline for 0 params is 4. Description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Get the currently active (running) pattern'), identifies the resource ('PixelBlaze'), and specifies the return value (dict with 'id' and 'name'). This distinguishes it from siblings like pixelblaze_list_patterns (lists all) and pixelblaze_set_active_pattern (sets).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While the purpose is straightforward, the description does not contrast it with similar tools (e.g., use this instead of list_patterns to check only the active pattern).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_get_controlsA
Get the UI controls for the currently active pattern.
Returns a list of control dicts, each with 'name', 'value', and 'type' keys. The controls correspond to exported slider/toggle/picker variables in the pattern code.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure responsibility. It mentions return format but does not state that the operation is read-only, nor does it cover error conditions, prerequisites like a connected device or active pattern, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the purpose, the second adds detail. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains the return format and purpose. However, given the presence of an output schema, the description already covers it. Missing context about error handling, prerequisites, or required device state. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, schema description coverage is trivially 100%. The description adds value by explaining the return format but does not need to add parameter semantics. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets UI controls for the currently active pattern and specifies the return format. This is a specific verb-resource combination that distinguishes it from sibling tools like pixelblaze_set_control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when UI controls are needed, but lacks explicit guidance on when to use or not use this tool versus alternatives. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_get_device_infoA
Get hardware and runtime information about the PixelBlaze device.
Returns a dict with keys: host, pixel_count, fps, uptime_s, version_major, version_minor.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 return structure (dict with specific keys), implying a read-only, safe operation. It could mention it's non-destructive, but given the nature of 'get', it's sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: one defining the action, the other specifying the return format. No redundant information; every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, output-schema-present tool, the description is complete. It explains the exact output structure and that no inputs are required. There is no missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so baseline is 4. The description adds value by listing the return keys, which is especially helpful since no output schema is visible. It clarifies what the tool provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves hardware and runtime information of a PixelBlaze device, and lists specific keys. This distinguishes it from sibling tools that manage patterns, brightness, or controls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys usage by stating the tool's purpose. While alternatives are not explicitly mentioned, the sibling tools are all for different tasks, so the context is clear. No exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_get_pattern_codeA
Get the JavaScript source code of a pattern.
Args: pattern_id: The pattern ID to retrieve code for.
Returns the JavaScript source code string.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavior. It states it is a read operation returning source code, but does not mention error handling, permissions, or side effects. Adequate for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: a one-line summary followed by an Args section and a return note. Every sentence is essential and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter and an output schema, the description covers the essentials. It could mention error handling or prerequisites, but overall it is sufficiently complete for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that pattern_id is 'The pattern ID to retrieve code for' and notes the return value is a JavaScript source code string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the JavaScript source code of a pattern', using a specific verb and resource. It distinguishes this tool from siblings like pixelblaze_create_pattern or pixelblaze_list_patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving pattern source code but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_list_patternsA
List all patterns stored on the PixelBlaze device.
Returns a list of dicts with 'id' and 'name' keys.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It only mentions the return format, not whether the operation is safe, read-only, or has side effects. The read-only nature is implied by 'list', but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: first states purpose, second states return format. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and an output schema. The description fully covers the action and return structure, so completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description does not need to add parameter info as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all patterns stored on the PixelBlaze device', specifying the action (list) and resource (patterns). This distinguishes it from siblings like pixelblaze_create_pattern or pixelblaze_get_active_pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when or when-not guidance is given, but the purpose is straightforward and usage is implied for retrieving a list of patterns. The simplicity of the tool partially compensates, but alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_set_active_patternA
Switch the PixelBlaze to run a specific pattern by its ID.
Args: pattern_id: The pattern ID to activate (from pixelblaze_list_patterns).
Returns a confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates a mutation (switch) and returns confirmation, but lacks details on side effects, permissions, latency, or whether the change is instantaneous. The minimal disclosure limits transparency beyond the obvious action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, with a clear purpose statement followed by compact parameter documentation. Every sentence serves a purpose: stating the action, explaining the parameter, and indicating the return value. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple (one parameter, mutation), the description lacks details about preconditions (e.g., device must be connected) or consequences (e.g., stops previous pattern). The existence of an output schema (not shown) may supplement, but the description alone feels adequate but minimal for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no description for 'pattern_id' (0% coverage), but the tool description adds: 'pattern_id: The pattern ID to activate (from pixelblaze_list_patterns).' This explains the parameter's meaning and source, providing clear semantic value beyond the schema alone. Could be enhanced with format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Switch the PixelBlaze to run a specific pattern by its ID,' clearly identifying the action (switch/run), resource (pattern), and selection mechanism (by ID). This distinguishes it from siblings like pixelblaze_get_active_pattern (read) and pixelblaze_list_patterns (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'from pixelblaze_list_patterns' for pattern_id, implying a prerequisite step, but does not explicitly state when to use this tool versus alternatives (e.g., get vs set) or provide exclusions. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_set_brightnessA
Set the global brightness of the PixelBlaze.
Args: value: Brightness level from 0.0 (off) to 1.0 (full brightness).
Returns a confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only mentions 'Returns a confirmation message', but omits critical details like idempotency, persistence of the setting, whether it requires an active connection, or the effect of invalid values. This leaves the agent guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one stating the purpose and one explaining the parameter and return. It is front-loaded, efficient, and contains no fluff. Every sentence is necessary and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, output schema exists), the description provides adequate context. It explains the parameter and the return value. It could be slightly more complete by noting that the brightness is set immediately or globally applies, but overall it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the single parameter 'value' with a clear range (0.0 off to 1.0 full) and purpose. Since the input schema has no description (0% coverage), the description fully compensates by adding meaning. However, it could mention type constraints (e.g., numeric) but that's standard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'global brightness of the PixelBlaze', making the purpose immediately obvious. It distinguishes this tool from siblings like 'pixelblaze_set_active_pattern' or 'pixelblaze_set_control' by focusing specifically on global brightness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, the sibling 'pixelblaze_set_control' might also affect brightness, but there is no clarification. There are no examples, prerequisites, or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_set_controlA
Set the value of a UI control (slider, toggle, etc.) on the active pattern.
Args: name: The control variable name (as it appears in pixelblaze_get_controls). value: Numeric value (sliders: 0.0–1.0; toggles: 0 or 1).
Returns a confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It specifies return type (confirmation message) and value ranges, but does not disclose prerequisites (e.g., must the pattern be active? what if control doesn't exist?) or side effects (e.g., immediate visual change).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (few sentences) with a clear Args section. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no enums, has output schema), the description is fairly complete. It could mention error handling or the requirement for an active pattern, but overall it provides adequate information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description adds essential meaning: 'name' is the control variable name as from pixelblaze_get_controls, and 'value' is numeric with specific ranges per control type. This significantly aids correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set the value'), the resource ('UI control on the active pattern'), and provides specific examples (slider, toggle). It distinguishes from sibling tools like pixelblaze_set_brightness and pixelblaze_set_active_pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when you need to change a UI control value on the active pattern) but does not explicitly state when not to use it or mention alternatives like pixelblaze_get_controls for reading current values. The context is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelblaze_update_patternA
Replace the JavaScript source code of an existing pattern.
Args: pattern_id: The ID of the pattern to update. code: New PixelBlaze JavaScript source code.
Returns a confirmation message.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| pattern_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'Replace the JavaScript source code' but does not disclose side effects (e.g., whether other pattern properties are preserved, if there are auth requirements, or if the operation is reversible). This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence stating the action, followed by a bullet list of parameter descriptions. Every element adds value with no redundancy. The key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description's note 'Returns a confirmation message.' is adequate. However, for a mutation tool with no annotations, additional context about error cases (e.g., pattern not found) or idempotency would enhance completeness. Still, basic expectations are met.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the tool description adds concise meanings for both parameters: 'pattern_id: The ID of the pattern to update' and 'code: New PixelBlaze JavaScript source code.' This provides essential context beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Replace' with the resource 'JavaScript source code of an existing pattern', clearly distinguishing it from sibling tools like pixelblaze_create_pattern (create new) and pixelblaze_delete_pattern (remove). The action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating existing patterns but does not explicitly state when to use this tool versus creating a new pattern or deleting/recreating. No alternative tools or conditionals are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v0.1.0- First observed
docs_fetch_page - First observed
docs_get_api_reference - First observed
docs_get_mapper_reference - First observed
pixelblaze_create_pattern - First observed
pixelblaze_delete_pattern - First observed
pixelblaze_get_active_pattern - First observed
pixelblaze_get_controls - First observed
pixelblaze_get_device_info - First observed
pixelblaze_get_pattern_code - First observed
pixelblaze_list_patterns - First observed
pixelblaze_set_active_pattern - First observed
pixelblaze_set_brightness - First observed
pixelblaze_set_control - First observed
pixelblaze_update_pattern
TDQS
Each tool targets a distinct action: documentation tools are separated by page type, and device tools cover unique operations (CRUD, controls, brightness, info) with no overlap.
All tools follow a consistent snake_case format with the server name prefix (docs_ or pixelblaze_) followed by a verb and noun, making the purpose clear.
14 tools is well-scoped for managing PixelBlaze patterns, controls, brightness, and documentation; neither too sparse nor overwhelming.
Covers full lifecycle of patterns (CRUD, activation), brightness, control manipulation, device info, and essential documentation references with no obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage your IoT device fleet directly from Claude. Create device templates with datastreams and events, provision new devices, read live sensor data, and control outputs. The Blynk connector integrates with the Blynk IoT platform, enabling direct configuration and monitoring of connected devices and infrastructure.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
Read, edit, publish, and preview your pepita websites from Claude.
- mcpOAuthio.styleforge
Brand-aware creative studio for Claude: 200+ tools for on-brand ads, video, email and campaigns.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables control of Philips Hue lights through Claude and other LLM interfaces using the OpenHue CLI.610MIT
- AlicenseAqualityAmaintenanceEnables programmatic control of Divoom Pixoo LED matrices to display layered pixel art, animations, and hardware-rendered scrolling text. Users can compose complex visual scenes, push images, and manage device settings like brightness and channels through an LLM.72098Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Claude to draw on a live tldraw canvas from prompts, with real-time visualization in a browser. Provides tools for creating, updating, deleting shapes and retrieving canvas state.14MIT
- FlicenseNot gradedqualityCmaintenanceEnables natural language control of Ableton Live through Claude, including session management, track and clip creation, device parameter adjustment, and browser browsing.1-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tomnz/pixelblaze-claude'
If you have feedback or need assistance with the MCP directory API, please join our Discord server