mcpField
C
Chess Esca

Chess Esca

ローカル
github.comゲーム・エンタメ07 週間前に更新

Chess Esca について

Chess Escaは、着手評価ではなくルールに基づく局面情報を扱うMCPサーバーです。合法性と根拠、局面の状態、エンディング、オープニング、PGNの処理に対応し、列挙値に平易な説明を添えます。

主な機能

  1. 01局面状態と引き分けの主張を確認
  2. 02合法手の一覧と分類
  3. 03着手の合法性と根拠を説明
  4. 04エンディング情報とオープニングコードを取得
  5. 05PGNの読み込みと書き出し

活用シーン

  1. 01着手が合法かとその理由を確認
  2. 02局面の引き分け条件を確認
  3. 03オープニングブックの手を検索
  4. 04棋譜をPGNとして解析または出力

MCP 対応

MCPサーバーとして、チェスのルール、局面の事実、オープニング情報、PGNの入出力を行うツールをMCPクライアントに提供します。エンジンの実行や着手評価の検索は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"anglerfishchess-chess-esca": {
"command": "uvx",
"args": [
"chess-esca-mcp"
]
}
}
}
起動コマンドuvx chess-esca-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypichess-esca-mcp0.4.0

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
fenanyいいえFEN または EPD 形式の局面。省略時はそのバリアントの初期局面です。
pgnanyいいえ`fen` と `moves` の代わりに指定する、PGN 形式の棋譜全体です。
movesanyいいえ`fen` からの指し手。各手は SAN('Nf3')または UCI('g1f3')形式です。繰り返し局面と50手ルールによる引き分けの申告は、現在の局面に至る指し手が指定されている場合にのみ確認できます。
variantstringいいえルール:'classic' または 'chess960'。

詳細

chess-esca-mcp

esca を利用した MCP サーバーです。エージェントが読み取れる、JSON 形式のチェスのルールを提供します。

FEN と指し手を入力すると、列挙値とその根拠となるマスが返されます。指し手が合法かどうか、また合法でない理由、局面の状態とどちらの側が何を主張できるか、局面の名前付き事実、駒の配置から決まる終盤と理論上の評価、オープニングの ECO コード、オープニングブックに収録された指し手、PGN の読み込みと書き出しに対応しています。分類的な回答にはすべて prose も含まれます。列挙値の代わりではなく、その内容を平易な英語の一文で併記します。

ここにエンジンも探索機能もありません。 このサーバーの回答は、指し手の 良し悪し を示すものではありません。数値と読み筋が必要な場合は、Stockfish または Leela を動かす chess-uci-mcp をお使いください。2 つは異なる問いに答えるため、併用できます。

Dependencies

Python 3.12 以降と uv/uvx が必要です。

Usage

"mcpServers": {
  "chess-esca-mcp": {
    "command": "uvx",
    "args": ["chess-esca-mcp@latest"]
  }
}

Claude Desktop では、Settings → Developer → Edit Config にある claude_desktop_config.json を編集します。

  • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Claude Code では、プラグインが接続を設定します。

/plugin marketplace add AnglerfishChess/plugins
/plugin install chess-esca-mcp@anglerfish-chess

サーバーは引数を受け取りません。読み取るのは渡された局面と、book_moves で指定したブックファイルだけです。

Tools

すべてのツールで局面を同じ方法で指定します。fen(省略時は初期局面)、そこから指した moves(それぞれ SAN(Nf3)または UCI(g1f3)で記述)、または代わりにゲーム全体を pgn で渡します。variant は classic または chess960 です。FEN には局面に至るまでの手順が含まれないため、連続王手と 50 手ルールの主張が可能かどうかは、局面に至るまでの指し手が渡された場合にのみ確認できます。

ツール回答内容
position局面の全状態です。手番、チェックとそのチェック駒、ゲームの状態、自動引き分けと主張可能な引き分けおよびその根拠、合法手の数、オープニング、駒の配置、両色それぞれのキャスリングとあらゆる障害物、アンパッサンの権利、ピンとスキュア、駒の配置から決まる終盤を返します。
legal_movesすべての合法手を SAN と UCI で返します。各手には役割、取られる駒、昇格、チェック、静的交換評価が付き、キャプチャ、チェック、キャスリング、昇格、アンパッサン、静かな手に分類されます。
explain_move1 つの指し手が合法かどうかを返します。非合法の場合は、根拠となるマスとともに、すべての理由を一度に示します。合法の場合は、指し手による変化、指し手の後の局面、可能になる引き分けを示します。
facts局面の名前付き事実をグループごとに返します。すべての値に名前を付け、両側で異なる値には色も付けます。groups で対象を選択できます。placement と maps は指定がない限り省略されます。
ending駒の配置から決まる終盤について、その特徴、クラス、理論上の結果、勝つための技術、および根拠となるポーンレース、ビショップ、オポジションを返します。
opening局面の ECO コードと名称、および指し手の列が到達した最も深い名前付き局面を返します。
book_moves局面について Polyglot オープニングブックに収録された指し手と、その重みを返します。
pgnPGN ゲームをヘッダー、指し手、コメント、最終局面、オープニング、結果に読み取ります。
to_pgn指し手の一覧を PGN ゲームとして書き出します。

局面、指し手、ゲームのいずれも指定されていない入力には、トレースバックではなく {"error": {"kind": ..., "message": ..., "hint": ...}} が返されます。

1 つのリソース esca://facts-catalogue には、すべての事実グループと各グループが持つすべてのフィールドが記載されています。それぞれの型と意味を説明する一文も含まれます。このカタログは、esca が事実の定義そのものから生成します。1 つのプロンプト analyse-position は、これらのツールを使って局面を読み解く手順をエージェントに案内します。

定跡

書籍は同梱されていません。book_moves には、お手持ちの Polyglot .bin ファイルのパスを指定します。この形式は一般的なものなので、Polyglot を読み込めるエンジン向けに作成された書籍であれば使用できます。esca.polyglot には、取得用の download(url, path) と、PGN から書籍を書き出す Builder があります。

開発

このサーバーは esca リポジトリ内にある2つ目のディストリビューションです。ライブラリはルートにあり、このディレクトリはその隣にあります。開発中は隣のクレートにある esca を使用し、インストール後は PyPI から取得します。

git clone https://github.com/AnglerfishChess/esca.git
cd esca/mcp

uv sync --all-groups     # builds the esca extension from ../ and installs it here
uv run --no-sync pytest
uvx ruff check . && uvx ruff format --check . && uvx pyrefly check

チェックアウトから uv run chess-esca-mcp を実行します。

バージョンは esca のものを使用します。1つのタグでライブラリとこのサーバーを同時にリリースし、esca== のピンにも同じバージョンを指定します。

MCP レジストリ

registry.modelcontextprotocol.io は、公開 MCP サーバーのインデックスです。server.json に記載された名前は io.github.AnglerfishChess/chess-esca-mcp です。この PyPI パッケージの所有者であることは、このファイルの先頭付近にある mcp-name: マーカーで証明され、これは PyPI が提供するパッケージの説明になります。レジストリは公開済みのアーティファクトから情報を読み取るため、この情報を含むリリースが PyPI に公開されて初めて登録されます。

関連プロジェクト

  • esca — このサーバーが提供するライブラリです。
  • chess-uci-mcp — エンジン側のプロジェクトです。Stockfish または Leela による解析と最善手を提供します。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。