Skip to main content

horse-race-mcp

JRA 競馬データベースと V3 オッズパターン戦略(累計 ROI 121.9%/16年中10年で100%超、analysis/simulation_log.md の全26仮説検証結果に基づく推奨戦略)を Model Context Protocol (MCP) 経由で公開するサーバーです。

Claude Desktop、ChatGPT Desktop(2025年末〜MCP対応)、Cursor、Cline など MCP 対応のクライアントで横断利用できます。

提供ツール

V3 戦略(DB 不要・純ロジック)

ツール 説明
classify_odds_pattern 単勝オッズから A:断然 / B:やや断然 / C:2強 / D:混戦 / E:大混戦 を機械判定
build_buy_order V3 戦略に基づくメイン買い目 + サブ(7-8番人気単勝 各100円) を組み立て。重馬場なら全見送り

データ検索(Turso DB 必要)

ツール 説明
query_races race_information を名前/年/グレード/競馬場で検索
get_race_results 1レースの全着順 + 払戻を取得
get_race_odds race_odds から確定単勝オッズを取得
get_current_entrants jra_race_code から、V3 ツール用の entrants 形式で返す

統計分析

ツール 説明
get_popularity_roi 人気別の推定回収率を計算(グレード絞り込み可能)
get_race_specific_roi レース名部分一致でそのレースの人気別 ROI(仮説#006 の判定基礎データ)
get_condition_roi 馬場状態別の人気別 ROI

馬券収支管理

ツール 説明
list_bet_records 購入履歴を日付範囲で取得
get_bet_summary 年次サマリー(投資額・払戻・損益・ROI)
add_bet_record 新規購入を記録(HORSE_RACE_MCP_ALLOW_WRITE=1 必須)
update_bet_result 結果確定後の更新(HORSE_RACE_MCP_ALLOW_WRITE=1 必須)

インストール

PyPI から(公開後)

pip install horse-race-mcp

GitHub から直接

pip install "horse-race-mcp @ git+https://github.com/yukito5669/horse-race.git#subdirectory=mcp-server"

開発用(ローカルclone)

cd mcp-server
pip install -e ".[dev]"
pytest

環境変数

変数 必須 説明
TURSO_URL DB系ツールを使う場合 libsql://[db-name]-[org].turso.io
TURSO_TOKEN DB系ツールを使う場合 Turso 認証トークン
HORSE_RACE_MCP_ALLOW_WRITE add_bet_record/update_bet_result を使う場合 1 を設定で有効

V3 戦略ツール (classify_odds_pattern, build_buy_order) は環境変数なしで動作します。

クライアント設定例

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)

{
  "mcpServers": {
    "horse-race": {
      "command": "horse-race-mcp",
      "env": {
        "TURSO_URL": "libsql://your-db.turso.io",
        "TURSO_TOKEN": "eyJ..."
      }
    }
  }
}

ChatGPT Desktop

設定 → コネクタ → カスタム MCP サーバー:

{
  "name": "horse-race",
  "command": "horse-race-mcp",
  "env": {
    "TURSO_URL": "libsql://your-db.turso.io",
    "TURSO_TOKEN": "eyJ..."
  }
}

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "horse-race": {
      "command": "horse-race-mcp",
      "env": {
        "TURSO_URL": "libsql://your-db.turso.io",
        "TURSO_TOKEN": "eyJ..."
      }
    }
  }
}

Cline (VSCode 拡張 cline_mcp_settings.json)

{
  "mcpServers": {
    "horse-race": {
      "command": "horse-race-mcp",
      "env": {
        "TURSO_URL": "libsql://your-db.turso.io",
        "TURSO_TOKEN": "eyJ..."
      }
    }
  }
}

書き込み権限付き(馬券記録もエージェント経由で)

{
  "mcpServers": {
    "horse-race": {
      "command": "horse-race-mcp",
      "env": {
        "TURSO_URL": "libsql://your-db.turso.io",
        "TURSO_TOKEN": "eyJ...",
        "HORSE_RACE_MCP_ALLOW_WRITE": "1"
      }
    }
  }
}

使い方(任意のエージェントから)

ツール名と JSON 入力の例:

// 1. 発走前オッズのパターン判定
{
  "tool": "classify_odds_pattern",
  "input": {
    "entrants": [
      {"popularity": 1, "odds": 2.5, "horse_number": 1, "horse_name": "クロワデュノール"},
      {"popularity": 2, "odds": 2.9, "horse_number": 7, "horse_name": "マスカレードボール"},
      {"popularity": 3, "odds": 8.4, "horse_number": 3, "horse_name": "レガレイラ"}
    ]
  }
}
// → {"pattern":"C:2強", "bet_type":"複勝", "target":1, ...}

// 2. そのまま買い目生成
{
  "tool": "build_buy_order",
  "input": {
    "race": {"race_name":"天皇賞(秋)", "entrants":[...], "condition":"稍重"},
    "base_amount": 1000
  }
}
// → メイン1000円 + サブ各100円 の買い目リスト

// 3. 過去データで裏取り
{
  "tool": "get_race_specific_roi",
  "input": {"race_name": "天皇賞(秋)", "bet_type": "単勝"}
}
// → 人気別の歴代 ROI

V3 戦略の判定ルール

条件 パターン 買い方
pop1_odds ≤ 2.0 A:断然 単勝3番人気
pop1_odds ≤ 3.5 かつ ratio ≥ 1.5 B:やや断然 見送り
pop1_odds ≤ 3.5 かつ ratio < 1.5 C:2強 複勝1番人気
3.5 < pop1_odds ≤ 6.0 D:混戦 単勝4番人気
pop1_odds > 6.0 E:大混戦 見送り
condition = "重" — 全見送り
  • ratio = pop2_odds / pop1_odds
  • 累計 ROI 121.9%(G1 367レース 2010–2026、simulation_log.md 仮説#011b V3)
  • サブ戦略: 全G1で単勝 7番人気 + 8番人気 各100円(長期 ROI 113.7%)

セキュリティ

  • 既定で read-only。書き込みツール (add_bet_record / update_bet_result) は HORSE_RACE_MCP_ALLOW_WRITE=1 を明示的に設定したときだけ有効
  • 認証情報 (TURSO_TOKEN) はクライアント設定ファイルに平文で入るため、ファイル権限 (chmod 600) で保護推奨
  • Turso の read-only トークンを使えばさらに安全

開発

# テスト
pytest

# フォーマット/lint
ruff check src tests
ruff format src tests

# PyPI 公開(メンテナ向け)
python -m build
twine upload dist/*

ライセンス

MIT

Metadata

Release files for horse-race-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for horse-race-mcp 0.1.0
File Size Uploaded Provenance Actions
horse_race_mcp-0.1.0.tar.gz 15.8 kB Without provenance Details for horse_race_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for horse-race-mcp 0.1.0
File Interpreter ABI Platform Actions
horse_race_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for horse_race_mcp-0.1.0-py3-none-any.whl

Total release size: 34.9 kB

Release files / horse_race_mcp-0.1.0.tar.gz

Download URL horse_race_mcp-0.1.0.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dd1e7763e77ee29edd11d9f40a8cbc50921c831d7da290322a68c47afaa952b8
BLAKE2b-256 checksum
How to use checksums
41ca695a8cb77d424cdc2e8d04cf567038f2550526046c0f5b70790413d4056e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.18

Release files / horse_race_mcp-0.1.0-py3-none-any.whl

Download URL horse_race_mcp-0.1.0-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0223af3ff633f7849d28bf0b5b0b12b6456120aeca8eb0f53aac7da34cccce1b
BLAKE2b-256 checksum
How to use checksums
c2ef336923a2797f6a391e1c1a20e642bc06d00fce537400890f42ee228fb8d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.18

Security for horse-race-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page