mcpField
A
ADAM MCP

ADAM MCP

ローカル
github.com/Arudchayan科学・教育03 日前に更新

ADAM MCP について

ADAM MCPは、University of Baselの学生向け読み取り専用MCPサーバーです。専用のローカルChromeセッションで受講可能なコースにアクセスし、ページや文書の本文を返す前に承認を求めます。

主な機能

  1. 01履修コースとリンクの一覧表示
  2. 02コース内容の検索
  3. 03ページとファイル本文の読み取り
  4. 04ニュースと締切の確認
  5. 05演習とフォーラム本文の承認付き読み取り

活用シーン

  1. 01今週のコースニュースを確認
  2. 02特定テーマの教材を検索
  3. 03コースページをリンク付きで要約
  4. 04コースの締切を確認

MCP 対応

MCPクライアントはstdio経由でローカルサーバーを起動します。サーバーは専用ChromeセッションでADAMを読み取り、結果をMCPツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"arudchayan-adam": {
"command": "npx",
"args": [
"-y",
"adam-mcp"
]
}
}
}
起動コマンドnpx -y adam-mcp

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

パッケージ
npmadam-mcp0.2.0

ツール

14

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

パラメーター型必須説明
limitintegerいいえページサイズ。デフォルトは 20、最大 100。
cursorstringいいえ不透明な10進トークンです。nextCursor をそのまま cursor にコピーし、オフセットを作らないでください。ブラウザーのカーソルが期限切れの場合は、cursor を指定せずに一覧取得をやり直してください。

詳細

ADAM MCP

ci

ADAM MCP は、MCP 対応の AI クライアントを、University of Basel の ADAM コースに接続します。

お使いのマシン上で動作し、専用の Chrome セッションを使って、アカウントで利用できる ADAM コースにアクセスします。MCP クライアントから、コースの一覧表示、教材の検索、承認済みテキストの読み取り、締め切りの確認ができます。設定のサポート状況と検証状況については、クライアントの互換性をご覧ください。

これはコミュニティプロジェクトであり、University of Basel のサービスではありません。

ソースコードは現在、0.3.0 (未リリース) を対象としています。以下に記載する公開済みインストールは引き続き 0.2.0 です。候補教材のダウンロード機能と効率化機能を利用するには、ソースからビルドする必要があります。候補版のチェックリストをご覧ください。

デモ

デモを見る · デモの詳細

ナレーション付きの概要では、現実的な合成コースデータとスクリプトによる応答を使った学習ワークフローを紹介します。サポート対象のクライアントをライブの ADAM に接続して記録したものではなく、クライアントとの互換性を示すものでもありません。

質問できること

  • 今週のコースニュースをタイムスタンプ付きで表示してください。
  • 締め切りは何がありますか?
  • フーリエ変換に関する演習問題を探してください。
  • このコースのページを要約して、ADAM のリンクを教えてください。
  • このコースで利用できる教材を一覧表示してください。

回答には、正式な ADAM URL(https://adam.unibas.ch/go/...)が含まれます。

クイックスタート

Node.js 22 以降と Google Chrome が必要です。サポート対象の Node.js LTS リリースを使用してください。

公開済みパッケージをインストールします。ガイド付きセットアップでは、インストールを確認し、バックアップを作成してクライアントを1つ設定し、サインイン用に Chrome を開き、コース一覧を確認します。

npm install -g [email protected]
adam-mcp setup --client codex --write --login

codex を cursor、claude-desktop、windsurf、または vscode に置き換えてください。VS Code の場合は、対象ワークスペースの .vscode/mcp.json のパスを --output に指定してください。クライアントを再起動して、adam を有効にした後、次のように質問してください:どのコースを受講していますか?ADAM のリンクも含めてください。

設定を変更せずにプレビューするには、adam-mcp setup --client codex を実行します。接続を診断するには、adam-mcp doctor --client codex を実行します。認証情報は Chrome のサインインウィンドウ内に保持されます。セットアップで認証情報をターミナルやチャットから尋ねることはありません。

検証済みの内容についてはクライアントの互換性を、手動での設定、バックアップ、復旧についてはセットアップガイドをご覧ください。

グローバルインストールせずに実行する

公開済みパッケージには、自己完結型の CLI が含まれています:

npx -y [email protected]

正確な npm バージョンをリポジトリ外にインストールし、確認しました。ソース、整合性、クライアントの証拠、制限事項については、公開記録をご覧ください。

ソースからビルドする
git clone https://github.com/Arudchayan/adam-mcp.git
cd adam-mcp
npm ci
npm run setup -- --client codex --write --login

以下のリポジトリコマンドは、ソースをチェックアウトした環境でも実行できます。インストール済みのユーザーは、adam-mcp login、adam-mcp status、adam-mcp logout を直接使用できます。

セッション管理

クライアント引数を指定しない場合、対話型セットアップでは使用するクライアントを尋ね、非対話型セットアップではサポートされているスニペットをすべて表示します。セットアップではデフォルトでプレビューが表示されます。選択した設定をバックアップ付きでインストールするには --write を、サインインしてコースを確認するには --login を追加します。

  • 個別にサインインするには、npm run login を実行し、Chrome で ADAM へのサインインを完了します。確認後、ウィンドウは閉じます。バックグラウンドの Chrome プロセスによって、セッションは引き続き利用できます。ログイン後、adam_session_status を確認してから、adam_list_courses を呼び出します。

クライアントを再起動して、次のように尋ねます。

What courses am I in? Include the ADAM URL for each.

ログイン時、有効なセッションがあれば Chrome を開かずに再利用します。サインインウィンドウを閉じるか、Ctrl+C を押すとキャンセルできます。失敗した場合、ウィンドウは閉じます。新しいウィンドウを開くには npm run login -- --force を、サインインの待ち時間を2分にするには npm run login -- --timeout-ms 120000 を使用します。npm run logout はローカルセッションを停止し、明示的にログインするまで自動再接続を無効にします。npm run logout -- --purge は専用プロファイルも削除します。ローカルでログアウトしても、他のブラウザーでの SWITCH からのサインアウトにはなりません。

ホスト固有のファイル(Cursor、Claude Desktop、VS Code、Windsurf、Claude Code、ChatGPT desktop、Codex):docs/setup.md。

選択したファイルをローカルに保存する(0.3.0 のソース候補)

adam_list_files を使ってファイル ID を確認し、チェックアウト内で次のコマンドを実行します。 Git チェックアウトの外にある既存のディレクトリを使用してください。

npm run build
node packages/mcp/dist/adam-mcp.mjs download 100011 --output-dir "D:/Study/ADAM" --confirm

100011 は例です。選択したファイル ID に置き換えてください。この操作では、そのファイルを明示的にコンピューターに保存し、ファイルの内容をモデルと共有しません。CLI はパス、ソース URL、サイズ、SHA-256 を返します。同名のファイルにはサフィックスが付加され、既存のファイルは保持されます。Ctrl+C を押すと転送をキャンセルします。ダウンロードは256 MiB、120秒までに制限されます。空の応答と HTML 形式の応答は拒否されます。保存先のファイルシステムはハードリンクをサポートしている必要があります。MCP のダウンロードツールは追加されず、テキスト抽出も承認されません。詳細とクリーンアップ。

仕組み

クライアントは ADAM MCP をローカルプロセスとして起動し、標準入出力経由で通信します。ADAM MCP は専用の Chrome セッションを通じて https://adam.unibas.ch から読み取ります。認証情報は Chrome 内に保持され、ホスト型の MCP エンドポイントは提供されません。

アーキテクチャ · 対象範囲 · 機能 · ロードマップ

ツール

ツール戻り値
adam_list_courses履修中のコースと ADAM の URL
adam_get_course / adam_list_childrenコースのスナップショットとフォルダーの内容
adam_read_pageページのテキスト(confirm: true またはエリシテーション)
adam_list_files / adam_get_fileファイルのメタデータと URL。ファイルの内容は含みません
adam_extract_file_textローカルの PDF/テキスト抽出(confirm: true またはエリシテーション)
adam_search履修中のオブジェクトのタイトル一致
adam_list_calendar / adam_list_news表示可能なページの日付とニュース
adam_get_exercise課題のテキストと締め切り(confirm: true またはエリシテーション)。提出はできません
adam_get_forumフォーラムのメタ情報とスレッドの要約。投稿本文には confirm: true またはエリシテーションが必要です。投稿・返信はできません
adam_login / adam_session_status実行中の環境における Chrome セッション

ドキュメントとスレッドのテキストを取得するには、選択したオブジェクトの承認が必要です。接続先のモデルには、返されたテキストが渡されます。確認、ページネーション、復旧、完全性に関するルールはツールの契約を参照してください。

ページ、ファイルのテキスト、課題、フォーラム投稿を読み取る際は、まず対象のオブジェクトを指定してから、読み取りを承認してください。エリシテーションに対応したクライアントでは対話形式で承認を求めることができます。それ以外のクライアントでは confirm: true を渡します。拒否またはキャンセルすると、本文テキストは返されません。フォーラムの要約には本文の読み取り承認は必要ありません。正確な契約についてはツールの契約を参照してください。

制限事項

  • 書き込み、メール、成績、試験(tst)オブジェクトには対応していません。
  • 検索対象は、登録済みコースのツリー内にあるタイトルと利用可能なページテキストです。ADAM のグローバル検索は使用しません。日付は ILIAS のカレンダーインターフェースではなく、利用可能なコースコンテンツから取得します。
  • スキャンされた PDF は OCR 処理されません。
  • 対応する PDF はページごとに解析されます。転送上限は 8 MiB、テキストは 40,000 文字、ページ数は最大 20 ページ(デフォルトは 8 ページ)です。空または不正な形式のファイルは安全側に倒して処理を拒否します。数式の解釈や正確な視覚的レイアウトは保証されません。
  • コースページとコース横断の完全な巡回結果は、1 分後に更新されます。すぐに更新するには MCP サーバーを再起動してください。既存のページネーションでは、元のスナップショットが 10 分間保持されます。カーソルの有効期限が切れた場合は、リストを最初から取得し直す必要があります。
  • コース横断の読み取りには 2 分の経過時間上限があり、上限に達すると部分的な結果が返されます。ブラウザーキューに登録できる待機中の操作は最大 32 件で、待機時間は 30 秒に制限されます。ほかに必要とする処理がない場合、リクエストをキャンセルするとその処理は解放されます。キャッシュされた読み取りでは、ナビゲーションと解析が再利用されます。
  • Candidate 0.3.0 では、登録済みの各コース内で完全な探索巡回結果も共有されます。PDF 解析で受け付ける待機中のリクエストは最大 8 件、待機中の入力は最大 32 MiB です。キューに入ったリクエストは 30 秒後に期限切れになります。過負荷時には再試行可能なエラーが返されます。
  • 検索、カレンダー、ニュースでは、登録済みの courseRefId を指定して探索対象を絞り込めます。最新の結果を得るには、カーソルを指定せずに refresh: true を使用してください。snapshotAt はリストのスナップショットを特定します。各項目の出所情報には、取得時刻が記録されます。部分的な結果には、カバレッジに関する理由が含まれます。
  • 締め切りを指定したニュースには、タイムスタンプが判明している項目のみが含まれます。締め切りを指定しない場合は、日付不明のニュースも表示されます。ファイルの一覧は比較されないため、一致するニュースがないからといって、変更がなかったとは限りません。
  • オフセットのない締め切りの時刻には、Europe/Zurich を使用します。曖昧または無効な日付・時刻は除外されます。日付のみの情報は表現上 UTC の午前 0 時として扱われますが、午前 0 時が締め切りであることを示すものではありません。

プライバシー

ツールの結果は、クライアントがすでに使用しているモデルに送信されます。コースコンテンツには著作権があります。

SECURITY.md · 脅威モデル

開発

npm test
npm run typecheck
npm run check  # tests, typecheck, build, built-package verification, dependency audit
npm run release:check  # also verifies a clean tarball installation
npm run benchmark:reads  # synthetic cached-read timing; no live ADAM access
npm run benchmark:discovery  # cold/scoped/large trees and queue pressure; synthetic

CONTRIBUTING.md · リリースガイド · AGENTS.md

ライセンス:GPL-3.0-or-later。

コメント

MCP は初めてですか?

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

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