Pokemon Gen3 Calculator
A damage and status calculator for Pokemon Generation 3.
pokemon-gen3-calc-mcp
ポケモン第三世代(ルビー・サファイア・エメラルド・ファイアレッド・リーフグリーン)のステータスとダメージ計算を行う MCP(Model Context Protocol)サーバーです。
概要
このプロジェクトは、LLM がポケモンの計算を正確に行うための外部ツールとして機能します。MCP サーバーとして実装されており、Claude Desktop などの MCP クライアントから利用できます。
主な機能
-
ステータス計算 (
calculate_status): 種族値、個体値、努力値、せいかくを考慮した正確な実数値計算 -
ダメージ計算 (
calculate_damage): 以下の要素を考慮した総合的なダメージ計算- タイプ相性
- タイプ一致補正
- とくせい効果(もうか、げきりゅう、しんりょくなど)
- もちもの効果(こだわりハチマキ、タイプ強化アイテムなど)
- 天候効果(はれ、あめ、すなあらし、あられ)
- 場の状態(リフレクター、ひかりのかべ、どろあそび、みずあそび)
- 能力ランク補正(-6〜+6)
- 急所判定
- 特殊な技の処理(ウェザーボール、けたぐり、ソーラービーム、じばく・だいばくはつ)
-
攻撃側努力値総当たり計算 (
calculate_damage_matrix_varying_attack):- 防御側の努力値を固定し、攻撃側の努力値を総当たりしてダメージ行列を計算
- 相手を確実に倒すための最小限の攻撃努力値を見つける際に有用
-
防御側努力値総当たり計算 (
calculate_damage_matrix_varying_defense):- 攻撃側の努力値を固定し、防御側の努力値を総当たりしてダメージ行列を計算
- 特定の攻撃を耐えるために必要な防御努力値配分を検討する際に有用
必要な環境
- Node.js(Volta 経由でのインストールを推奨)
- npm
インストール
# リポジトリのクローン
git clone https://github.com/ptrst102/pokemon-gen3-calc-mcp.git
cd pokemon-gen3-calc-mcp
# 依存関係のインストール
npm install
使い方
MCP クライアントとの連携
- ビルドを実行して dist ディレクトリにファイルを生成:
npm run build
- MCP クライアント(Claude Desktop など)の設定ファイルに以下を追加:
{
"mcpServers": {
"pokemon-gen3-calc": {
"command": "node",
"args": ["path/to/pokemon-gen3-calc-mcp/dist/index.js"]
}
}
}
特殊な技の処理
この MCP サーバーは以下の特殊な技の処理に対応しています:
ウェザーボール
- 天候によってタイプと威力が変化
- はれ: ほのおタイプ、威力 100
- あめ: みずタイプ、威力 100
- あられ: こおりタイプ、威力 100
- すなあらし: いわタイプ、威力 100
けたぐり
- 相手のポケモンの体重によって威力が変化
- 体重に応じて 20〜120 の威力
ソーラービーム
- あめ、すなあらし、あられの場合、ダメージが半減
じばく・だいばくはつ
- 相手の防御を半分として計算
開発者向け
スキーマの生成
npm run schemagen
このプロジェクトでは、Zod スキーマから MCP(Model Context Protocol)用の JSON スキーマを自動生成する仕組みを採用しています。
src/tools/*/handlers/schemas/ 内の Zod スキーマを変更したのち、
npm run schemagen を実行すると
src/tools/*/generated/inputSchema.ts が自動生成されます。
開発サーバーの起動
npm run dev
結合テスト
開発サーバーが正しく動作しているか確認するために、結合テストスクリプトを用意しています:
# MCPサーバーへの実際のリクエストをテスト
npm run test:integration
結合テストでは以下を検証します:
- サーバーへの接続
calculate_statusツールによるステータス計算calculate_damageツールによるダメージ計算calculate_damage_matrix_varying_attackツールによる攻撃側努力値総当たり計算calculate_damage_matrix_varying_defenseツールによる防御側努力値総当たり計算- エラーハンドリング
推奨開発環境
このプロジェクトの開発には以下のツールの利用を推奨します:
GitHub CLI (gh)
GitHub との連携を効率化するため、GitHub CLI の導入を強く推奨します。
公式のインストール手順を参考にしてください。
Claude Code
AI 支援開発ツール Claude Code の活用を推奨します。このプロジェクトは CLAUDE.md による開発ガイドラインが整備されているため、Claude Code を使用することでコード生成が容易になります。
開発コマンド
# 型チェック
npm run typecheck
# テスト実行
npm run test # 全テスト実行
npm run test -- --watch # ウォッチモードでテスト実行
npm run test -- src/tools/calculateDamage # 特定ディレクトリのテスト
npm run test -- src/utils/adjustSpecialMoves/adjustSpecialMoves.spec.ts # 特定ファイルのテスト
# テストカバレッジ測定
npm run test:coverage # カバレッジ付きでテスト実行
# カバレッジレポート:
# - コンソールに概要が表示されます
# - HTMLレポートは coverage/index.html で確認できます
# リント・フォーマット
npm run lint # チェックのみ
npm run format # 自動修正
# 全チェック(型チェック + リント + テスト)
npm run check
# 結合テスト(MCPサーバーへの実際のリクエストをテスト)
npm run test:integration
# スキーマ生成(ZodスキーマからMCP用JSONスキーマを生成)
# src/tools/*/handlers/schemas/ 内のZodスキーマを変更した後に実行
npm run schemagen
# ビルド(dist/ディレクトリに出力)
npm run build
プロジェクト構造
主要なディレクトリ構成:
src/
├── data/ # ポケモンデータ(種族値、わざ、もちもの等)
├── tools/ # MCPツール定義とハンドラ
│ ├── calculateStatus/
│ ├── calculateDamage/
│ ├── calculateDamageMatrixVaryingAttack/
│ └── calculateDamageMatrixVaryingDefense/
├── types/ # 共通型定義
└── utils/ # 共通ユーティリティ
├── adjustSpecialMoves/ # 特殊な技の処理
├── calculateDamageCore/ # ダメージ計算コアロジック
└── error/ # エラーハンドリング
技術スタック
- TypeScript (ESNext, ESM)
- Model Context Protocol SDK
- Zod (バリデーション)
- Vitest (テスト)
- Biome (リンター/フォーマッター)
- esbuild (ビルド)
ライセンス
MIT
관련 서버
MCP Goodnews
An MCP application that delivers curated positive and uplifting news stories using NewsAPI and Cohere LLM.
Lightning Enable
MCP server enabling AI agents to make Bitcoin Lightning payments, check balances, access L402 APIs, and manage payment budgets. Supports Strike, OpenNode, NWC, and LND wallets.
CryptoAPIs MCP Prepare Transactions
MCP server for building unsigned transactions on multiple blockchains via Crypto APIs
Control4 MCP Server
A safe-by-default MCP server that exposes your Control4 home automation (lights, scenes, locks, thermostats, and media) as structured tools over HTTP and Claude Desktop STDIO for reliable AI-powered control on your local network.
Federal Financial Intel MCP
SEC EDGAR filings, CFPB consumer complaints, and BLS employment data. 4 MCP tools for financial intelligence.
MediaSage
Tracks movies, books, and TV shows to provide intelligent recommendations based on your preferences.
Medical Terminologies MCP
Unified access to global medical terminologies: ICD-11, SNOMED CT, LOINC, RxNorm, MeSH. 27 tools for medical coding, terminology lookup, and crosswalk mappings.
Pokemon MCP
An MCP server for Pokemon-related functionality.
Government Contracts MCP
SAM.gov federal contract opportunities and USAspending award data. 4 MCP tools for procurement intelligence.
Upstox MCP Server
A Model Context Protocol (MCP) server that integrates with the Upstox Trading API, enabling AI agents like Claude to securely access Indian stock market data, perform technical analysis, and view account information in read-only mode.