Smalltalk Validator Mcp Server について
Smalltalk Validator Mcp Serverは、Smalltalk環境へ読み込む前にTonel形式のコードを確認するMCPサーバーです。ファイルや文字列、メソッド本体の検証と、TonelコードのLintに対応します。
主な機能
- 01Tonelファイルと文字列の検証
- 02Smalltalkメソッド構文の確認
- 03TonelソースのLint
- 04メソッド本体の検証を省略
活用シーン
- 01読み込み前のAI生成Tonelの確認
- 02メソッド本体の構文エラー調査
- 03Tonelソースのスタイル問題の検出
MCP 対応
Tonel Smalltalkのファイル、文字列、メソッド本体を検証・LintするツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
smalltalk-validator-mcp-server
tree-sitter-tonel-smalltalk を使用して、Tonel 形式の Smalltalk ソースコードを検証および lint するシンプルな MCP サーバーです。
- AI が生成した Tonel ファイルや Smalltalk メソッド定義を実際の Smalltalk 環境に読み込む前に、検証および lint することを目的としています。
ツール
検証ツール
validate_tonel_smalltalk_from_file(file_path, options)
- ファイル内の Tonel 形式の Smalltalk ソースコードを検証します
validate_tonel_smalltalk(file_content, options)
- コンテンツ文字列内の Tonel 形式の Smalltalk ソースコードを検証します
validate_smalltalk_method_body(method_body_content)
- Smalltalk メソッド本体の構文が正しいか検証します
検証オプション
without-method-body: true
if true, it only validates tonel structure only (mainly for testing)
Lint ツール
lint_tonel_smalltalk_from_file(file_path)
- ファイル内の Tonel 形式の Smalltalk ソースコードを lint します
lint_tonel_smalltalk(file_content)
- コンテンツ文字列内の Tonel 形式の Smalltalk ソースコードを lint します
チェック項目の完全な一覧については、docs/lint-checks.md を参照してください。
インストール
クイックインストール(uvx)
クローンせずに直接実行します。
uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
開発環境のセットアップ(git clone)
git clone https://github.com/mumez/smalltalk-validator-mcp-server.git
cd smalltalk-validator-mcp-server
uv sync
使用方法
MCP サーバーの起動
- uvx を使用する場合(すばやく実行するにはこちらがおすすめです):
uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
- クローンしたリポジトリから実行する場合:
uv run smalltalk-validator-mcp-server
設定例
Cursor の設定
.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"
]
}
}
}
ローカルクローンを使用する場合は、代わりにこちらを使用してください。
{
"mcpServers": {
"smalltalk-validator": {
"command": "uv",
"args": [
"--directory",
"/path/to/smalltalk-validator-mcp-server",
"run",
"smalltalk-validator-mcp-server"
]
}
}
}
Claude Code の設定
Claude Code の設定に追加します。
claude mcp add smalltalk-validator -- uvx --from git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main smalltalk-validator-mcp-server
ローカルクローンを使用する場合:
claude mcp add smalltalk-validator -- uv --directory /path/to/smalltalk-validator-mcp-server run smalltalk-validator-mcp-server
ツールの使用例
ファイルシステム上の Tonel ファイルを検証する
# 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})
Tonel の内容を直接検証する
tonel_content = """
Class {
#name : #MyClass,
#superclass : #Object,
#category : #'My-Package'
}
{ #category : #accessing }
MyClass >> getValue [
^ 42
]
"""
validate_tonel_smalltalk(tonel_content)
Smalltalk メソッド本体を検証する
method_body = "^ self name asUppercase"
validate_smalltalk_method_body(method_body)
ファイルシステム上の Tonel ファイルを lint する
# 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
# }
Tonel の内容を直接 lint する
tonel_content = """
Class {
#name : #MyClass,
#superclass : #Object,
#instVars : [
'name',
'age'
],
#category : #'My-Package'
}
{ #category : #accessing }
MyClass >> getName [
^ name
]
"""
result = lint_tonel_smalltalk(tonel_content)
開発
# 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
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。