Chapel Support for MCP について
Chapel Support for MCPは、Chapelコードを扱うAIアシスタント向けのMCPサーバーです。入門資料の参照に加え、コードのコンパイルや任意のLintを行えます。
主な機能
- 01Chapel入門資料の一覧
- 02入門資料の取得
- 03Chapelプログラムのコンパイル
- 04chplcheckによるLint
- 05Lint修正の自動適用
活用シーン
- 01Chapelの学習例を調べる
- 02Chapelプログラムをコンパイルする
- 03コードのスタイルと規約を確認する
MCP 対応
接続クライアントに、Chapel入門資料の一覧・取得、プログラムのコンパイル、コード検査用のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP 向けの Chapel サポート
Chapel プログラミング言語用の Model-Context-Protocol(MCP)サーバーです。Chapel コードを扱うためのツール、入門ガイドやサンプルへのアクセスを提供し、Chapel の機能を AI アシスタントなどのツールと統合します。
Chapel とは?
Chapel は、大規模な並列コンピューティングを生産的に行うことを目的として設計されたオープンソースの並列プログラミング言語です。MPI、OpenMP、CUDA などの現在のプログラミングモデルと同等以上の性能と移植性を維持しながら、並列コンピューターのプログラミング性を高めることを目指しています。
機能
この MCP サーバーは、Chapel に関する以下の機能を提供します。
- Chapel 入門ガイドへのアクセス:Chapel の学習用入門サンプルを閲覧、参照できます
- コードのコンパイル:API を通じて Chapel コードを直接コンパイルできます
- リンティング:
chplcheckを使用して Chapel コードのスタイルとベストプラクティスを確認し、自動修正を適用できます - CHPL_HOME のスマートな検出:Chapel のインストールディレクトリを自動的に検索します
前提条件
- Python 3.13 以降
- Chapel プログラミング言語がインストールされていること(Chapel インストールガイドを参照)
- (オプション)リンティング機能を使用する場合は
chplcheck
インストール
-
このリポジトリをクローンします。
git clone <repository-url> cd chapel-support -
UV を使用して仮想環境を作成し、有効化します。
uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
プロジェクトの依存関係を使用して環境を同期します。
uv sync
設定
MCP サーバーには、Chapel のインストール場所(CHPL_HOME)を知らせる必要があります。次の順序で検索します。
CHPL_HOME環境変数- プロジェクトのルートにある
.envファイル - Chapel コンパイラーが PATH にある場合は、
chpl --print-chpl-homeを実行
.env ファイルを使うには、プロジェクトのルートに次の内容でファイルを作成します。
CHPL_HOME=/path/to/your/chapel/installation
テンプレートについては .env.example を参照してください。
使用方法
MCP サーバーの起動
uv run chapel-support.py
これにより、仮想環境を使用して stdio トランスポートモードで MCP サーバーが起動します。
AI アシスタントまたはツールとの統合
この MCP サーバーを AI アシスタントや他のツールで使用するには、このサーバーに接続するように設定します。たとえば、クライアント設定ファイルでは次のようにします。
{
"context_servers": {
"chapel-support": {
"command": {
"path": "uv",
"args": [
"run",
"--directory",
"/path/to/chapel-support",
"chapel-support.py"
],
"env": {}
},
"settings": {}
}
}
}
注:ディレクトリパスは、chapel-support をインストールした場所に合わせて変更してください。
利用可能なツール
list_primers()
利用可能な Chapel 入門ガイドの一覧を取得します。
戻り値: CHPL_HOME を基準とした入門ガイドファイルのパスの一覧です。
get_primer(path: str)
指定した Chapel 入門ガイドの内容を取得します。
パラメーター:
path:list_primers()が返す入門ガイドへのパス
戻り値: 入門ガイドの内容を文字列として返します。
compile_program(program_text: str, program_name: str = "program.chpl")
Chapel プログラムをコンパイルします。
パラメーター:
program_text:コンパイルする Chapel コードprogram_name:プログラムファイルの名前(省略可。デフォルト:「program.chpl」)
戻り値: 次の内容を含むタプルです。
- 成功ステータス(ブール値)
- コンパイラーの出力/エラー(文字列)
list_chapel_lint_rules()
chplcheck で利用可能な Chapel のリンティングルールをすべて一覧表示します。
戻り値: ルール情報を含む辞書の一覧です。
name:ルール名description:ルールの説明is_default:そのルールがデフォルトで有効かどうか
lint_chapel_code(program_text: str, program_name: str = "program.chpl", fix: bool = False, custom_rules: Optional[List[str]] = None)
Chapel コードをリンティングし、必要に応じて修正を適用します。
パラメーター:
program_text:リンティングする Chapel コードprogram_name:プログラムファイルの名前(省略可。デフォルト:「program.chpl」)fix:自動修正を適用するかどうか(デフォルト:False)custom_rules:有効にする特定のルールの一覧(デフォルト:None。デフォルトのルールを使用します)
戻り値: 次の内容を含む辞書です。
warnings:リンティングの警告を含む文字列fixed_code:fix=Trueの場合に修正されたコードerror:エラーが発生した場合のエラーメッセージstats:リンティング処理に関する統計情報
貢献
貢献を歓迎します!お気軽にプルリクエストを送信するか、イシューを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。