mcpField
S
Smalltalk Validator Mcp Server

Smalltalk Validator Mcp Server

ローカル
github.com/mumez開発ツール24 週間前に更新

Smalltalk Validator Mcp Server について

Smalltalk Validator Mcp Serverは、Smalltalk環境へ読み込む前にTonel形式のコードを確認するMCPサーバーです。ファイルや文字列、メソッド本体の検証と、TonelコードのLintに対応します。

主な機能

  1. 01Tonelファイルと文字列の検証
  2. 02Smalltalkメソッド構文の確認
  3. 03TonelソースのLint
  4. 04メソッド本体の検証を省略

活用シーン

  1. 01読み込み前のAI生成Tonelの確認
  2. 02メソッド本体の構文エラー調査
  3. 03Tonelソースのスタイル問題の検出

MCP 対応

Tonel Smalltalkのファイル、文字列、メソッド本体を検証・LintするツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"smalltalk-validator": {
"command": "uvx",
"args": [
"git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main"
]
}
}
}
起動コマンドuvx 'git+https://github.com/mumez/smalltalk-validator-mcp-server.git@main'

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigit+https://github.com/mumez/smalltalk-validator-mcp-server.git@main

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。