PyxelBLOCK
MCP server for AI-assisted retro game development with Pyxel
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Let AI agents play, watch, and measure [Pyxel](https://github.com/kitao/pyxel) games. pyxel-mcp is an MCP server that runs a Pyxel script headlessly, feeds it scheduled input, stops when a condition holds, and hands back the facts: screenshots, pixel grids, game state, assets, audio, and frame diffs.
[](https://pypi.org/project/pyxel-mcp/) [](https://pypi.org/project/pyxel-mcp/) [](https://github.com/kitao/pyxel-mcp/actions/workflows/test.yml) [](https://github.com/kitao/pyxel-mcp/blob/main/LICENSE) [](https://registry.modelcontextprotocol.io)
Both images come from one run call against Pyxel's bundled 10platformer.py: 150 frames, right held from frame 0, jumps scheduled at frames 25, 70, and 110, a video snapshot, and an inline screenimage snapshot.
Why
An agent can write a Pyxel game in seconds, but it cannot open a window, press the arrow keys, or look at the screen. Editor-bound engines solve this with MCP servers that live inside the editor. Pyxel has no editor process to attach to, so pyxel-mcp drives the game itself:
- Headless execution. Every call runs the script in a fresh subprocess wit
fe65784e0479OBSERVED · 2026-10-09Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add pyxel-mcp -- None pyxel-mcp==1.3.1
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- declared (2 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (5)
exec(code, mod.__dict__) # noqa: S102 - trusted local script, by design
return bool(eval(self._code, namespace, namespace))
assert UntilCondition("open('/etc/hosts')").evaluate(make_target()) is Falseassert base64.b64decode(images[0].data) == (tmp_path / "b.png").read_bytes()
Gates applied: no_behavioural_pass.
fe65784e0479full audit observations/trust-audit/mcp-server/kitao__pyxel.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-09 | fe65784e0479 | BLOCK | D | 69 | first audit |
Questions
What is the Pyxel MCP server?
MCP server for AI-assisted retro game development with Pyxel
Is Pyxel safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Pyxel need?
No credential environment variables were found in its source, so it appears to need none.
How does Pyxel run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as pyxel-mcp.
How current is this page?
The grade is for one exact copy of the source (fe65784e0479), read on 2026-10-09. The repository is watched and re-audited when it changes.