pet-tools-mcp

pet-tools-mcp

Enables AI agents to code and debug Commodore PET software using the VICE emulator, with CLI and MCP tools for session control, screen reading, memory manipulation, and testing.

Category
Visit Server

README

<p align="center"> <img src="img/logo.png" alt="PET Project logo" width="360"> </p>

PET Project

License: MIT Python 3.11+ Built with AI

PET Project is a set of tools, skills, and an MCP to enable agentic Commodore PET coding and debugging using the VICE emulator.

The Python package is imported as petlib, installed as pet-tools, and driven by the pet command-line tool.

Install

Requires Python 3.11+, VICE 3.5+ (provides xpet and petcat), and the cc65 suite (ca65/ld65, for assembling 6502 programs). Then install this package.

macOS (Homebrew):

brew install vice cc65
pip install -e .

Debian / Ubuntu:

sudo apt install vice cc65
pip install -e .

Quickstart

pip install -e .
pet session start --model pet4032      # boot an emulated PET 4032
pet run tests/programs/hello-basic/program.bas   # tokenize + load + RUN
pet run tests/programs/hello-asm/program.s       # assemble + load + RUN (needs cc65)
pet screen                             # read the screen as text
pet basic type prog.bas --run          # type a program via the keyboard
pet mem read '$8000' 64                # hex dump of screen RAM
pet break add start                    # symbolic breakpoint (uses .lbl symbols)
pet wait --break                       # block until it fires
pet step 5 && pet reg                  # single-step, inspect (PC annotated)
pet continue                           # resume
pet disk create work.d64 && pet disk put work.d64 game.prg game
pet session start --disk work.d64      # boot with the disk attached
pet disk boot work.d64                 # or attach+run mid-session
pet rom info                           # identify the loaded ROM set
pet rom disasm CHROUT 16               # annotated live disassembly
pet session stop

pet test run mytest.yaml               # declarative YAML test (format in docs/cli.md)
pet test programs                      # run every example program as a test

Every command takes --json for machine-readable output — the intended interface for AI agents.

Using with AI coding agents

This toolset is built to be driven by an AI agent. There are two ways an agent can use it — pick either or both:

  • The CLI — every pet command takes --json. Works with any agent that can run shell commands; nothing to configure.
  • The MCP serverpet-tools-mcp exposes the same operations as MCP tools over stdio. CLI and MCP share the same sessions, so they are interchangeable.

Either way, the agent should read skills/pet-development/SKILL.md (the PET workflows and pitfalls) before starting — the per-agent steps below make that happen automatically.

The MCP config used by several agents below is this one block:

{
  "mcpServers": {
    "pet-tools": { "command": "pet-tools-mcp" }
  }
}

Setup was verified against each agent's docs in July 2026; if something has moved, check the agent's current MCP documentation.

Any agent with a shell (simplest — works everywhere)

  1. Install (see above) — that's the whole setup.
  2. Start your task prompt with: "Read docs/cli.md and skills/pet-development/SKILL.md, then …"

Claude Code

  1. From the repo root, install the skills so Claude discovers them automatically:

    mkdir -p .claude/skills && cp -R skills/* .claude/skills/
    
  2. (Optional) Add the MCP server: claude mcp add pet-tools -- pet-tools-mcp

  3. Ask for what you want — e.g. paste a prompt from demos/.

No CLAUDE.md edits are needed: installed skills load on demand, and the MCP tools describe themselves.

OpenAI Codex

  1. Add the MCP server: codex mcp add pet-tools -- pet-tools-mcp (or add [mcp_servers.pet_tools] with command = "pet-tools-mcp" to ~/.codex/config.toml).
  2. Codex has no skills mechanism, so tell it where the docs are: add one line to the repo's AGENTS.md"For Commodore PET work, first read skills/pet-development/SKILL.md and docs/cli.md."
  3. Paste a prompt from demos/.

Cursor

  1. Create .cursor/mcp.json in the repo (or ~/.cursor/mcp.json globally) containing the JSON block above.
  2. Create a rule (.cursor/rules/pet.mdc) — or a plain AGENTS.md — with the same one-liner: "For Commodore PET work, first read skills/pet-development/SKILL.md and docs/cli.md."
  3. Paste a prompt from demos/.

Gemini CLI

  1. Add the JSON block above to .gemini/settings.json in the repo (or ~/.gemini/settings.json globally).
  2. Add the same read-the-skill one-liner to GEMINI.md.
  3. Paste a prompt from demos/.

Google Antigravity

  1. Open the MCP store → Manage MCP ServersView raw config and add the JSON block above (the file is ~/.gemini/config/mcp_config.json).
  2. Add the read-the-skill one-liner to AGENTS.md.
  3. Paste a prompt from demos/.

Demos — try it with your AI agent

demos/ is a set of ready-to-paste prompts, graded from a first BASIC program up to writing Snake in 6502 assembly. To use one:

  1. Set up your agent (one section up — or use any shell agent with no setup).
  2. Open a demo file and copy its prompt.
  3. Paste it into your agent and watch it write, run, and debug real PET software on the emulated machine.

The reference example programs (with expected screen output, runnable as regression tests via pet test programs) live in tests/programs/.

Status

v1 complete — all planned phases shipped: sessions, screen, memory, registers, pet build (ca65/ld65), pet basic (petcat), pet load/pet run, symbolic breakpoints and watchpoints with conditions, pet step/finish/ continue/until, the pet wait synchronization primitive, pet disk (create/ls/put/get/boot via c1541), pet rom info/disasm, pet test (declarative YAML tests + example programs), the pet-tools-mcp MCP server, and the AI enablement docs (the pet-development and 6502-assembly skills, the machine references, and the docs/cli.md man pages).

ROM tooling reads ROM bytes from your running emulator and ships only original label annotations — no Commodore-copyrighted code lives in this repo.

AI Disclosure

PET Project is developed primarily by AI — Anthropic's Claude, working through Claude Code — under human direction: a human sets the goals, reviews the designs and plans, and approves the work; the AI writes the specs, plans, code, tests, and documentation. Every change is verified by the automated test suite, including integration tests that run against a real VICE emulator, before it lands. The project also exists for AI use — these tools are built so AI agents can write and debug Commodore PET software — making it a working example of AI-built developer tooling.

License

MIT. VICE is a separate GPLv2+ program invoked as a subprocess; it is not bundled and must be installed separately.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured