mcpField
E
EasyChatDM - Demonstrates creating a simple MCP Server tools

EasyChatDM - Demonstrates creating a simple MCP Server tools

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

EasyChatDM - Demonstrates creating a simple MCP Server tools について

EasyChatDMは、Spring AI MCPでのMCPツール作成を学ぶ開発者向けのD&Dサンプルプロジェクトです。ランダム判定やゲーム素材を提供し、DMジャーナルを永続化します。

主な機能

  1. 01ランダム判定とゲーム素材を提供
  2. 02DMジャーナルを永続化
  3. 03標準のSQLiteと選択可能なPostgreSQL
  4. 04ツール、リソース、プロンプトの実装例

活用シーン

  1. 01D&Dセッションのランダムな結果生成
  2. 02ゲームへのイベントやキャラクターの追加
  3. 03Spring AI MCPツールの作成学習

MCP 対応

Claude desktopなどのMCPクライアント向けにツールを提供し、MCPリソースとプロンプトの実装例も示します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

EasyChatDM - シンプルな MCP サーバーのツール作成を紹介します

生成 AI で D&D をプレイするための MCP サーバーのツールの例です。これらのツールは、ランダムな「はい/いいえ」の質問だけでなく、描写、イベント、NPC などを決めるために使うオラクルです。ゲームに不確実性や意外な展開、ランダム性を取り入れたいときに使う「ランダム表」です。このプロジェクトは教育目的のため、適切なコード設計にはあまり配慮していません。

これらは Claude のデスクトップアプリやその他の MCP クライアントで動作する MCP サーバーのツールです。Spring AI MCP で記述されています。このプロジェクトは教育目的のため、優れた設計については考慮していません。その代わり、ツールの作成方法を手順に沿って簡単に追えるようにコードを記述しています。

実行方法

src/main/easychatdmdir/prompts/ の内容をすべて ~/.easychatdm にコピーしてください。これらは、プロンプトやオラクルなどで使用するファイルです。

データベースの設定

DM Journal は、プレーンな JSON ファイルではなく、データベースに保存されるようになりました。ローカルでの実行では、デフォルトで SQLite が使用され、データベースファイルは ~/.easychatdm/easychatdm.db に保存されます。SQLite と PostgreSQL の切り替えは、システムプロパティまたは環境変数のみで設定できます。

使用可能なプロパティ
プロパティデフォルト説明
easychatdm.dir${user.home}/.easychatdmプロンプト/オラクルの基本ディレクトリ、および SQLite の場合はデータベースファイルの保存場所です。
easychatdm.db.typesqlitesqlite(ローカルファイル)または postgres(リモートデータベース)を選択します。
easychatdm.db.sqlite.path(easychatdm.dir から派生)SQLite データベースへの完全なパスを上書きします。ディレクトリを指定すると、下記のファイル名が追加されます。
easychatdm.db.sqlite.file-nameeasychatdm.db解決されたディレクトリ内に SQLite データベースを作成するときに使用する名前です。
easychatdm.db.sqlite.pool-size1SQLite 使用時の HikariCP のプールサイズです(通常は 1 にしてください)。
easychatdm.db.postgres.url(db.type=postgres の場合は必須)PostgreSQL インスタンスの JDBC URL です。
easychatdm.db.postgres.username(db.type=postgres の場合は必須)データベースのユーザー名です。
easychatdm.db.postgres.password(空の文字列)データベースのパスワードです。
easychatdm.db.postgres.pool-size4PostgreSQL 使用時の HikariCP のプールサイズです。
easychatdm.journal.export-filesSQLite の場合は true、Postgres の場合は false有効にすると、ジャーナルの内容を JSON/Markdown ファイルにも反映します。

Cloud Foundry(またはその他のリモートデプロイ)では、たとえば JAVA_OPTS を使ってシステムプロパティを設定します。

JAVA_OPTS: >-
  -Deasychatdm.db.type=postgres
  -Deasychatdm.db.postgres.url=${JDBC_DATABASE_URL}
  -Deasychatdm.db.postgres.username=${JDBC_DATABASE_USERNAME}
  -Deasychatdm.db.postgres.password=${JDBC_DATABASE_PASSWORD}

謝辞

詳細

この EasyChatDM をより複雑にし、機能を充実させ、設計を多少改善したバージョンについては、ChatDM プロジェクトをご覧ください。

プロジェクトを解説する動画はこちらです。

  1. 動画シリーズのパート 1
    非常にシンプルな MCP ツールランドを作成します。
  2. 動画シリーズのパート 2 では、ファイルベースのオラクルを作成し、Claude が作成するログの使い方を確認して、自分でログを取り始めます。
  3. パート 3 では、DM Journal としてゲーム情報をプレイセッション間で保持するための MCP リソースを作成します。
  4. 最後に、MCP プロンプトを作成します。これは本当にわくわくします。
    「エージェント的」と感じられるものを初めて垣間見ることができます。

残りの動画が公開されたら、プレイリストをぜひご覧ください。

参考資料

バージョン

  • 0.0.4 - DM ジャーナルはデフォルトで SQLite に保存され、システムプロパティを使用して PostgreSQL に切り替えられます。
  • 0.0.3 - 比較的安定しており、DM ジャーナルの保存にサービスを使用するよう変更する前のバージョンです。このバージョンは引き続きファイルアクセスに依存します。

コメント

MCP は初めてですか?

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

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