brightspace-d2l-mcp について
brightspace-d2l-mcp は、D2L Brightspace を利用する学生向けに、期限、提出状況、成績、授業資料への読み取りアクセスを提供します。通常のブラウザーで学校にサインインし、パスワードは保存しません。
主な機能
- 01課題と期限の一覧化
- 02実際の提出状況の確認
- 03成績と目標点の確認
- 04授業資料とお知らせの閲覧
- 05未完了の期限をカレンダーに出力
活用シーン
- 01未提出の課題を一覧で確認
- 02期末の目標点に必要な成績を確認
- 03試験日程と授業の新着情報を把握
MCP 対応
D2L Brightspace のコース、課題、成績、コンテンツ、カレンダーを扱う読み取り専用ツールを AI アプリやエージェントに提供します。ローカルの stdio と streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| daysAhead | integer | いいえ | 何日先まで含めるか |
| includeOverdueDays | integer | いいえ | 指定した日数前に期限を過ぎた未完了の作業も含めます |
詳細
Brightspace D2L MCP サーバー
D2L Brightspace を Claude、ChatGPT、Cursor、Copilot に接続します。
提出済みの課題を把握しているため、実際に残っている課題だけを表示します。
コマンドは 1 つ。いつもどおりにサインインするだけ。パスワードは保存されません。
AI アシスタントやエージェントに Brightspace のコースへの読み取りアクセスを提供する MCP(Model Context Protocol) サーバーです。実際の提出状況に基づく締切、成績、課題、ルーブリック、コースコンテンツ、お知らせ、ディスカッション、クラス名簿を確認できます。Microsoft、Duo、Okta、Shibboleth のシングルサインオンを利用する学校を含め、D2L Brightspace を利用するすべての学校で動作します。
クイックスタート
Node.js 20 以降 と Google Chrome または Microsoft Edge が必要です。
npx brightspace-d2l-mcp setup
これだけで準備完了です。セットアップで学校を指定すると、ブラウザーが開いてサインインでき、検出された AI アプリすべてに接続されます。 AI に次のように聞いてみましょう。
「今、何に取り組めばいいですか?」
初めての方は、**ステップごとのセットアップガイドで各手順を画像付きで確認できます。 特定のアプリをお使いですか? Claude と ChatGPT のガイド、または他の Brightspace MCP サーバーとの比較**をご覧ください。
比較
通常、Brightspace MCP サーバーをいくつか比較してから選びます。特に目立つ違いを3つ紹介します。その他の違いについては、比較の全文をご覧ください。
| サーバー | 提出状況 | サインイン(SSO) | 目標成績 |
|---|---|---|---|
Brightspace MCP(このリポジトリ、brightspace-d2l-mcp) | 各締切日に提出済みかどうかが表示され、ToDoリストには完了した課題が表示されません | 実際のブラウザーウィンドウで自分でサインインするため、Microsoft、Duo、Okta、Shibbolethなど、あらゆるSSOを利用できます。パスワードは保存されません | get_grade_outlook では、現在のパーセンテージ、最終成績の最高値と最低値、任意の目標を達成するために残りの課題で必要な成績がわかります |
| RohanMuppaによるbrightspace-mcp-server | 課題ツールに表示されます | KeychainまたはCredential Managerにパスワードを保存する自動サインイン機能があり、9校分のプリセットが用意されています | 公開されているツール一覧には目標成績用ツールはありません |
| JhostinAleckによるbrightspace-mcp | 提出したファイルの一覧が表示されます | 設定可能な自動ログイン機能:HTTPログイン、Microsoft用プリセットを備えたヘッドレスブラウザー、Duoプッシュ、または貼り付けたCookieを使用します | grade_audit で「合格するために必要な成績」がわかります |
| @n35da/brightspace-mcp | 各ドロップボックスフォルダーに表示されます | 実際のブラウザーウィンドウで、学校のSSOを使ってサインインします | 公開されているツール一覧には目標成績用ツールはありません |
| @exhabition/brightspace-mcp(Rust) | 課題と提出物の読み取り機能があります | Microsoft SSOのみ対応の、画面が表示されるChromiumウィンドウを使用します | 公開されているツール一覧には目標成績用ツールはありません |
「公開されているツール一覧には目標成績用ツールはありません」とは、2026年10月時点で各プロジェクトの公開READMEとツール一覧に見つからなかったという意味であり、今後追加されることがないという意味ではありません。表に誤りがあれば、Issueを作成してください。修正します。
brightspace-mcp-serverからの切り替え
RohanMuppaによるbrightspace-mcp-serverを使用していて、このサーバーを試したい場合は、パッケージ名を変更するだけです。それ以外はそのままです。
MCP設定で、mcpServers内のbrightspaceエントリーを見つけて、コマンドを置き換えてください。
{
"mcpServers": {
"brightspace": {
"command": "npx",
"args": ["-y", "brightspace-d2l-mcp@latest"]
}
}
}
Windowsでは、現在と同じように起動コマンドをcmd /cで囲みます。
{
"mcpServers": {
"brightspace": {
"command": "cmd",
"args": ["/c", "npx", "-y", "brightspace-d2l-mcp@latest"]
}
}
}
その後、アプリを再起動します。ファイルを編集したくない場合は、npx brightspace-d2l-mcp setupを実行してください。学校を選ぶと、サインイン用のブラウザーウィンドウが開き、設定エントリーが自動で書き込まれます。npx brightspace-d2l-mcp configを使えば、任意のアプリ向けの正確なJSONを出力することもできます。
引き継がれるものと引き継がれないもの
| 状態 | |
|---|---|
mcpServers の brightspace サーバー名 | こちらでも同じなので、設定項目や brightspace サーバーを参照する保存済みプロンプトは引き続き使えます |
| ツール名 | 異なります。こちらで使えるツールは、上のツールの表で確認し、代わりにその名前を AI に伝えてください |
| Brightspace のアカウントとコース | 移行するものはありません。このサーバーも以前と同じようにあなたとしてサインインし、履修中のコースを確認します |
D2L_INCLUDE_COURSES または D2L_EXCLUDE_COURSES の設定 | こちらでも同じ名前の設定を読み取るため、環境変数ブロックのコースフィルターは引き続き機能します。D2L_ACTIVE_ONLY も同様に、こちらで読み取ります |
| 最初のサーバーがコンピューターに保存したもの | そのまま残ります。このサーバーは独自の設定とセッションを ~/.brightspace-d2l-mcp/ に保存するため、自分で削除しない限り、そこにあるものは変わりません |
元に戻したい場合は、同じ場所に以前のコマンドを戻してください。サーバー名を2つに分ければ、両方のサーバーを並べて設定することもできます。ただし、1つの AI アプリから同時に2つの Brightspace サーバーに接続すると、利点よりも混乱のほうが大きくなりがちです。
最初のサーバーが行うことのうち、こちらでは行わないものもあります。最初のサーバーでは、パスワードをコンピューターの認証情報ストアに保存してブラウザーウィンドウを開かずにサインインでき、名前付きの複数の学校向けプリセットも用意されています。こちらのサーバーでは、シングルサインオンを利用できるよう、必ず通常のブラウザーウィンドウを開いて自分でサインインします。その後に保持するのはブラウザーセッションだけです。
質問してみましょう
| 質問例 | |
|---|---|
| ✅ 残っている課題 | 「今すぐ取り組むべき課題は何ですか?」・「まだ提出していないものはありますか?」 |
| 📅 締め切り | 「今週が締め切りの課題は何ですか?」・「明日が締め切りのものはありますか?」 |
| 📊 成績 | 「私の成績はどうですか?」・「微積分の単位は取れていますか?」 |
| 📢 お知らせ | 「今日、教授から何か投稿がありましたか?」 |
| 📚 コースのコンテンツ | 「中間試験の復習用スライドを探して」・「Lab 3 の指示を要約して」 |
| 📎 課題のファイル | 「プロジェクトのルーブリックには何が書かれていますか?」 |
| 💬 ディスカッション | 「最終プロジェクトのスレッドで、みんなは何と言っていますか?」 |
| 👥 クラスの名簿 | 「私のネットワークのコースの TA は誰ですか?」 |
| 🎯 目標の成績 | 「最終試験で80点を取るには何点必要ですか?」・「まだ単位を取れますか?」 |
| 🗓️ カレンダー | 「締め切りをカレンダーに入れて」 |
| 📝 試験 | 「中間試験はいつですか?」・「今週の予定には何がありますか?」 |
| 🔔 新着情報 | 「最近の情報を教えて」・「採点されたものはありますか?」 |
提出済みの課題も把握できます
多くのツールが確認するのは締め切りだけなので、終わった課題にも取り組むように言い続けます。 こちらでは、すべての課題について実際の提出状況を確認します。
| 状態 | 意味 |
|---|---|
submitted / graded | 完了です。やるべきこととして提案されることはありません。 |
not_submitted / draft | まだ対応が必要です。 |
not_open_yet | 提出用のドロップボックスはまだ開いていません。開く日時が表示されます。 |
closed / past_due | もう提出できません。 |
unknown | クイズ:Brightspace では学生にクイズの受験状況が表示されないため、AI があなたに確認します。 |
ツール
D2L Brightspace 用の 17 個の MCP ツールです。すべて Brightspace から情報を読み取るだけで、内容を変更することはありません。
| ツール | 機能 |
|---|---|
get_todo | すべてのコースを対象に、優先順位を付けた ToDo リストを表示します。期限が近いもの、期限を過ぎたもの、まだ公開されていないもの、すでに完了したものを確認できます |
get_upcoming_due_dates | 各課題の実際の提出状況を含む、今後の締め切りを表示します |
get_my_courses | 履修中のコースと、その名称、コード、ID を表示します |
get_my_grades | コースごとの成績の内訳を、点数、パーセンテージ、教員のコメントとともに表示します |
get_assignments | 提出用フォルダー(ドロップボックス)とクイズを、締め切り、ステータス、ルーブリックとともに表示します |
get_assignment_files | 課題に添付された説明、配布資料、ルーブリックのファイルを読み取ります |
get_course_content | コースのモジュール、講義スライド、ファイル、リンクを表示します |
get_syllabus | コースのシラバスと概要を表示します |
get_announcements | 教員からの最近のお知らせ(ニュース)を表示します |
get_discussions | ディスカッションフォーラム、トピック、投稿を表示します |
get_roster | 教員と TA の連絡先情報を表示します。必要に応じてクラス全員のリストも表示できます |
get_classlist_emails | コースに所属する全員のメールアドレスを表示します |
download_file | 選択したフォルダーに、コースのファイルまたは提出物を保存します |
get_grade_outlook | コースでの現在の成績状況と、目標の成績を取るために残りの課題で必要な点数を表示します |
export_due_dates_calendar | 未完了の締め切りを含むカレンダーファイル(.ics)を作成します。Google Calendar、Apple Calendar、Outlook に対応しています |
get_calendar_events | コースのカレンダーにある試験、小テスト、実験、授業、その他のイベントを表示します |
get_whats_new | すべてのコースを対象に、新しいお知らせ、新たに採点された課題、未読のディスカッション、未受験のクイズをまとめます |
プロンプトと質問の例
MCP プロンプトに対応したアプリでは、ワンクリックのショートカットまたはスラッシュコマンドとして表示されます。名前を覚える必要はありません。プロンプトは AI に呼び出すツールを指示するだけなので、通常のチャットに質問の例を入力しても動作します。
| プロンプト | 質問の例 | 使用するツール |
|---|---|---|
what_should_i_do_now | 「今すぐ取り組むべきことは何ですか?」 | get_todo |
plan_my_week | 「今週の予定はどのようになりますか?」 | get_todo |
weekly_digest | 「締め切り、イベント、成績をまとめた週次ダイジェストを作成してもらえますか?」 | get_todo, get_calendar_events, get_whats_new, get_my_grades |
grade_target | 「最終試験で 80 点を取るには、何点必要ですか?」 | get_my_courses, get_grade_outlook, get_syllabus |
exam_prep | 「来週金曜日のネットワーク試験に向けて、準備を手伝ってもらえますか?」 | get_my_courses, get_syllabus, get_course_content, get_announcements, get_todo |
summarize_assignment | 「ラボ 3 の説明とルーブリックを要約してもらえますか?」 | get_assignments, get_assignment_files |
put_deadlines_in_my_calendar | 「締め切りをカレンダーに登録してもらえますか?」 | export_due_dates_calendar |
catch_me_up | 「新しい情報はありますか?何か採点されましたか?」 | get_whats_new, get_my_grades |
when_are_my_exams | 「試験はいつありますか?」 | get_calendar_events, get_announcements, get_syllabus |
あらゆる Brightspace 導入校で動作
学校によってサインイン方法は異なります。Microsoft、ADFS、Duo、Shibboleth、Okta、Google、キャンパス選択画面、Brightspace 独自のフォームなどがあります。 学校の方式を推測する代わりに、セットアップ時に通常のブラウザーウィンドウが開き、毎日のサインインと同じ方法でログインできます。テキストコードや認証アプリもそのまま使えます。
その後はバックグラウンドで静かにサインイン状態が維持されます。学校から再度サインインを求められた場合は、ブラウザーウィンドウが開き、完了すると自動的に閉じます。
自分の学校でも使えますか?
学校で D2L Brightspace を使っているなら、使えます。セットアップ時に通常のブラウザーウィンドウが開くため、Microsoft、Duo、Okta、Shibboleth など、どのサインイン方法でも利用できます。
| 学校 | 状況 |
|---|---|
| ある大学 | 作者がテスト済み |
| その他の D2L 対応校 | 動作するはずです。利用している学校を添えて issue を作成してください。ここに追加します |
AI アプリやエージェントで使えます
セットアップ時に自動接続: Claude Desktop · Claude Code · Cursor · VS Code(GitHub Copilot) · Windsurf · OpenAI Codex · Gemini CLI · Cline · Roo Code · OpenCode · Zed · LM Studio · Kiro
コピー&ペーストですぐに使えます: ChatGPT(開発者モード) · Continue · Goose · JetBrains AI Assistant · Warp · Amp · Msty · Jan · AnythingLLM
エージェントフレームワーク: OpenAI Agents SDK · Claude Agent SDK · LangChain / LangGraph · Vercel AI SDK · Mastra · CrewAI · Pydantic AI · LlamaIndex
ローカルアプリでは stdio、ChatGPT やホスト型エージェントでは streamable HTTP(serve --http)で動作します。
これらすべてのセットアップ方法をコピー&ペーストできる形式で、docs/agents.md に掲載しています。
AI にインストールしてもらう
これを Claude Code、Cursor、Windsurf、Copilot、または Codex に貼り付けると、すべてセットアップしてくれます。
Install brightspace-d2l-mcp for me by following
https://github.com/AnonymousOnyx22/brightspace-d2l-mcp/blob/main/llms.txt
コマンド
| コマンド | 説明 |
|---|---|
npx brightspace-d2l-mcp setup | 学校を選択し、サインインして、AI アプリを接続します。Windows では完了するとウィンドウが自動で閉じます(これを無効にするには --keep-open を指定します) |
npx brightspace-d2l-mcp login | 再度サインインします |
npx brightspace-d2l-mcp status | 学校、サインイン状態、接続済みアプリを表示します |
npx brightspace-d2l-mcp doctor | Node、学校、サインイン、接続済みアプリを確認し、問題があれば修正方法を案内します |
npx brightspace-d2l-mcp logout | 保存済みのセッションを削除します |
npx brightspace-d2l-mcp uninstall | すべての AI アプリから削除し、ローカルデータをすべて削除します |
npx brightspace-d2l-mcp serve --http | ChatGPT や HTTP ベースのエージェント向けに HTTP で実行します |
npx brightspace-d2l-mcp config | その他のアプリ向けに MCP 設定 JSON を出力します |
新しいバージョンが公開されている場合、コマンドを実行すると、最初に更新するかどうかを尋ねられます。無効にするには BRIGHTSPACE_NO_UPDATE_CHECK=1 を設定します。
セットアップオプション
npx brightspace-d2l-mcp setup --school yourschool.brightspace.com # skip the school question
npx brightspace-d2l-mcp setup --apps claude-desktop,cursor # only connect these apps
npx brightspace-d2l-mcp setup --skip-login # sign in later, on first use
npx brightspace-d2l-mcp setup --yes # accept every default
アプリ ID:claude-desktop、claude-code、cursor、vscode、windsurf、codex、gemini-cli、cline、roo-code、opencode、zed、lm-studio、kiro。
プライバシーとセキュリティ
- パスワードを参照したり保存したりすることはありません。 実際のブラウザーで、学校独自のサインインページにパスワードを入力します。
- 読み取り専用です。 Brightspace への送信、投稿、変更はできません。どのツールも GET リクエスト以外は送信せず、API クライアントには書き込みメソッドが一切ありません。また、書き込みメソッドが追加された場合はテストによってビルドが失敗します。読み取り専用の適用方法をご覧ください。
- ローカルのみです。 すべての処理はお使いのコンピューター上で実行され、学校の Brightspace とのみ通信します。間にサーバーはなく、分析情報の収集もありません。
- お使いのブラウザーと同じアクセス権限で、公式の Brightspace API を使用します。
- セッションは
~/.brightspace-d2l-mcp/に保存され、お使いのユーザーアカウントからのみ読み取れます。logoutでセッションを削除し、uninstallですべてを削除します。
トラブルシューティング
何かがうまく動作しませんか? docs/troubleshooting.md では、Brightspace のツールが表示されないアプリ、セットアップウィンドウが開かない問題、何度も失敗するシングルサインオンについて、それぞれに表示される正確なメッセージとともに解説しています。まずは npx brightspace-d2l-mcp doctor を実行してください。
「サポートされているブラウザーが見つかりません」
Google Chrome をインストールするか、Microsoft Edge(Windows にすでにインストールされています)を使用してください。
または、npx playwright install chromium で Chromium の専用コピーをインストールしてください。
学校のアドレスが受け付けられません
ブラウザーで Brightspace にサインインし、アドレスバーからアドレスをコピーしてください(どのページでも構いません)。 サイトが「Blackboard」または「Canvas」で動作していると表示される場合、その学校では Brightspace を使用していません。
Claude Desktop に Brightspace が表示されません
Claude Desktop を完全に終了し(トレイアイコン → 終了。ウィンドウを閉じるだけではありません)、その後 setup を再実行してください。
Claude Desktop は起動中に設定を書き換えるため、セットアップでは再起動も提案されます。
何度もサインインを求められます
数時間ごとにセッションを終了する学校もあります。その場合、再度サインインするためのブラウザーウィンドウが開きます。
npx brightspace-d2l-mcp doctor を実行して問題を確認するか、status で簡単に状態を確認するか、login ですぐにサインインしてください。
ウィンドウが自動で開かないようにするには、~/.brightspace-d2l-mcp/config.json に "autoLogin": false を追加してください。
古いコースを除外したいです
~/.brightspace-d2l-mcp/config.json にコース ID を追加してください:
{ "excludeCourses": [123456, 789012] }
または、"includeCourses" を使って特定のコースだけを残してください。AI に「ID 付きで自分のコースを一覧表示して」と頼むと確認できます。
Claude を D2L Brightspace に接続するにはどうすればよいですか?
npx brightspace-d2l-mcp setup を実行します。Claude Desktop と Claude Code が自動的に接続されます。その後、コースについて Claude に質問できます。
D2L Brightspace 向けの AI アシスタントはありますか?
はい。Brightspace を、すでにお使いの AI アプリ(Claude、ChatGPT、Cursor、GitHub Copilot、Gemini など)に接続できるため、コースごとに操作しなくても、締め切りや成績、コースのファイルについて自然な英語で質問できます。
ChatGPT で Brightspace を使うにはどうすればよいですか?
npx brightspace-d2l-mcp serve --http を実行して、トンネル経由で公開し、その URL を ChatGPT の開発者モードでコネクターとして追加します。docs/agents.md で各手順を説明しています。
Brightspace を Cursor、VS Code Copilot、または Windsurf に接続するにはどうすればよいですか?
npx brightspace-d2l-mcp setup を実行します。Cursor、VS Code、Windsurf およびその他 10 個のアプリが検出され、自動的に接続されます。
ChatGPT、カスタムエージェント、または Claude Agent SDK と一緒に使えますか?
はい。ローカルエージェントと SDK では npx -y brightspace-d2l-mcp@latest で起動し、ChatGPT または HTTP ベースのエージェントでは npx brightspace-d2l-mcp serve --http を使います。docs/agents.md には、ChatGPT、OpenAI Agents SDK、Claude Agent SDK、LangChain、Vercel AI SDK などのコピーして使えるセットアップ手順があります。
学校の API キーや管理者アクセス権は必要ですか?
いいえ。通常、Brightspace の API キーを取得するには管理者が必要です。このツールでは自分の学生アカウントでサインインするため、Brightspace で自分に見える情報だけが表示され、学校側での設定も不要です。
brightspace-mcp-server からこちらに切り替えるにはどうすればよいですか?
MCP 設定のパッケージ名を変更します。同じ brightspace エントリーで brightspace-mcp-server を brightspace-d2l-mcp に置き換え、アプリを再起動してください。または、npx brightspace-d2l-mcp setup を実行すると、エントリーが自動的に書き込まれます。brightspace-mcp-server からの切り替えでは、引き継がれるものと引き継がれないものについて説明しています。
Duo、Microsoft Authenticator、または SMS コードに対応していますか?
はい。実際のブラウザーウィンドウで自分でサインインするため、学校で使われているどのサインイン方法にも対応します。
目標の成績に届くために期末試験で何点必要か教えてもらえますか?
はい。「Calculus で 80 点を取るには期末試験で何点必要ですか?」と尋ねると、get_grade_outlook が Brightspace から取得した配点を使い、現在の割合、期末試験の成績の最高値と最低値、および残りの課題で必要な平均点を示します。
Brightspace の締め切りを Google カレンダー、Apple カレンダー、または Outlook に登録できますか?
はい。AI に締め切りをカレンダーに追加するよう依頼できます。export_due_dates_calendar は Brightspace へのリンクと各イベントの 1 日前のリマインダーを含む .ics ファイルを作成し、未提出の課題だけを含めます。
どの学校で使えますか?
D2L Brightspace を利用している学校ならどこでも使えます。アドレスが yourschool.brightspace.com、yourschool.desire2learn.com のような形式でも、learn.yourschool.edu のようなカスタムドメインでも対応します。
課題を提出したり、代わりに投稿したりできますか?
いいえ。意図的に読み取り専用になっています。
これは D2L が開発したものですか?
いいえ。自分のアカウントでサインインして公式の Brightspace API を使う、独立したオープンソースプロジェクトです。D2L とは提携しておらず、D2L の推奨を受けたものでもありません。
開発
git clone https://github.com/AnonymousOnyx22/brightspace-d2l-mcp.git
cd brightspace-d2l-mcp
npm install
npm run build
npm test
node build/index.js setup # connects your AI apps to this local build
ツールは src/tools/、サインイン機能は src/auth/、セットアップは src/cli/ にあります。
Issue やプルリクエストを歓迎します。
その他の無料の学生向け MCP サーバー
すべて無料でオープンソースです。アカウントにアクセスする機能は読み取り専用です。brightspacemcp.com/more-mcps で全一覧をご覧ください。
| サーバー | 機能 |
|---|---|
| Canvas MCP | AI 向けの読み取り専用 Canvas LMS です。締切日、未提出の課題、成績、お知らせを確認できます。 |
| Moodle MCP | AI 向けの読み取り専用 Moodle です。締切日、期限超過の課題、成績、お知らせを確認できます。 |
| Google Classroom MCP | AI 向けの読み取り専用 Google Classroom です。やることリスト、締切日、未提出の課題、成績を確認できます。 |
| GPA Calculator MCP | AI 向けに、GPA、成績の換算、期末試験で必要な成績を計算します。オフラインで動作し、アカウントは不要です。 |
| Citations MCP | DOI、ISBN、または入力した詳細情報から、APA、MLA、Chicago 形式の引用を作成します。アカウントは不要です。 |
| Study Planner MCP | 試験勉強のスケジュール、間隔反復の日程、ポモドーロ計画、課題のマイルストーンを作成します。オフラインで動作します。 |
| Paper Finder MCP | OpenAlex を通じて学術論文を検索し、オープンアクセス版や関連研究を見つけます。キーは不要です。 |
ライセンス
MIT © AnonymousOnyx22
D2L および Brightspace は D2L Corporation の商標です。このプロジェクトは D2L とは提携していません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。