Skip to main content
Glama
Shogi MCP Server

Shogi MCP Server

by azumausu

Shogi MCP Server

将棋AIエンジンのHTTP APIブリッジおよびMCP(Model Context Protocol)サーバー実装です。

https://github.com/user-attachments/assets/cdff97b9-d60f-411b-b81f-9cabd8e62

将棋AIエンジンのREST APIおよびMCP(Model Context Protocol)サーバー実装です。
現時点のLLMとUSI形式の将棋AIの統合し、指し手の説明をさせるためのサンプルプログラムです。

概要

このプロジェクトは、ネイティブの将棋エンジンバイナリをラップし、以下の2つのインターフェースを提供します:

  • HTTP API Bridge: HTTPエンドポイント経由での将棋局面解析

  • MCP Server: AIエージェント統合のためのModel Context Protocolサーバー

Related MCP server: Chess MCP

必要要件

  • Node.js 18.0.0以上

  • USIプロトコル対応の将棋エンジン

  • 評価関数ファイル(nn.bin)

インストール

# リポジトリのクローン
git clone <repository-url>
cd shogi-mcp

# 依存関係のインストール
npm install

セットアップ

  1. 将棋エンジンバイナリを engine/engine に配置

  2. 評価関数ファイルを eval/nn.bin に配置

使用方法

Claude Desktop

claude_desktop_config.jsonに以下を追記

  "mcpServers": {
    "shogi-mcp": {
      "command": "ここにnodeのフルパスを追加",
      "args": ["ここにmcp-server.mjsのフルパスを追加"],
      "env": {
        "REST_BASE": "http://localhost:8787"
      }
    }
  }

ブリッジサーバーの起動

npm run start:bridge

デフォルトでポート8787で起動します。

APIエンドポイント

GET /health

  • ヘルスチェック用エンドポイント

GET /analyze

  • 局面解析エンドポイント

パラメータ:

  • sfen (必須): SFEN形式の局面

  • depth: 探索深さ(デフォルト: 30、最大: 30)

  • multipv: 候補手の数(デフォルト: 10、最大: 10)

  • threads: 使用スレッド数(デフォルト: 1、最大: 8)

  • forceMove: 指定した手を指した後の局面を解析

例:

curl "http://localhost:8787/analyze?sfen=lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL%20b%20-%201&depth=20&multipv=5"

MCPサーバーの起動

npm run start:mcp

MCPサーバーはstdio経由で通信し、以下のツールを提供します:

  • ping: 疎通確認

  • analyze: 局面の完全解析(MultiPV)

  • eval_at: 特定の手を指した後の局面評価

環境変数

変数名

説明

デフォルト値

ENGINE_PATH

将棋エンジンのパス

./engine/engine

PORT

ブリッジサーバーのポート

8787

REST_BASE

MCPサーバーが使用するブリッジAPIのベースURL

http://localhost:8787

DEBUG

エンジン通信のデバッグログを有効化("1"で有効)

-

EVAL_FILE

評価関数ファイルのパス

-

EVAL_DIR

評価関数ディレクトリのパス

-

プロジェクト構成

shogi-mcp/
├── src/
│   ├── core/
│   │   └── engine.js         # USIプロトコルエンジンラッパー
│   └── servers/
│       ├── bridge-server.js  # Express HTTP APIブリッジサーバー
│       └── mcp-server.mjs    # MCPサーバー実装
├── engine/
│   └── engine                # 将棋エンジンバイナリ
├── eval/
│   └── nn.bin               # 評価関数(NNUEで実装)
├── package.json
└── README.md        

開発

テスト

ブリッジAPIのテスト例:

# ヘルスチェック
curl http://localhost:8787/health

# 初期局面の解析
curl "http://localhost:8787/analyze?sfen=startpos&depth=15&multipv=3"

トラブルシューティング

評価関数が読み込めない場合

環境変数で明示的にパスを指定してください:

EVAL_FILE=./eval/nn.bin EVAL_DIR=./eval npm run start:bridge

エンジンが起動しない場合

  1. エンジンバイナリの実行権限を確認

chmod +x engine/engine
  1. エンジンパスを環境変数で指定

ENGINE_PATH=/path/to/engine npm run start:bridge

ライセンス

MIT

Available Tools

3 tools
analyzeEngine 解析C

SFENを解析して候補手(MultiPV)・評価値・PVを返す

Inputs: sfen (required), depth, forceMove, multipv, +1 more.

eval_at特定手の直後を評価C

現局面で特定の一手を指した先を解析して返す

Inputs: move (required), sfen (required), depth, multipv, +1 more.

pingPingB

ヘルスチェック(常に pong を返す)

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: 'analyze' evaluates the current position, 'eval_at' analyzes a specific move from the current position, and 'ping' is a health check. There is no overlap in functionality, making tool selection unambiguous for an agent.

    Naming Consistency4/5

    The naming is mostly consistent with a verb-based pattern ('analyze', 'eval_at', 'ping'), though 'eval_at' uses an underscore while the others do not, and 'ping' is a simple verb rather than a descriptive action. This minor deviation keeps the set readable but not perfectly uniform.

    Tool Count3/5

    With only 3 tools, the set feels thin for a Shogi server, as it lacks operations like move generation, game state management, or board manipulation. While the tools cover core analysis, the count is borderline for the domain's potential scope.

    Completeness2/5

    The tool surface has significant gaps for a Shogi server: there are no tools for creating or modifying game states (e.g., making moves, resetting boards), accessing game history, or handling game rules. This incompleteness will likely cause agent failures in broader Shogi-related tasks.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      An MCP bridge that provides an interface to UCI-compatible chess engines like Stockfish for analyzing positions and retrieving best moves. It enables users to interact with chess engines through commands for position management, engine information, and move calculation.
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A powerful chess engine and game server built with the Model Context Protocol (MCP). Play chess against AI, analyze positions, and integrate chess functionality into your AI applications.
      48 npm
      1
      ISC
    • F
      license
      A
      quality
      D
      maintenance
      Enables chess analysis and move generation using the Stockfish engine via MCP tools, allowing clients to evaluate positions, get best moves, apply moves, and visualize boards.
      7
      -
    • A
      license
      A
      quality
      B
      maintenance
      MCP chess runtime that lets LLMs play, analyze, and adapt strength by exposing Stockfish, human move likelihood (Maia3), and Lichess statistics, with the LLM handling strategy and the server handling computation.
      13
      31 npm
      AGPL 3.0