search_features
Search for Japanese horse racing features by keyword. Returns a list of relevant features like popularity, distance, or jockey.
Instructions
キーワードで特徴量を検索
Args:
keyword: 検索キーワード(例: "人気", "距離", "騎手")
Returns:
該当する特徴量のリストInput Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes |
Implementation Reference
- src/jvlink_mcp_server/server.py:312-331 (handler)The 'search_features' tool function decorated with @mcp.tool(). It searches for features by keyword in FEATURE_IMPORTANCE_DATA, filtering by name or description (case-insensitive). Returns a dict with keyword, matching features, and count.
@mcp.tool() def search_features(keyword: str) -> dict: """キーワードで特徴量を検索 Args: keyword: 検索キーワード(例: "人気", "距離", "騎手") Returns: 該当する特徴量のリスト """ matching_features = [ f for f in FEATURE_IMPORTANCE_DATA["important_features"] if keyword.lower() in f["name"].lower() or keyword.lower() in f["description"].lower() ] return { "keyword": keyword, "features": matching_features, "count": len(matching_features) } - src/jvlink_mcp_server/server.py:312-312 (registration)The tool is registered via the @mcp.tool() decorator from the FastMCP instance (line 50: mcp = FastMCP('JVLink MCP Server')).
@mcp.tool() - FEATURE_IMPORTANCE_DATA is the data source loaded from 'feature_importance.json' at module init, containing 'important_features', 'feature_combinations', and 'references' keys. Falls back to empty defaults if file not found.
# 特徴量知見データの読み込み _feature_importance_path = DATA_DIR / "feature_importance.json" if _feature_importance_path.exists(): with open(_feature_importance_path, "r", encoding="utf-8") as f: FEATURE_IMPORTANCE_DATA = json.load(f) else: import logging logging.getLogger(__name__).warning( f"feature_importance.json not found at {_feature_importance_path}" ) FEATURE_IMPORTANCE_DATA = { "important_features": [], "feature_combinations": [], "references": [] }