Skip to main content
Glama
sengokusal2025

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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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