mcpField
S
Smalltalk Validator Mcp Server

Smalltalk Validator Mcp Server

Local
github.com/mumezDeveloper Tools2Updated 4w ago

About Smalltalk Validator Mcp Server

Smalltalk Validator Mcp Server is an MCP server for checking Tonel-formatted Smalltalk code before it is loaded into a Smalltalk environment. It validates source files, content strings, and method bodies, and lints Tonel code.

Key features

  1. 01Validate Tonel files and content
  2. 02Check Smalltalk method syntax
  3. 03Lint Tonel source code
  4. 04Optionally skip method-body checks

Use cases

  1. 01Check AI-generated Tonel before loading
  2. 02Inspect method bodies for syntax errors
  3. 03Find style issues in Tonel source

MCP support

Exposes validation and linting tools for Tonel Smalltalk files, source strings, and method bodies to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"smalltalk-validator": {
"command": "uvx",
"args": [
"git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main"
]
}
}
}
Run commanduvx 'git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main'

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypigit+https://github.com/mumez/smalltalk-validator-mcp-server.git@main

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

smalltalk-validator-mcp-server

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,
#       "reference_url": "https://github.com/mumez/smalltalk-validator-mcp-server/blob/main/docs/lint-checks.md#method-too-long"
#     }
#   ],
#   "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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.