MCP Python Function Generator Server について
MCP Python Function Generator Serverは、自然言語の要件からPython関数コードを生成するMCP サーバーです。人が作成したテストケースを任意で実行でき、仕様、コード、結果を返します。
主な機能
- 01要件から関数仕様を生成
- 02Python関数コードの生成
- 03構文と関数定義の検査
- 04指定テストケースの実行
- 05コードとテスト結果の返却
活用シーン
- 01文章で示した要件をPython関数に変換
- 02既知の入出力ケースで生成コードを確認
MCP 対応
MCP サーバーは `create_python_function` ツールを提供します。要件と任意のテストケースを受け取り、生成した仕様、コード、テスト結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Python 関数生成サーバー
説明に基づいて Python 関数のコードを生成するツールを公開する MCP サーバーです。任意で人間がテストを行うこともできます。
セットアップ(uv で簡単にインストール)
このサーバーは、uv Python パッケージマネージャーを使って簡単にセットアップできるよう設計されています。
-
前提条件:
uvがインストールされ、システムの PATH から利用できることを確認してください。uv のインストール手順を参照してください。 -
コードの取得: このリポジトリをクローンするか、ソースコードの ZIP ファイルをダウンロードして展開してください。
-
セットアップスクリプトの実行:
- Windows: コマンドプロンプトまたは PowerShell を開き、プロジェクトディレクトリ(例:
MCP_Server)に移動(cd)して、次を実行します:.\setup.bat - Linux/macOS: ターミナルを開き、プロジェクトディレクトリに移動(
cd)して、スクリプトを実行可能にし(chmod +x setup.sh)、次を実行します:./setup.shスクリプトはuvを使ってローカルの仮想環境(.venv)を作成し、必要な依存関係をインストールします。また、クライアントの設定に必要なコマンドと引数を正確に出力します。 (注:スクリプトは環境をクリーンに保つため、プロジェクトフォルダー内に既存の.venvディレクトリがあれば削除を試みます。必要に応じて、あらかじめその内容をバックアップしてください。)
- Windows: コマンドプロンプトまたは PowerShell を開き、プロジェクトディレクトリ(例:
-
MCP クライアントの設定: セットアップスクリプトが出力する
command("uv")とargs配列([ "run", "--project", "/path/to/your/project", "mcp-function-generator" ])を、MCP クライアントの設定ファイル(例:Claude Desktop のsettings.json)にコピーします。JSON ブロックの例(パスをセットアップスクリプトの出力にあるものに置き換えてください):
{ "mcpServers": { "pythonFunctionGenerator": { "command": "uv", "args": [ "run", "--project", // --- Paste ABSOLUTE path from setup script output here --- "/path/to/your/project/MCP_Server", // Example Linux/macOS // "C:\\Users\\YourName\\Projects\\MCP_Server", // Example Windows (escaped!) // --- End Path --- "mcp-function-generator" ] } // Add other servers like filesystem if needed } }(Windows のパスに含まれるバックスラッシュ
\は、JSON 文字列では必ず\\にエスケープしてください。) -
クライアントの再起動: 設定ファイルを保存し、変更を反映するために MCP クライアント(例:Claude Desktop)を再起動してください。
使用方法
クライアントで設定すると、必要に応じて MCP サーバーが自動的に起動します。
サーバーは、create_python_function という名前の単一のツールを公開します。
引数:
-
requirement(string、必須):- 必要な関数についての自然言語による説明です。可能であれば、例、制約、エッジケースを含めてください。
- 例:
"文字列のリストを受け取り、最も長い文字列を返す関数を作成してください。空のリストにも対応してください。"
-
test_cases(オブジェクトの配列、任意):- 生成されたコードの機能を検証する、人間が作成および検証したテストケースのリストです。
- 構造:
[ { "inputs": { "param_key1": value1, ... }, "expected": expected_value }, ... ] inputs:キーが関数のパラメーター名、値がそのテストケースへの入力となる辞書です。expected:その入力に対して期待される単一の出力値です。(注:現在は完全一致==のチェックのみをサポートしています。非決定的な出力や浮動小数点数の許容誤差には自動で対応しません。)。- 重要な制約:
test_casesを指定する場合、最初のテストケースのinputs辞書で使用されているキーによって、生成される関数が使用する正確なパラメーター名が決まります。すべてのテストケースでキーが一貫していることを確認してください。 - !! 警告 !!:この引数は、人間が作成または検証したテスト専用です。AI クライアント(Claude など)に、この引数用のテストケースを生成するよう依頼しないでください。正確性はこのツールで保証できず、予期しない検証失敗や不正なコードにつながる可能性があります。テストせずにコードをすばやく生成したい場合は、
test_cases引数を省略してください。
実行フロー:
- サーバーが
requirementを受け取ります。 - 関数仕様(名前、パラメーター、戻り値の型、docstring)を生成します。
test_casesが指定されている場合、生成されるパラメーター名は、(最初のテストケースに基づく)inputs辞書のキーと一致する必要があります。サーバーはこの一致を検証します。
- 仕様に基づいて Python コードを生成します。
- 基本的な構文と関数定義についてコードを検証します。
test_casesが指定され、かつ仕様の生成で正しいパラメーターキーが使用されている場合、キーワード引数を使用して各テストケースに対してコードを実行します。- 仕様、コード、テスト結果(テストが実行され、成功した場合)を含む結果を返します。再試行後もテストに失敗する場合、または仕様の生成がテストキーに対する検証に失敗する場合は、エラーが返されます。
クライアント呼び出しの例(概念的な JSON)
1. テストなしでコードを生成する:
{
"tool_name": "create_python_function",
"arguments": {
"requirement": "Write a function `add_one` that takes an integer `x` and returns `x + 1`."
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。