smalltalk-mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited smalltalk-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill connects Claude to a live Smalltalk image (Cuis or Squeak) via MCP.
If the Smalltalk MCP tools are not available, help the user configure them:
git clone https://github.com/CorporateSmalltalkConsultingLtd/ClaudeSmalltalk.gitClaudeCuis.image following CUIS-SETUP.md. For Squeak, see SQUEAK-SETUP.md.pip install httpxIf using Anthropic as the agent LLM provider, also: pip install anthropic
smalltalk-mcp.jsonCreate this file in the ClaudeSmalltalk repo directory. All paths must be absolute.
Example using Anthropic (copy from examples/smalltalk-mcp-anthropic.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).
The user must edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"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.
Once connected, you have 13 MCP tools for the live Smalltalk image.
smalltalk_task vs individual toolsUse `smalltalk_task` for complex, multi-step work:
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 todaysmalltalk_browse — get class metadata (superclass, ivars, method lists)smalltalk_method_source — read one method's source codesmalltalk_list_classes — find classes by prefixsmalltalk_hierarchy / smalltalk_subclasses — explore inheritanceAlways 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.
^ countTesting. After defining methods, verify with smalltalk_evaluate:
MyClass new incrementRun SUnit tests: MyClassTest buildSuite run
Exploring the system. Start broad, then narrow:
smalltalk_list_categories — see what's in the imagesmalltalk_classes_in_category — explore a categorysmalltalk_browse — understand a classsmalltalk_method_source — read specific methods| 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 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.