Smalltalk Validator Server
FreeNot checkedMCP server for validating and linting Tonel formatted Smalltalk source code using tree-sitter-tonel-smalltalk
About
MCP server for validating and linting Tonel formatted Smalltalk source code using tree-sitter-tonel-smalltalk
README
A simple MCP server for validating and linting Tonel formatted Smalltalk source code using tree-sitter-tonel-smalltalk.
- The purpose is that we would like to validate and lint AI-generated tonel files and Smalltalk method definitions before loading them into a real Smalltalk environment.
Tools
Validation Tools
validate_tonel_smalltalk_from_file(file_path, options)
- Validate Tonel formatted Smalltalk source code from a file
validate_tonel_smalltalk(file_content, options)
- Validate Tonel formatted Smalltalk source code from content string
validate_smalltalk_method_body(method_body_content)
- Validate a Smalltalk method body for syntax correctness
Validation Options
without-method-body: true
if true, it only validates tonel structure only (mainly for testing)
Linting Tools
lint_tonel_smalltalk_from_file(file_path)
- Lint Tonel formatted Smalltalk source code from a file
lint_tonel_smalltalk(file_content)
- Lint Tonel formatted Smalltalk source code from content string
See docs/lint-checks.md for the full list of checks.
Installation
Quick install (uvx)
Run directly without cloning:
uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
Development setup (git clone)
git clone https://github.com/mumez/smalltalk-validator-mcp-server.git
cd smalltalk-validator-mcp-server
uv sync
Usage
Running the MCP Server
- Using uvx (recommended for quick run):
uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
- From a cloned repo:
uv run smalltalk-validator-mcp-server
Configuration Examples
Cursor Configuration
Add to your .cursor/settings.json:
{
"mcpServers": {
"smalltalk-validator": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main",
"smalltalk-validator-mcp-server"
]
}
}
}
If you prefer using a local clone, use this instead:
{
"mcpServers": {
"smalltalk-validator": {
"command": "uv",
"args": [
"--directory",
"/path/to/smalltalk-validator-mcp-server",
"run",
"smalltalk-validator-mcp-server"
]
}
}
}
Claude Code Configuration
Add to your Claude Code settings:
claude mcp add smalltalk-validator -- uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
Using a local clone instead:
claude mcp add smalltalk-validator -- uv --directory /path/to/smalltalk-validator-mcp-server run smalltalk-validator-mcp-server
Tool Usage Examples
Validate Tonel file from filesystem
# Validate a complete Tonel file with method bodies
validate_tonel_smalltalk_from_file("/path/to/MyClass.st")
# Validate only Tonel structure (without method body validation)
validate_tonel_smalltalk_from_file("/path/to/MyClass.st", {"without-method-body": true})
Validate Tonel content directly
tonel_content = """
Class {
#name : #MyClass,
#superclass : #Object,
#category : #'My-Package'
}
{ #category : #accessing }
MyClass >> getValue [
^ 42
]
"""
validate_tonel_smalltalk(tonel_content)
Validate Smalltalk method body
method_body = "^ self name asUppercase"
validate_smalltalk_method_body(method_body)
Lint Tonel file from filesystem
# Lint a Tonel file for best practices and style issues
result = lint_tonel_smalltalk_from_file("/path/to/MyClass.st")
# Example result:
# {
# "success": true,
# "file_path": "/path/to/MyClass.st",
# "issue_list": [
# {
# "severity": "warning",
# "message": "Method 'longMethod' long: 18 lines (recommended: 15)",
# "class_name": "MyClass",
# "selector": "longMethod",
# "is_class_method": false
# }
# ],
# "issues_count": 1,
# "warnings_count": 0,
# "errors_count": 0
# }
Lint Tonel content directly
tonel_content = """
Class {
#name : #MyClass,
#superclass : #Object,
#instVars : [
'name',
'age'
],
#category : #'My-Package'
}
{ #category : #accessing }
MyClass >> getName [
^ name
]
"""
result = lint_tonel_smalltalk(tonel_content)
Development
# Install dependencies
uv sync
# Run tests
uv run pytest
# Lint and format
uv run ruff check
uv run ruff format
# Install pre-commit hooks
uv run pre-commit install
Installing Smalltalk Validator Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/mumez/smalltalk-validator-mcp-serverFAQ
Is Smalltalk Validator Server MCP free?
Yes, Smalltalk Validator Server MCP is free — one-click install via Unyly at no cost.
Does Smalltalk Validator Server need an API key?
No, Smalltalk Validator Server runs without API keys or environment variables.
Is Smalltalk Validator Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Smalltalk Validator Server in Claude Desktop, Claude Code or Cursor?
Open Smalltalk Validator Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Smalltalk Validator Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
