Connect Claude Desktop to a live Smalltalk programming environment.
ClaudeSmalltalk
Connect Claude Desktop to a live Smalltalk programming environment. Browse classes, evaluate expressions, define methods, and run autonomous code review — all against a running Squeak or Cuis image.
Developed by John M McIntosh, Corporate Smalltalk Consulting Ltd. 2026
What It Does
The Squeak VM provides 14 MCP tools — evaluate code, browse classes, read/write methods, navigate hierarchies, and save the image. Claude Desktop accesses them via smalltalk_task, which delegates all Smalltalk interaction to a locally-configured LLM (Ollama for free/local, or Anthropic/OpenAI/xAI) — no source code leaves your machine.
You → Claude Desktop → smalltalk_task → Your LLM → Live Smalltalk Image (TCP)
(MCP server) (Ollama) (Squeak or Cuis)
The agent isolates Smalltalk reasoning from your chat model. Claude Desktop triggers the work, but a separate model (which can be local and free) does the actual Smalltalk coding.
Quick Start
1. Get a Smalltalk VM and Image
Squeak (recommended):
- Download Squeak 6.0 — the All-in-One package includes VM and image
- Follow SQUEAK-SETUP.md to install the MCP server into the image
Cuis Smalltalk:
- Clone Cuis-Smalltalk-Dev
- Follow CUIS-SETUP.md to build a ClaudeCuis image
macOS note: Place the VM and image files in
/Applications/or your home directory. Files in~/Documents/or~/Desktop/may be blocked by macOS privacy restrictions (TCC). See macOS Permissions below.
2. Create a Configuration File and Install
Follow CLAUDE-README-MCPB.md — it covers creating your smalltalk-mcp.json config and installing the desktop extension.
Copy a starter config from examples/ and set your VM paths:
cp examples/smalltalk-mcp-ollama.json smalltalk-mcp.json
# Edit vm.binary and vm.image to match your install
The VM auto-starts on first use — no manual launch needed. Token auth is handled automatically.
See examples/ for Anthropic, OpenAI, xAI, and MQTT variants.
3. Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"smalltalkAgent": {
"command": "uv",
"args": ["run", "/path/to/ClaudeSmalltalk/smalltalk_agent_mcp.py"],
"env": {
"SMALLTALK_MCP_CONFIG": "/path/to/smalltalk-mcp.json"
}
}
}
}
Requires Python 3.10+. Dependencies (httpx) are resolved automatically by uv. Install uv if you don't have it by following the official installation instructions there (for example via your package manager where available). If you choose to use an install script, review it first and follow any checksum or signature verification steps described in the uv documentation.
Alternatively, if you prefer not to use
uv, you can usepython3as the command — but you'll need to installhttpxyourself (pip install httpxorpip3 install httpx). For MQTT transport, also:pip install paho-mqtt.
4. Verify It Works
Open Claude Desktop and ask:
"List all Smalltalk classes that start with String"
Available Tools
Claude Desktop (1 tool)
| Tool | Description |
|---|---|
smalltalk_task |
Delegate any Smalltalk task to a locally-configured LLM. No source code leaves your machine. |
VM Tools (14, available to the agent)
| Tool | Description |
|---|---|
smalltalk_evaluate |
Execute Smalltalk code and return result |
smalltalk_browse |
Get class metadata (superclass, ivars, methods) |
smalltalk_method_source |
View source code of a method |
smalltalk_define_class |
Create or modify a class definition |
smalltalk_define_method |
Add or update a method |
smalltalk_delete_method |
Remove a method from a class |
smalltalk_delete_class |
Remove a class from the system |
smalltalk_list_classes |
List classes matching a prefix |
smalltalk_hierarchy |
Get superclass chain |
smalltalk_subclasses |
Get immediate subclasses |
smalltalk_list_categories |
List all system categories |
smalltalk_classes_in_category |
List classes in a category |
smalltalk_save_image |
Save the current image in place |
smalltalk_save_as_new_version |
Save image/changes as next version number |
All 14 tools are also available directly via the st CLI (openclaw/smalltalk.py).
Configuration Reference
Supported LLM Providers
| Provider | API | Cost | Config key |
|---|---|---|---|
| Ollama | /v1/chat/completions | Free (local) | "provider": "ollama" |
| Anthropic | /v1/messages (httpx) | Paid | "provider": "anthropic" |
| OpenAI | /v1/chat/completions | Paid | "provider": "openai" |
| xAI | /v1/chat/completions | Paid | "provider": "xai" |
All prov
Tools (15)
smalltalk_taskDelegate any Smalltalk task to a locally-configured LLM.smalltalk_evaluateExecute Smalltalk code and return resultsmalltalk_browseGet class metadata (superclass, ivars, methods)smalltalk_method_sourceView source code of a methodsmalltalk_define_classCreate or modify a class definitionsmalltalk_define_methodAdd or update a methodsmalltalk_delete_methodRemove a method from a classsmalltalk_delete_classRemove a class from the systemsmalltalk_list_classesList classes matching a prefixsmalltalk_hierarchyGet superclass chainsmalltalk_subclassesGet immediate subclassessmalltalk_list_categoriesList all system categoriessmalltalk_classes_in_categoryList classes in a categorysmalltalk_save_imageSave the current image in placesmalltalk_save_as_new_versionSave image/changes as next version numberEnvironment Variables
SMALLTALK_MCP_CONFIGrequiredPath to the smalltalk-mcp.json configuration fileConfiguration
{"mcpServers": {"smalltalkAgent": {"command": "uv", "args": ["run", "/path/to/ClaudeSmalltalk/smalltalk_agent_mcp.py"], "env": {"SMALLTALK_MCP_CONFIG": "/path/to/smalltalk-mcp.json"}}}}