Skip to main content
Glama

f0_make_randomvalues MCP Server

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 -c "irm https://astral.sh/uv/install.ps1 | iex"

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

プロジェクトのセットアップ

# プロジェクトディレクトリに移動 cd /path/to/f0_ws # 仮想環境の作成と依存関係のインストール uv venv uv pip install -r requirements.txt

2. pipを使った環境構築(代替方法)

# 仮想環境の作成 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 に以下を追加:

{ "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の例:

{ "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): 乱数シード(再現性のため)

戻り値:

{ "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]): 分析する整数のリスト

戻り値:

{ "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")

開発とデバッグ

デバッグモードでの実行

cd mcp uv run python server.py --debug

MCPインスペクターの使用

MCPインスペクターを使用してサーバーをテストできます:

npx @modelcontextprotocol/inspector uv --directory ./mcp run python server.py

ログの確認

macOS:

tail -f ~/Library/Logs/Claude/mcp-server-f0_random.log

Windows:

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バージョンを確認

    python --version # 3.8以上が必要
  2. 依存関係を再インストール

    uv pip install -r requirements.txt --force-reinstall
  3. パス設定を確認 設定ファイルのパスが絶対パスで正しいか確認

ツールが見つからない

  1. Claude Desktop/Codeを再起動

  2. 設定ファイルの文法を確認 JSONが正しい形式か確認(カンマ、括弧など)

  3. サーバーログを確認 エラーメッセージを確認

データが保存されない

  1. 書き込み権限を確認

    # macOS/Linux ls -la mcp/data/ # Windows icacls mcp\data
  2. ディレクトリが存在するか確認

    # 必要に応じて作成 mkdir -p mcp/data

セキュリティ考慮事項

  • ファイルアクセスは ./data ディレクトリ内に制限されています

  • パストラバーサル攻撃を防ぐための検証が実装されています

  • 許可された拡張子(.csv, .txt, .json)のみアクセス可能です

ライセンス

このプロジェクトはFGDBシステムの一部です。

参考資料

サポート

問題が発生した場合は、以下を確認してください:

  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