README.md•2.93 kB
# クロスワード MCP サーバー
このリポジトリは、クロスワード支援MCPサーバーです。盤面とカギ定義が記載されたテキストファイルを読み込み、候補語の登録、整合性チェック、最終盤面の描画などを行えます。
## 必要環境
- Python 3.11 以降
- [uv](https://github.com/astral-sh/uv)
依存関係は `uv run` 経由でインストールされるため、事前に手動で `pip install` する必要はありません。
## データ形式
- **グリッド (`data/grid-*.txt`)**
- 全角数字で行・列番号を記載
- 入力可能なマスは全角の「?」
- 黒マスは全角の「#」
- **カギ (`data/clue-*.txt`)**
- 1 行 1 レコードの JSON Lines
- `id`, `direction` (`"across"` / `"down"`), `row`, `col`, `length`, `clue` をすべて指定
`data/`フォルダに、サンプルのgridとclueのペアを記載しています。別の問題を解かせたい場合は、このファイルを参考にgrid, clueのファイルを作成してください。
## 提供ツール
MCP サーバーは次のツール(メソッド)を提供します。
| ツール名 | 説明 |
| --- | --- |
| `setup` | グリッドとカギ定義を読み込み、状態を初期化します。 |
| `register_candidates` | 文字数が一致する候補語を追加登録します。既存候補は保持され、重複は無視されます。 |
| `get_candidates` | 指定した `clue_id` の候補語リストを取得します。 |
| `search_consistent_sets` | 現在の候補語から整合性を満たす組合せを全探索します。 |
| `render_solution` | 全カギの解答(ひらがなのみ)を盤面に反映し、整形済みのグリッドを描画します。 |
| `solve_crossword` | 上記ツール群を組み合わせて解法を進めるためのプロンプトです。 |
## Claude Code への登録と利用方法
Claude Code に本サーバーを追加するには、プロジェクトルートで次のコマンドを実行してください。
```bash
claude mcp add crossword_tools --scope project -- uv run --with fastmcp fastmcp run src/server.py
```
(`crossword_tools` はこのサーバーに付与する MCP 名称です。必要に応じて変更してください)
登録後は、Claude Code においてカスタムスラッシュコマンド `/crossword_tools` を選択し、引数としてグリッドとカギのファイル(またはテキスト)を指定してください。
プロンプトに沿って、Claude Codeが自律的に状態の初期化や候補語の追加、整合性チェックを行い、最終解答にたどり着いた場合はその解答の描画・レポート作成を行います。
```
/crossword_tools:solve_crossword (MCP) grid-001.txt clue-001.txt
```
## ライセンス
本リポジトリは MIT License の下で提供されます。