Back to Marketplace
FREE
Unvetted
Career Boost

Smalltalk MCP Skill

Interact with live Smalltalk images (Squeak, Cuis) via MCP. Evaluate code, browse classes, view method source, define and modify classes and methods, query hierarchies and categories in a running Smalltalk environment.

Install in one line

mfkvault install smalltalk-mcp-skill

Requires the MFKVault CLI. Prefer MCP?

New skill
No reviews yet
New skill
🤖 Claude Code
FREE

Free to install — no account needed

Copy the command below and paste into your agent.

Instant access • No coding needed • No account needed

What you get in 5 minutes

  • Full skill code ready to install
  • Works with 1 AI agent
  • Lifetime updates included
SecureBe the first

Description

--- name: smalltalk-mcp description: Interact with live Smalltalk images (Squeak, Cuis) via MCP. Evaluate code, browse classes, view method source, define and modify classes and methods, query hierarchies and categories in a running Smalltalk environment. --- # Smalltalk MCP Skill This skill connects Claude to a live Smalltalk image (Cuis or Squeak) via MCP. ## Setup (if tools are not yet connected) If the Smalltalk MCP tools are not available, help the user configure them: ### Prerequisites - Python 3.10+ - A Smalltalk VM: [Cuis](https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev) or [Squeak](https://squeak.org/downloads/) - The ClaudeSmalltalk repository: `git clone https://github.com/CorporateSmalltalkConsultingLtd/ClaudeSmalltalk.git` - Build a `ClaudeCuis.image` following CUIS-SETUP.md. For Squeak, see SQUEAK-SETUP.md. ### Step 1: Install Python dependency ```bash pip install httpx ``` If using Anthropic as the agent LLM provider, also: `pip install anthropic` ### Step 2: Create `smalltalk-mcp.json` Create this file in the ClaudeSmalltalk repo directory. All paths must be absolute. Example using Anthropic (copy from `examples/smalltalk-mcp-anthropic.json`): ```json { "version": "1.0", "model": { "provider": "anthropic", "name": "claude-sonnet-4-6", "maxTokens": 256000, "apiKeyEnv": "ANTHROPIC_API_KEY" }, "vm": { "squeak": "/absolute/path/to/Squeak6.0.app/Contents/MacOS/Squeak", "cuis": "/absolute/path/to/CuisVM.app/Contents/MacOS/Squeak" }, "image": { "selected": "cuis", "squeak": "/absolute/path/to/ClaudeSqueak.image", "cuis": "/absolute/path/to/ClaudeSmalltalk/ClaudeCuis.image" }, "transport": { "type": "stdio", "args": ["--mcp"], "timeout": 180 } } ``` The user must set their API key: `export ANTHROPIC_API_KEY=sk-ant-...` Other provider examples are in the `examples/` folder (Ollama, OpenAI, xAI, MQTT). ### Step 3: Configure Claude Desktop The user must edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS): ```json { "mcpServers": { "smalltalkAgent": { "command": "python3", "args": ["/absolute/path/to/ClaudeSmalltalk/smalltalk_agent_mcp.py"], "env": { "SMALLTALK_MCP_CONFIG": "/absolute/path/to/ClaudeSmalltalk/.smalltalk-mcp.json" } } } } ``` An example is at `examples/claude_desktop_config.json`. All paths must be absolute. After saving, Claude Desktop will reload and the 13 Smalltalk tools will become available. --- ## How to use the tools Once connected, you have 13 MCP tools for the live Smalltalk image. ### When to use `smalltalk_task` vs individual tools **Use `smalltalk_task`** for complex, multi-step work: - "Review the Random class" — the agent browses, reads methods, and produces an assessment - "Audit the Set class for correctness" - "Define a Counter class with increment/decrement methods and tests" - "Compare OrderedCollection and Array implementations" `smalltalk_task` delegates to a separate LLM configured in `.smalltalk-mcp.json`. You provide a natural language task and get back a complete result. This is the preferred tool for anything requiring multiple browse/evaluate steps. **Use individual tools** for quick, single operations: - `smalltalk_evaluate` — run code: `3 factorial`, `Date today` - `smalltalk_browse` — get class metadata (superclass, ivars, method lists) - `smalltalk_method_source` — read one method's source code - `smalltalk_list_classes` — find classes by prefix - `smalltalk_hierarchy` / `smalltalk_subclasses` — explore inheritance ### Best practices **Always browse before modifying.** Before defining or changing a method, use `smalltalk_browse` to understand the class structure and `smalltalk_method_source` to read existing implementations. **Class-side methods.** Use the `side` parameter with value `"class"` when viewing or defining class-side methods. The `smalltalk_browse` tool returns both instance and class methods. **Class definitions.** Use standard Smalltalk class definition syntax: ``` Object subclass: #MyClass instanceVariableNames: 'foo bar' classVariableNames: '' poolDictionaries: '' category: 'MyCategory' ``` **Method source format.** Provide complete method source including the selector line: ``` increment count := (count ifNil: [0]) + 1. ^ count ``` **Testing.** After defining methods, verify with `smalltalk_evaluate`: ``` MyClass new increment ``` Run SUnit tests: `MyClassTest buildSuite run` **Exploring the system.** Start broad, then narrow: 1. `smalltalk_list_categories` — see what's in the image 2. `smalltalk_classes_in_category` — explore a category 3. `smalltalk_browse` — understand a class 4. `smalltalk_method_source` — read specific methods ## Tool reference | Tool | Description | |------|-------------| | `smalltalk_task` | Run a complex task via the agent loop (preferred for multi-step work) | | `smalltalk_evaluate` | Execute Smalltalk code and return the result | | `smalltalk_browse` | Get class metadata: superclass, ivars, instance and class methods | | `smalltalk_method_source` | View source code of a method (use `side: "class"` for class side) | | `smalltalk_define_class` | Create or modify a class definition | | `smalltalk_define_method` | Add or update a method on a class | | `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 for a class | | `smalltalk_subclasses` | Get immediate subclasses of a class | | `smalltalk_list_categories` | List all system categories | | `smalltalk_classes_in_category` | List classes in a category |

Preview in:

Security Status

Unvetted

Not yet security scanned

Time saved
How much time did this skill save you?

Related AI Tools

More Career Boost tools you might like