Skip to main content
Glama

[!IMPORTANT] このプロジェクトは、D2L または SMU によって課される認証および制限を回避または迂回しようとするものではありません。Chrome を介して適切な認証を行った後、D2L API を直接利用します。このプロジェクトは SMU または D2L とは一切関係がありません。問題が発生した場合は、直接私に連絡するか、issue を作成してください。

SMU eLearn MCP

SMU の D2L Brightspace デプロイメント向けの、ローカルで動作する読み取り専用の Model Context Protocol サーバーです。コース、ピン留めされたコース、週次モジュール、コースドキュメント、最近のアップロード/変更、コンテンツ検索、メタデータ、およびファイルダウンロードを公開します。

これはローカルな単一ユーザー向け stdio サービスです。ネットワークサーバーとして公開したり、ユーザー間で共有したりすることを意図していません。

この MCP を利用する最良の方法は、Codex または Claude を経由することです。plugin-package/ フォルダー以下に、インストール可能なプラグインとしてパッケージ化してあります。

機能

MCP ツール

目的

elearn_authenticate

SMU の SSO/MFA のために Chrome を開き、1 分待機して自動的に検証し、セッションを保存します。

elearn_auth_status

ローカルに保存されたブラウザセッションが eLearn API にアクセスできることを検証します。

elearn_list_courses

アクセス可能なコースを、ID、コード、日付、ロール、ピン留め状態とともに一覧表示/検索します。

elearn_list_pinned_courses

信頼できる D2L の PinDate が存在するコースを返します。

elearn_list_course_weeks

ネストされた Week N モジュールとそのドキュメント数を検出します。

elearn_get_week_documents

1 つのコースと 1 つの学術週/モジュールのすべてのドキュメントを取得します。

elearn_get_recent_documents

ピン留め/全/選択コースにわたって、暦週の間にアップロードまたは変更されたドキュメントを取得します。

elearn_get_course_documents

1 つのコース内のすべてのドキュメントを再帰的に一覧表示します。

elearn_search_content

コース横断でドキュメントのタイトルとモジュールパスを検索します。

elearn_get_document_metadata

1 つの D2L コンテンツトピックのメタデータを取得します。

elearn_download_document

既存のフアイルを上書せずに、トピックのフアイルをローカルにダウンロードします。

実装は、D2L の文書化された読み取り専用 API ルートを使用します。表示されるホームページをスクレイピングせず、コース、ピン留め状態、提出物、成績、メッセージ、またはコンテンツを変更しません。

Related MCP server: D2L Brightspace MCP Server

要件

  • Node.js 22 以降

  • Google Chrome

  • eLearn にアクセスできる SMU アカウント

インストールと認証

cd elearn-mcp
npm ci
npm run auth

npm run auth は専用の Chrome プロファイルを開きます。通常の SMU Microsoft サインインと MFA フローを完了してください。1 分後、コマンドは eLearn API を自動的にチェックします。サインインがまだ完了していない場合、最大 5 分間、15 秒ごとにチェックします。成功すると、Playwright のブラウザセッション状態を保存し、状態フアイルの権限を所有者のみ(0600)に制限して、Chrome を閉じます。ターミナルへの入力は不要です。

プロファイルはデフォルトで ~/.elearn-mcp/browser-profile に、保存される状態はデフォルトで ~/.elearn-mcp/storage-state.json になります。この状態にはセッションクッキーが含まれ、オリジンスコープの Web ストレジが含まれる場合もあります。そのため、両方の場所を秘密情報として扱い、コミット、同期、共有をしないでください。MCP がパスワードや MFA 応答を尋ねたり保存したりすることは決してありません。

型安全性、ユニットテスト、クリーンな本番ビルドを検証してください:

npm run check

認証後、完全なライブ MCP テストを実効してください:

npm run test:full

この完全な実行では、型チェックとユニットテストを実施し、本番サーバーをビルドして、MCP stdio 経由で接続し、ライブの eLearn データに対して 11 個すべてのツールを検証し、実際のファイルを 1 つ隔離された OS の一時ディレクトリにダウンロードして、そのファイルを検証し、finally クリーンアップで一時ディレクトリを削除します。eLearn 内のデータを送信または変更することは決してありません。

MCP クライアントの設定

最初にプロジェクトをビルドし、次にコンパイルされた stdio サーバーを起動するように MCP クライアントを設定してください:

{
  "mcpServers": {
    "smu-elearn": {
      "command": "node",
      "args": [
        "/absolute/path/to/elearn-mcp/dist/src/server.js"
      ],
      "env": {
        "ELEARN_BASE_URL": "https://elearn.smu.edu.sg",
        "ELEARN_LP_VERSION": "1.49",
        "ELEARN_LE_VERSION": "1.49",
        "ELEARN_COURSE_ORG_UNIT_TYPE_ID": "3"
      }
    }
  }
}

この JSON の正確な場所は MCP クライアントによって異なります。設定を変更した後はクライアントを再起動してください。

本番ランタイム

サーバーはロックされた依存関係セットからビルドされます。テストは検証中に型チェックおよび実行されますが、dist/ と配布可能なパッケージからは除外されます。

最小限のローカルランタイムの場合:

npm ci
npm run check
npm prune --omit=dev
npm start

開発依存関係を削除した後は、再ビルドまたはユニットテストを実行する前に npm ci を再度実行してください。同梶の GitHub Actions ワークフローは、Node.js 22 で同じロック付きインストールと検証を実行します。認証付きライブテストは、対話型の SMU アカウントと MFA が必要なため、CI から除外されています。

Codex および Claude プラグインのビルド

src/ 配下の TypeScript フアイルが、MCP 実装の唯一のソースです。Codex と Claude Code は、それぞれ別のプラグインマニフェストと MCP 起動メタデータを使用しますが、両方とも同じ生成ランタイムを受け取ります:

plugin-package/
├── codex/smu-elearn/
│   ├── .codex-plugin/plugin.json
│   ├── .mcp.json
│   └── mcp/
└── claude/smu-elearn/
    ├── .claude-plugin/plugin.json
    ├── .mcp.json
    └── mcp/

以下のコマンドで、新規の自己完結型プラグインッケージを両方ビルドします:

npm run build:plugins

npm run build:plugin は同じコマンドのエイリアスです。ビルドは src/ を一度コンパイルし、ルートのロックフアイルから正確な本番依存関係のバージョンを導出し、隔離されたステージングディレクトリに本番依存関係を一度インストールし、ステージングされた完全なコピーが検証された後にのみ、各 mcp/ ディレクトリを置き換えます。生成されたランタイムを手作業で編集しないでください。

Claude Code 開発では、パッケージを直接検証してロードしてください:

claude plugin validate ./plugin-package/claude/smu-elearn --strict
claude --plugin-dir ./plugin-package/claude/smu-elearn

Claude Code 内で /mcp を実行すると、バンドルされたサーバーを確認できます。永続的なローカルインストールの場合は、パッケージをビルドしてから、このリポジトリのマーケットプレースを追加してください:

claude plugin marketplace add /absolute/path/to/elearn-mcp
claude plugin install smu-elearn@smu-local --scope user

マーケットプレースカタログは .claude-plugin/marketplace.json

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Multi-engine scholarly research server for search, traversal, full text, and reading lists.

  • Search, browse, and read your Dropbox files. Find documents by name or content, list folders, and…

  • Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tancysam/elearn-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server