mcpField
B
Brightspace Mcp Server

Brightspace Mcp Server

ローカル
github.com/RohanMuppaAI・エージェント60今日更新

Brightspace Mcp Server について

Brightspace Mcp Serverは、AIクライアントからD2L Brightspaceのコースに読み取り専用でアクセスするMCPサーバーです。学生、教員、TA向けに、成績、締切、告知、教材、カレンダー、人員の情報を扱い、コース関連のプロンプトも提供します。

主な機能

  1. 01成績、課題、締切の読み取り
  2. 02告知、教材、カレンダーの確認
  3. 03コースの参加者やディスカッションの検索
  4. 04コース要約と学習計画のプロンプト
  5. 05ブラウザ経由のログインと多要素認証

活用シーン

  1. 01今後の課題やコース告知の要約
  2. 02成績、課題フィードバック、クイズ日程の確認
  3. 03講義資料、コースファイル、動画の検索
  4. 04教員やTAによる提出物とフィードバックの確認

MCP 対応

このMCPサーバーは、Brightspaceのコースに対する読み取り専用のツールとプロンプトをMCPクライアントに公開します。コース内容の提出、編集、削除は行いません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"brightspace": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp-server"
],
"env": {
"D2L_BASE_URL": "<D2L_BASE_URL>",
"D2L_SESSION_DIR": "<D2L_SESSION_DIR>",
"D2L_HEADLESS": "<D2L_HEADLESS>",
"D2L_TOKEN_TTL": "<D2L_TOKEN_TTL>",
"D2L_INCLUDE_COURSES": "<D2L_INCLUDE_COURSES>",
"D2L_EXCLUDE_COURSES": "<D2L_EXCLUDE_COURSES>",
"D2L_ACTIVE_ONLY": "<D2L_ACTIVE_ONLY>",
"D2L_CURRENT_ONLY": "<D2L_CURRENT_ONLY>",
"D2L_DEV_MODE": "<D2L_DEV_MODE>",
"D2L_NO_UPDATE_CHECK": "<D2L_NO_UPDATE_CHECK>"
}
}
}
}
起動コマンドnpx -y brightspace-mcp-server
設定が必要な環境変数
D2L_BASE_URLYour school's Brightspace URL. Default: https://purdue.brightspace.com. Normally set by the setup wizard in ~/.brightspace-mcp/config.json instead.
D2L_SESSION_DIRLocal root for separate per-school/account directories containing encrypted tokens and browser storage. Encryption keys are kept in the native credential store. Default: ~/.d2l-session
D2L_HEADLESSRun browser authentication without a visible window. Set false only for MFA methods that require browser interaction. Default: true
D2L_TOKEN_TTLシークレットSeconds an access token is used before it is re-minted from the session cookie. Default: 3600
D2L_INCLUDE_COURSESComma separated course (org unit) ids to include. Default: all enrolled courses.
D2L_EXCLUDE_COURSESComma separated course (org unit) ids to exclude.
D2L_ACTIVE_ONLYOnly return courses whose enrollment is active. Default: true
D2L_CURRENT_ONLYOnly return courses whose Access.StartDate to Access.EndDate window contains now, matching Brightspace's "Current Courses" widget. Default: false
D2L_DEV_MODESet to true to record local tool timestamps and safe authentication outcomes in the account session directory. No arguments, results or credentials are logged. Default: false.
D2L_NO_UPDATE_CHECKSet to any value to disable the startup check against the npm registry for a newer version.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmbrightspace-mcp-server5.1.27

ツール

12

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

Brightspace MCP サーバー

npm version npm downloads CI License: MIT Node >= 22

Rohan Muppa 作、Purdue ECE

AI が Brightspace の授業を確認できるので、次のように尋ねるだけです。

「今週の提出期限は?」・「すべての授業で合格できそう?」・「今日のお知らせを要約して」・「講義スライドをフラッシュカードにして」

Claude Desktop、Claude Code、Cursor、ChatGPT Desktop、Windsurf、および MCP(AI にツールを接続する標準規格)に対応するその他のアプリで動作します。コースの読み取りのみを行い、提出、編集、削除は一切しません。

アーキテクチャ図

3 ステップで始める

  1. Node.js(バージョン 22 以降)をインストールします。まだインストールしていない場合は、ダウンロードしてインストーラーを実行すれば完了です。

  2. ターミナルを開いてセットアップを実行します。

    npx -y brightspace-mcp-server@latest setup
    

    学校の Brightspace アドレス、ユーザー名とパスワード、サインイン時に本人確認を行う方法(スマートフォンアプリ、またはテキストメッセージなど)を尋ねられます。パスワードはコンピューター内のパスワード保管場所(Mac の Keychain、Windows の Credential Manager)に保存され、ファイルには保存されません。サインインする前に、Claude Desktop、Cursor、Antigravity、Codex、または Claude Code がインストールされていれば、セットアップによって接続されます。すでにいずれかのアプリに別の場所(古いローカルビルドやフォーク)を指す brightspace エントリがある場合、セットアップはそのエントリを表示し、置き換える前に確認します。

    Mac の場合: Keychain で node に保存済みの Brightspace パスワードの使用を許可するか尋ねられたら、単に「許可」ではなく**「常に許可」**を選択してください。これにより、以降のサインイン(auth コマンドや AI アプリからの質問時)に、再度確認されることなくパスワードを読み取れるようになります。

  3. **AI アプリを再起動して、何か質問します。**最初の質問でサインインします。スマートフォンにサインインの承認を求める通知が届いたら、承認してからもう一度質問してください。

次のいずれかの学校に在籍している場合は、フラグを追加すればアドレスを入力する手間を省けます。--purdue、--suny、--western、--tudelft、--cuny、--leiden、--mcgill、--ngeeann、--javeriana。

**AI にインストールしてもらいますか?**次の内容を Claude Code、Cursor、Windsurf、Copilot、または Codex に貼り付けてください。

Install brightspace-mcp-server for me by following
https://github.com/RohanMuppa/brightspace-mcp-server/blob/main/LLMs.md
(use --purdue at Purdue, --suny at SUNY, --tudelft at TU Delft, --cuny at CUNY, --leiden at Leiden, --mcgill at McGill, --ngeeann at Ngee Ann Polytechnic, or --javeriana at Javeriana Cali).

AI が可能な作業をすべて自動で行います。コンピューターを確認し、サインインに使うブラウザーをダウンロードして、AI アプリを接続します。その後、ターミナルで実行するコマンドを 1 つ提示します。このコマンドでパスワードを入力し、スマートフォンでサインインを承認するまで待機します。ユーザーが行う必要があるのはここだけです。その後、AI がコースを確認できることを確かめます。

別の AI アプリを使っていますか?コマンド npx -y brightspace-mcp-server@latest を MCP 設定に追加してください(Windows の場合:cmd /c npx -y brightspace-mcp-server@latest)。各アプリの詳しい手順:docs/troubleshooting.md。

自分の学校で使えますか?

学校で D2L Brightspace を使用している場合は、はい。次の学校では自動サインインが組み込まれています。

学校サインイン方法フラグ
PurdueMicrosoft(電話での承認、認証アプリのコード、またはブラウザー)--purdue
SUNYキャンパスを選択できる共通サイト--suny
Western UniversityMicrosoft--western
TU DelftNetID(二要素認証なし)--tudelft
CUNYCUNY Login。毎回、認証アプリのコードが必要--cuny
Leiden UniversitySURFconext → Microsoft--leiden
McGill UniversityMicrosoft Entra--mcgill
Javeriana CaliOneGate(パスワード+認証アプリのコード)--javeriana
Ngee Ann PolytechnicMicrosoft Entra--ngeeann
その他の D2L 導入校Brightspace のアドレスを貼り付けてください。ログインページが認識されない場合は、セットアップのサインインに関する質問でオプション 2 を選ぶと、ページが開くので手動でログインを完了できますなし

学校ごとの注意事項:docs/sign-in.md。

質問例

項目質問例
成績「すべての授業で合格していますか?」 · 「コースごとの成績を比較してください」 · 「教授はミニ課題1について何と言っていましたか?」(自分の課題へのフィードバックは、Brightspaceが学生向けに公開しているすべての経路から読み取ります) · 「中間試験にフィードバックはありますか?」(クイズで採点された成績はクイズへのリンクを表示します。LockDown Browserでしか閲覧できないフィードバックを含め、クイズのフィードバックはAPI経由では読み取れないためです)
期限「今後48時間以内に期限を迎えるものは何ですか?」 · 「今週の学習スケジュールを作成してください」
課題と採点基準「ラボ4の仕様では、実際には何を求められていますか?」 · 「分析の評価基準で点数を失ったのはなぜですか?」 · 「HW 3を提出しましたか?」(Brightspaceが学生自身の提出一覧を表示しない場合は、代わりに課題のフィードバックページを確認します。どちらにも提出が表示されない場合は、未提出とはせず、必ず不明と報告します)
クイズと試験「今週、受験期間が終了するクイズはどれですか?」 · 「課題一覧に載っていない中間試験が成績表にありますか?」(クイズはクイズ一覧、コースコンテンツ、成績表から収集されるため、終了したクイズや一覧に載っていないクイズも表示されます。各コースには、クイズの情報源すべてから回答を取得できたかどうかが表示されます。Brightspaceが情報源のいずれかへのアクセスを拒否した場合は、すべて取得できたかのように扱わず、不完全と表示します。「完全」とはすべての情報源から回答を取得できたという意味であり、すべてのクイズが必ず一覧に載るという意味ではありません。一覧から漏れたクイズにリンクする成績表の列は、そのクイズを読み取れる場合、成績だけの行ではなく、日付と受験回数を含むクイズとして表示されるようになりました。Brightspaceが成績の列に文書化済みの GradeType のみを送信するテナントでも、成績表のみの行が表示されるようになりました。非表示の成績列、非表示の課題、無効なクイズは行を生成しません。各コースの最初の30件を超えるコンテンツ内のクイズは、コースコンテンツのみから一覧表示され、コースは不完全と表示されます。クイズの行には、受験可能、終了、または未開始のいずれかの状態や、Brightspaceから詳細を取得できなかったクイズも表示される場合があります。一覧にないクイズの成績表検索は、各コースにつき最大20件までです。コースのクイズツールを特定できない場合は5件までです)
お知らせ「今日、教授から重要なお知らせはありましたか?」 · 「今日のお知らせに添付されたファイルを読んでください」
コースコンテンツ「中間試験の復習用スライドを探してください」 · 「モジュール5のPDFをすべてダウンロードしてください」 · 「このコースでオフィスアワーを検索してください」 · または、保存せずにファイルをそのまま読んでください
シラバス「ECE 264のシラバスにある遅延提出の方針は何ですか?」(コースがSimple Syllabusなどの外部ツールにシラバスを置いている場合は、代わりに開くためのリンクが表示されます)
人物「ECE 264のTAは誰ですか?」 · 「私のプロジェクトグループには誰がいますか?」
ディスカッション「最終プロジェクトのスレッドにある最新の投稿を要約してください」
講義動画「火曜日の録画で、教授はピンチオフについて何と言っていましたか?」(BoilerCastのLTIリンクを含むKalturaとYouTubeに対応しています。YouTubeでサインインや「ボットではないこと」の確認を求められた場合は、その旨に加えて動画リンクと、自分で文字起こしを取得する方法が表示されます。ブラウザーでリンクを開き、「文字起こしを表示」を選択して、内容を貼り付けてください。サーバーがその確認を代わりに通過することはありません)
カレンダー「中間試験はいつですか?」 · 「木曜日のラボは休講ですか?」
教員とTA向け「まだラボ4を提出していない学生は誰ですか?」 · 「この学生の宿題にどのようなフィードバックを残しましたか?」 · 「この学生が提出したPDFをダウンロードしてください」(学生がこれらを利用するには明確な「教員アクセスが必要」という注記が表示されますが、以下のとおり、自分に公開されたフィードバックは読めます)
サインアウト「Brightspaceからサインアウトしてください」(AIアプリが最初に確認を求める場合があります。詳しくはサインインを求められたときをご覧ください)

プロンプト

Claude Desktop のようなプロンプト選択機能を備えたアプリでは、すぐに使えるプロンプトも 4 つ用意されています。質問を入力せずに、ワンクリックで始められます。

プロンプト引数内容
weekly_briefing—すべてのコースを対象に、今後 7 日間の期限が近いもの、新着情報、成績の変更をまとめます
grade_auditcourseId(任意)1 つのコース、またはすべてのコースの成績を分析し、未提出または低得点の項目を指摘します
study_plannerdaysAhead(任意、デフォルトは 7)今後の期限とカレンダーの予定に基づいて、学習時間を計画します
course_summarycourseId(必須)1 つのコースのシラバス、コンテンツの概要、課題、成績を表示します

必要に応じて設定できる項目

すべて任意です。AI アプリの MCP env 設定またはシェルで設定します。一覧は LLMs.md をご覧ください。

設定内容
D2L_REMEMBER_MFA=trueMicrosoft の「次回から表示しない」チェックボックスをオンにし、以降のサインインで 2 つ目の要素を省略します(デフォルトではオフ。共有コンピューターでは使用しないでください)。setup では「サインインの承認をどのくらいの頻度で行いますか」という質問の選択肢 2 として確認し、config.json に rememberMfa として保存します。環境変数を設定すると、その値が優先されます(詳細)
D2L_TOTP_SECRET認証アプリのセットアップキーです。Microsoft Entra の「コードを入力」するチャレンジに、このコンピューター上で応答できるようになります(デフォルトではオフ)。キーを OS のキーチェーンに保存する setup(選択肢 3)の使用をおすすめします。この変数は、キーチェーンのない CI やコンテナー向けです。プロセス環境を読み取れるものなら誰でも第 2 要素を取得できるため、安全性は低くなります(詳細)
D2L_HEADLESS=falseサインイン中にブラウザーウィンドウを表示します。クリックが必要な MFA 方式で使用します
D2L_DUO_PASSCODE=1Duo でプッシュ通知を待たずに、パスコードを入力します
D2L_SESSION_COOKIE / D2L_ACCESS_TOKEN貼り付けた Cookie またはトークンを使って、ブラウザーを完全に省略します(方法)
D2L_INCLUDE_COURSES / D2L_EXCLUDE_COURSESコース ID を使って、AI が参照するコースを制限します
D2L_ACTIVE_ONLY=false登録期間が終了したコースも含めます
D2L_CURRENT_ONLY=trueBrightspace の「現在のコース」ウィジェットのように、現在の登録期間内のコースだけを表示します
D2L_NO_UPDATE_CHECK=1新しいバージョンの通知をオフにします
D2L_RUNTIME_IDLE_SECONDS質問を処理していない状態で、共有バックグラウンドサーバーが停止するまでの待ち時間(デフォルトは 600)
D2L_DEV_MODE=trueセッションの問題をデバッグするため、ツール呼び出しとサインインイベントのローカルログを、コンテンツを含めずに記録します(方法)

すべてのチャットで 1 つのサーバーを共有

各チャットはすでに 1 つの Brightspace サーバーを共有しているため、設定は不要です。各チャットは引き続き通常のコマンドを起動しますが、そのコマンドは小さな中継役にすぎなくなりました。どのチャットからでも最初の質問を送ると、このコンピューター用の共有バックグラウンドサーバーが 1 つ起動し、ほかのすべてのチャット(Claude Desktop、Codex、Cursor など)も同じサーバーを使います。そのため、すべてのチャットでサインイン、保存済みセッション、キャッシュを共有できます。2 つのチャットが同時に起動しても、サーバーは 1 つだけです。チャットを閉じても、ほかのチャットの質問が中断されることはありません。質問を処理していない状態が 10 分続くと、共有サーバーは自動的に停止し、次の質問で再び起動します。

チャットがサーバーを共有するのは、同じ設定とこのパッケージの同じバージョンを使っている場合だけです。異なる D2L_* 設定で起動したチャットや、アップデート後に起動したチャットには、それぞれ独自のサーバーが割り当てられます。バックグラウンドサーバーはどのチャットにも接続されないため、そのログは ~/.d2l-session/…/shared-runtime/ の runtime.log に出力されます。停止までの待ち時間を変更するには、D2L_RUNTIME_IDLE_SECONDS を設定してください。

共有サーバーを自分で実行する(任意)

自分でコピーを1つ実行し、URLで各チャットから接続することもできます。以前と同じ保存済みパスワード、保存済みセッション、サインインを使用します。サインインが必要な質問では、すべてのチャットで一度だけサインインします。

  1. シークレットトークンを一度だけ作成します。 チャットからトークンを提示する必要があるため、ほかのプログラムやウェブページが成績を読み取ることはできません。次のコマンドで生成します。
    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
    
    サーバーと Codex の両方から参照できるように、ユーザー環境変数 D2L_HTTP_TOKEN として保存します。Windows の場合:スタート →「アカウントの環境変数を編集」→「新規」を選び、値として貼り付けます(その後に起動したアプリやターミナルから参照できます)。macOS または Linux の場合:シェルのプロファイル(~/.zshrc、~/.bashrc)に export D2L_HTTP_TOKEN=<token> を追加します。Dock やデスクトップメニューから起動した Codex アプリはそのプロファイルを読み込まない場合があるため、ターミナルから起動してください。サーバーがトークンを出力することはありません。
  2. サーバーを起動し、専用のターミナルで実行したままにします。
    npx -y brightspace-mcp-server@latest http
    
    これには HTTP 対応のリリースが必要です。ソースチェックアウトから試すには、まず npm run build を実行し、続けて node build/index.js http を実行します。このコンピューター上だけで、http://127.0.0.1:18765/mcp をリッスンします。--port 18766 または D2L_HTTP_PORT で別のポートを指定し、手順 3 の URL でも同じポートを使用してください。ログインごとに一度起動します。チャットが起動することはなく、同じポートで2つ目のコピーを起動すると、最初のコピーと並行して実行されず、「already in use」と表示されてすぐに停止します。起動時にサインインすることはありません。
  3. Codex から接続します。 ~/.codex/config.toml で、[mcp_servers.brightspace] エントリの command と args の行を次の内容に置き換えます。
    [mcp_servers.brightspace]
    url = "http://127.0.0.1:18765/mcp"
    bearer_token_env_var = "D2L_HTTP_TOKEN"
    
    (この変数に Bearer <token> が設定されている場合は、env_http_headers = { "Authorization" = "D2L_HTTP_AUTHORIZATION" } も使用できます。)プロジェクト独自の .codex/config.toml はこちらの設定を上書きするため、そこにある brightspace エントリを削除するか、同じように変更してください。setup を再実行するとこのエントリが認識され、トークンの設定も含めて保持されます。
  4. Codex を再起動します。 すでに開いているチャットは、Codex を再起動するまで、チャットごとの古いサーバーを使い続けます。共有サーバーを停止または再起動すると、サーバーが再び稼働するまで呼び出しは失敗します。その後も失敗する場合は、新しいチャットを開始するか、Codex を再起動してください。

変更点:

  • 設定は Codex ではなくサーバーに渡します。 URL エントリには env テーブルを渡すプロセスがないため、D2L_* の設定(上の表を参照)は、http を実行するターミナル、起動元のディレクトリにある .env ファイル、または setup で保存した設定で指定します。
  • サインインメッセージはサーバーのターミナルに表示されます。 承認する番号は引き続きチャットの回答に表示されます。また、ツールの進行状況を表示するクライアントでは、質問の処理中にも表示されます。
  • 停止するには: Ctrl+C を押します。実行中の質問は先に完了します。すぐに停止するには、もう一度 Ctrl+C を押してください。
  • 更新するには: Codex ではなくサーバーを再起動します。クライアントを再起動しても、実行中の古いバージョンのサーバーに再接続するだけです。サーバーを停止し、同じ D2L_HTTP_TOKEN、ポート、設定を使って同じ http コマンドをもう一度実行します。ソースチェックアウトからの場合は、先に npm run update を実行してください。共有サーバーからの更新通知にも同じ内容が記載されます。

Bearer トークンを使って Streamable HTTP URL に接続できるほかの MCP クライアントも、同じサーバーを共有できます。自動共有サーバーに戻すには、command/args のエントリを元に戻し(setup を再実行し、Codex を元に戻すか尋ねられたら「はい」と答えます)、起動したサーバーを停止します。

サインインを求められたとき

別途ログインする必要はありません。質問するとサインインし、ほとんどの日はそのままサインイン状態が保たれます。学校で再び二要素認証が必要になると、承認する番号が回答に表示されます。スマートフォンで承認すると、アシスタントが自動で確認を続けます。確認は毎回最大45秒待機し、サインインが完了すると、承認したことを伝えなくても元の質問への回答が完了します。AI クライアントにツールの進行状況メッセージが表示される場合は、質問がまだ処理中の間に番号が表示されます。処理が止まってしまった場合は、ターミナルで次を実行してください。

npx -y brightspace-mcp-server@latest auth

**Mac の場合、**サインイン時にまず Keychain に保存されたパスワードが読み込まれます。Keychain のプロンプトで一度だけの 許可 を選ぶと、後で AI アプリや別のターミナルからサインインするときに失敗したり、誰も確認できない承認を待って停止したりすることがあります。代わりに 常に許可 を選んでください。この権限で許可されるのは、ローカルの Brightspace サーバーが自身の保存済みサインインパスワードを読み取ることだけで、Keychain 内のほかのデータにはアクセスできません。

2FA の確認を減らしたい場合は、 setup を実行すると、「スマートフォンでのサインイン承認をどのくらいの頻度で行いますか?」という質問が1つ表示されます。1 は毎回(デフォルト)、2 はこのコンピューターを記憶、3 はこのコンピューターが Microsoft のコード要求に自動で応答(認証アプリのセットアップキーが必要)です。オプション2と3は任意で、共有コンピューターでは使用しないでください。無効にするには、setup を再度実行して1を選びます。それぞれの違いやキーの取得手順については、docs/sign-in.md をご覧ください。

早めにサインアウトするには(共有コンピューターの場合など)、AI アプリに Brightspace からサインアウトするよう依頼するか、ターミナルで npx -y brightspace-mcp-server@latest auth --logout を実行してください。このコンピューターに保存されている Brightspace セッションが削除されるため、次に質問すると完全なサインインが必要になります。保存済みのパスワード、認証アプリのキー、設定は保持されるため、認証アプリのキーが保存されていれば、ユーザーが操作しなくてもサインインが完了することがあります。共有コンピューターでは、コンピューターのパスワードストア(Mac の場合は Keychain Access、Windows の場合は Credential Manager)から、保存済みの brightspace-mcp-server エントリーも削除してください。このコンピューターで起動中のほかの AI アプリもサインアウトされ、次の質問時にサインインを求められます。(更新前に起動したアプリは、最大1時間ほど回答を続けることがあります。すぐにサインアウトするには、アプリを終了して再起動してください。)この操作でクリアされるのはこのコンピューターだけです。ほかの場所で Microsoft や Brightspace からサインアウトされることはありません。どちらの方法でも、AI アプリが開始し、ユーザーの承認待ちになっているサインインもキャンセルされます(Windows では auth --logout でキャンセルできません。また、別のターミナルで実行中の auth はそのまま残り、何も削除されません)。キャンセルしても、次のプロンプトが早く届くわけではありません。Microsoft は、前のプロンプトが期限切れになるまで、次のプロンプトを送信しません。期限切れまでの時間は、送信後最大5分です。

確認を求められる頻度は、このツールではなく学校によって決まります。Duo、認証アプリのコード、ブラウザー表示モード、ブラウザーをまったく使わずに実行する方法(Docker、WSL、ハードウェアキー)など、サインインに関するその他の情報は docs/sign-in.md をご覧ください。

何かうまくいきませんか?

  • まず npx -y brightspace-mcp-server@latest doctor を実行してください。Node のバージョン、サインイン用ブラウザー、保存済みのセットアップ、認証情報ストア、Brightspace への接続、保存済みのサインイン、インストール済みのバージョンを確認し、何を修正すればよいかを正確に示します。グローバルインストールの場合は、brightspace-mcp-server doctor を実行すると、クライアントが起動するインストール済みコピーを確認できます。
  • ディスクのクリーンアップでブラウザーが削除されましたか? サインイン時に、見つからない Chromium のダウンロードを一度復元して、自動的に再試行します。インストール済みの Playwright 依存関係が指定するブラウザーリビジョンを使用し、保存済みの認証情報、MFA の登録情報、セッションを保持します。ダウンロードには2分の制限があります。オフラインの場合や修復に失敗した場合は、認証情報のリセットを求めるのではなく、対処方法がわかるインストールエラーを返します。
  • サインインやクライアント設定の変更なしで修復する場合: グローバルインストールでは brightspace-mcp-server repair を、npx インストールでは npx -y brightspace-mcp-server@latest repair を実行してください。自動化では --json を追加します。診断結果には、確認対象のインストールに対応する絶対パス付きコマンドが表示されます。修復では、完全なブラウザー実行ファイルと、ヘッドレスモードで実際に起動して終了できることの両方を検証します。クライアントの登録、学校の設定の更新、SSO/MFA の開始は行いません。
  • ブラウザーのダウンロードファイルは削除しても問題ありませんが、インストール済みパッケージの node_modules 内のファイルは依存関係のコードです。これらのファイルが削除されている場合、診断結果に、パッケージで宣言された依存関係を先に復元するための、インストール先に対応した npm コマンドが表示されます。ブラウザーの修復で npm を実行したり、パッケージを自動的にアップグレードしたりすることはありません。
  • Authentication failed: The native credential store is locked or unavailable. パスワードストアがロックされているか、このサーバーによる保存済みパスワードの読み取りが許可されていません。ロックを解除してください(Mac では、Keychain Access にログインするか、ロックを解除します)。その後、もう一度 npx -y brightspace-mcp-server@latest auth を実行します。それでも失敗する場合は setup を実行し、Keychain の確認時に 常に許可 を選択してください。
  • ターミナルでは動作しますが、アプリでは動作しません: アプリはサーバーを別途起動するため、まだパスワードストアにアクセスできていない可能性があります。docs/troubleshooting.md を参照してください。
  • 起動中にサーバーがタイムアウトしたとアプリに表示される場合: アプリの MCP サーバーログを開いてください。起動ステップはそれぞれ、開始前にタイムスタンプ付きの Startup: ... 行を出力し、終了時に done in N ms を出力します。また、10秒を過ぎても実行中のステップは Startup: still ... を一度出力します。最後に表示された行で、停止していたステップを確認できます。多くの場合、停止しているのはパスワードストアからの保存済みパスワードの取得です。これらの行にユーザー名、パスワード、Cookie が含まれることはありません。
  • 使用中のバージョンを確認するには? AI に「実行中の Brightspace サーバーのバージョンは?」と尋ねてください。
  • まだ解決しませんか? イシューを作成して、ターミナルに表示された内容を貼り付けてください。

開発者向け

ツールのリファレンス、レスポンスのフィールド、環境変数については LLMs.md を参照してください。安全に連携できる内容については STABILITY.md を参照してください。MIT ライセンスのもとでライセンスされています。

コメント

MCP は初めてですか?

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

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