Skip to main content
Glama

f0_make_randomvalues MCP Server

README.md10.3 kB
# f0_make_randomvalues MCP Server FGDB(Functional Graph Database)システムの `f0_make_randomvalues` 関数ブロックを、Model Context Protocol (MCP) サーバーとして実装したものです。 ## 概要 このMCPサーバーは、乱数生成機能をClaude DesktopやClaude Codeなどのクライアントアプリケーションに提供します。 ### 主な機能 - **乱数生成**: 指定された範囲とパラメータで乱数を生成 - **データ保存**: 生成した乱数をCSVファイルに保存 - **統計分析**: データの統計的特性を分析 - **データ読み込み**: 保存されたCSVファイルからデータを読み込み - **リソースアクセス**: URI経由でデータやメタデータにアクセス - **プロンプトテンプレート**: 一般的なワークフロー用のインタラクティブプロンプト ## システム要件 - Python 3.8以上 - uv(推奨)またはpip - Claude DesktopまたはClaude Code(MCPクライアントとして) ## インストール ### 1. uvを使った環境構築 #### uvのインストール **Windows (PowerShell):** ```powershell powershell -c "irm https://astral.sh/uv/install.ps1 | iex" ``` **macOS/Linux:** ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` #### プロジェクトのセットアップ ```bash # プロジェクトディレクトリに移動 cd /path/to/f0_ws # 仮想環境の作成と依存関係のインストール uv venv uv pip install -r requirements.txt ``` ### 2. pipを使った環境構築(代替方法) ```bash # 仮想環境の作成 python -m venv venv # 仮想環境の有効化 # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate # 依存関係のインストール pip install -r requirements.txt ``` ## 設定 ### Claude Desktopでの設定 #### 設定ファイルの場所 **macOS:** ``` ~/Library/Application Support/Claude/claude_desktop_config.json ``` **Windows:** ``` %APPDATA%\Claude\claude_desktop_config.json ``` #### 設定内容 `claude_desktop_config.json` に以下を追加: ```json { "mcpServers": { "f0_random": { "command": "uv", "args": [ "--directory", "C:\\Users\\sengo\\Dropbox (旧)\\Dropbox\\FGDB\\workspace\\f0_ws\\mcp", "run", "python", "server.py" ], "env": { "PYTHONPATH": "C:\\Users\\sengo\\Dropbox (旧)\\Dropbox\\FGDB\\workspace\\f0_ws\\mcp" } } } } ``` **注意**: パスは実際のインストール先に合わせて変更してください。 **macOS/Linuxの例:** ```json { "mcpServers": { "f0_random": { "command": "uv", "args": [ "--directory", "/absolute/path/to/f0_ws/mcp", "run", "python", "server.py" ], "env": { "PYTHONPATH": "/absolute/path/to/f0_ws/mcp" } } } } ``` ### Claude Codeでの設定 Claude Codeの設定は、Claude Desktopと同じ設定ファイルを共有します。 #### 設定手順 1. **設定ファイルを開く** - Claude Code内で設定メニューを開く - MCP設定セクションに移動 2. **サーバーを追加** 上記のClaude Desktop設定と同じJSON設定を追加 3. **再起動** Claude Codeを再起動して設定を反映 ## 使い方 ### 基本的な使用例 #### 1. 乱数を生成する ``` Claude Desktop/Codeで: 「10個の乱数を生成してください」 ``` MCPサーバーが `generate_random_numbers` ツールを使用して乱数を生成します。 #### 2. データを保存する ``` 「生成した乱数をtest_data.csvに保存してください」 ``` #### 3. 統計分析を実行する ``` 「データの統計分析を行ってください」 ``` #### 4. リソースにアクセスする ``` 「現在のデータを確認してください」 ``` サーバーが `random://current` リソースにアクセスします。 ### 利用可能なツール #### generate_random_numbers 乱数を生成します。 **パラメータ:** - `count` (int): 生成する乱数の個数(デフォルト: 5) - `min_value` (int): 最小値(デフォルト: 0) - `max_value` (int): 最大値(デフォルト: 999) - `seed` (int, optional): 乱数シード(再現性のため) **戻り値:** ```json { "numbers": [404, 971, 885, ...], "count": 10, "min_value": 0, "max_value": 999, "timestamp": "2025-10-02T12:34:56.789012", "seed": null } ``` #### save_random_data 乱数データをCSVファイルに保存します。 **パラメータ:** - `numbers` (List[int]): 保存する整数のリスト - `filename` (str): 出力ファイル名(デフォルト: "data.csv") #### analyze_random_data データの統計分析を実行します。 **パラメータ:** - `numbers` (List[int]): 分析する整数のリスト **戻り値:** ```json { "mean": 615.7, "median": 618.0, "std_dev": 234.5, "variance": 55010.25, "min": 328, "max": 971, "count": 10, "sum": 6157, "range": 643 } ``` #### load_data_from_csv CSVファイルからデータを読み込みます。 **パラメータ:** - `filename` (str): 読み込むCSVファイル名 #### write_function_notation FGDB関数記法をファイルに書き込みます。 **パラメータ:** - `filename` (str): 出力ファイル名(デフォルト: "func.txt") ### 利用可能なリソース #### random://current 最後に生成された乱数データを取得します。 #### file://data/{filename} 保存されたCSVファイルからデータを読み込みます。 例: `file://data/test_data.csv` #### meta://statistics 現在のデータの統計メタデータを取得します。 #### meta://files データディレクトリ内の全ファイルをリストアップします。 #### meta://server-info サーバー情報と機能一覧を取得します。 ### プロンプトテンプレート #### Generate Test Dataset テストデータセットを生成するためのガイド付きプロンプト。 **パラメータ:** - `purpose`: データセットの目的(デフォルト: "testing") - `size`: サイズ - "small"(10), "medium"(100), "large"(1000) #### Analyze Random Data データ分析のためのステップバイステップガイド。 **パラメータ:** - `data_source`: "current"または保存されたファイル名 #### Create Reproducible Dataset シードを使用して再現可能なデータセットを作成。 **パラメータ:** - `seed`: 乱数シード(デフォルト: 42) - `count`: 生成する値の数(デフォルト: 100) #### Batch Data Generation 複数バッチのデータを生成するワークフロー。 **パラメータ:** - `num_batches`: バッチ数(デフォルト: 5) - `batch_size`: 各バッチのサイズ(デフォルト: 20) #### Data Quality Check データ品質チェックを実行するガイド。 **パラメータ:** - `filename`: チェックするCSVファイル(デフォルト: "data.csv") ## 開発とデバッグ ### デバッグモードでの実行 ```bash cd mcp uv run python server.py --debug ``` ### MCPインスペクターの使用 MCPインスペクターを使用してサーバーをテストできます: ```bash npx @modelcontextprotocol/inspector uv --directory ./mcp run python server.py ``` ### ログの確認 **macOS:** ```bash tail -f ~/Library/Logs/Claude/mcp-server-f0_random.log ``` **Windows:** ```powershell Get-Content "$env:APPDATA\Claude\Logs\mcp-server-f0_random.log" -Wait ``` ## プロジェクト構造 ``` f0_ws/ ├── mcp/ # MCPサーバー実装 │ ├── server.py # メインサーバー │ ├── models.py # Pydanticデータモデル │ ├── tools.py # ツール実装 │ ├── resources.py # リソースハンドラー │ ├── prompts.py # プロンプトテンプレート │ └── data/ # データ保存ディレクトリ ├── f0_make_randomvalues/ # オリジナルの関数ブロック │ ├── func.py │ └── lib.py ├── requirements.txt # Python依存関係 ├── README.md # このファイル └── mcp_specification.md # 技術仕様書 ``` ## トラブルシューティング ### サーバーが起動しない 1. **Pythonバージョンを確認** ```bash python --version # 3.8以上が必要 ``` 2. **依存関係を再インストール** ```bash uv pip install -r requirements.txt --force-reinstall ``` 3. **パス設定を確認** 設定ファイルのパスが絶対パスで正しいか確認 ### ツールが見つからない 1. **Claude Desktop/Codeを再起動** 2. **設定ファイルの文法を確認** JSONが正しい形式か確認(カンマ、括弧など) 3. **サーバーログを確認** エラーメッセージを確認 ### データが保存されない 1. **書き込み権限を確認** ```bash # macOS/Linux ls -la mcp/data/ # Windows icacls mcp\data ``` 2. **ディレクトリが存在するか確認** ```bash # 必要に応じて作成 mkdir -p mcp/data ``` ## セキュリティ考慮事項 - ファイルアクセスは `./data` ディレクトリ内に制限されています - パストラバーサル攻撃を防ぐための検証が実装されています - 許可された拡張子(.csv, .txt, .json)のみアクセス可能です ## ライセンス このプロジェクトはFGDBシステムの一部です。 ## 参考資料 - [Model Context Protocol仕様](https://spec.modelcontextprotocol.io) - [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) - [FastMCP フレームワーク](https://modelcontextprotocol.io/docs/tools/fastmcp) - [Claude Desktop統合](https://modelcontextprotocol.io/docs/tools/claude-desktop) ## サポート 問題が発生した場合は、以下を確認してください: 1. この README のトラブルシューティングセクション 2. `mcp_specification.md` の技術仕様 3. サーバーログファイル --- **バージョン**: 1.0.0 **最終更新**: 2025-10-02

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sengokusal2025/f0_20251002'

If you have feedback or need assistance with the MCP directory API, please join our Discord server