syllabus-calendar-mcp について
syllabus-calendar-mcpは、学生向けのローカルMCPサーバーで、貼り付けたシラバスのテキストをカレンダーイベントに変換します。定期授業の展開、.icsカレンダーの作成、カレンダーの統合による競合確認ができ、処理はローカルで行われます。
主な機能
- 01シラバス文面から日付付きイベントを抽出
- 02祝日を除いて定期授業を展開
- 03リマインダー付き.icsカレンダーの作成
- 04カレンダーを統合して時間の競合を確認
- 05日付のない行を確認用に返却
活用シーン
- 01授業の課題日をイベントに変換
- 02リーディングウィークを除いて授業日程を作成
- 03課題リマインダー付き.icsカレンダーを作成
- 04複数の授業カレンダーの重複を確認
MCP 対応
MCPクライアント向けに、extract_schedule_events、expand_recurring_classes、build_ics、merge_calendarsの4つのツールを提供します。カレンダー作成と統合のツールは、出力先を指定するとファイルを書き出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | 貼り付けたシラバスまたは授業予定です。各行に 1 つのイベントと日付を記載してください。 |
| year | integer | いいえ | 日付に年がない場合に使用する年です。既定値は現在の年です。 |
| course | string | いいえ | 各イベントに設定する科目名またはコードです(例:BIO 101)。 |
詳細
syllabus to calendar mcp
syllabus to calendar mcp は、npm で syllabus-calendar-mcp として公開されている無料の mcp サーバーです。貼り付けたシラバスのテキストをカレンダーの予定に変換し、予定や繰り返し授業から有効な .ics ファイルを作成できます。祝日や読書週間を除外したり、カレンダーを統合して予定の重複を確認したりすることもできます。計算と解析には、テスト済みのコードを使用しています。お使いのコンピューター上で動作し、インターネット接続もログインも不要です。
Canvas、Brightspace、Moodle、または PDF のエクスポートからコピーしたテキストを解析します。
いつまでも無料です。アカウントは不要です。
比較
brightspace-mcp-server と @exhabition/brightspace-mcp は、情報を読み取る前に Brightspace へのログインが必要です。このサーバーはアカウント、API キー、ネットワーク接続が不要です。貼り付けたシラバスのテキストを処理するため、Brightspace のコースに限らず、どの学校のシラバスにも対応します。
出力例
次のようなテキストを貼り付けます。
Assignment 1 due Sep 15
Midterm exam October 20 at 10:00
Lab report 2 due Dec 8
course を BIO 101、year を 2026 に設定して extract_schedule_events を実行すると、次の結果が返されます。
3 events found.
- Tue, Sep 15, 2026: Assignment 1 (assignment) [BIO 101]
- Tue, Oct 20, 2026 at 10:00: Midterm exam (exam) [BIO 101]
- Tue, Dec 8, 2026: Lab report 2 (lab) [BIO 101]
Next: pass these events to build_ics as events to make an .ics calendar.
貼り付けた行に日付がない場合、その行は削除されません。extract_schedule_events はその行を undated_lines に返し、予定の下にも一覧表示するため、テキストを修正してツールを再実行できます。
build_ics はこれらの予定を、次のように始まるカレンダーに変換します。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//AnonymousOnyx22//syllabus-calendar-mcp//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:BIO 101
カレンダーにインポートする
.ics ファイルは、どのカレンダーアプリでも使用できます。ファイルを保存してから、インポートしてください。
Google カレンダー
ブラウザーで Google カレンダーを開きます。歯車アイコンをクリックし、設定を開きます。インポートとエクスポートを開き、.ics ファイルを選択して、追加先のカレンダーを選び、インポートをクリックします。
Apple カレンダー
.ics ファイルをダブルクリックします。カレンダーが開き、予定の追加先となるカレンダーを尋ねられます。または、カレンダーを開き、「ファイル」から「読み込む」を選択します。
Outlook
Outlook を開きます。「ファイル」から「開く/エクスポート」、「インポート/エクスポート」の順に選択します。「iCalendar または vCalendar ファイルのインポート」を選び、.ics ファイルを指定してインポートします。
インストール
npx を使って npm から直接実行します。Node.js 20 以降が必要です。詳しくはNode.js のバージョンをご覧ください。
npx -y syllabus-calendar-mcp
アプリが起動できるように、AI アプリの MCP 設定に追加します。アプリごとに設定ファイルが異なるため、お使いのアプリを選んでください。
claude desktop
claude_desktop_config.json に次の内容を追加します。
{
"mcpservers": {
"syllabus-calendar": {
"command": "npx",
"args": ["-y", "syllabus-calendar-mcp"]
}
}
}
ファイルを保存した後、claude desktop を再起動します。
コマンドライン
ターミナルで次のコマンドを実行します。
npx -y @modelcontextprotocol/inspector syllabus-calendar-mcp
cursor
cursor は、プロジェクトフォルダーの .cursor/mcp.json、またはホームフォルダーの ~/.cursor/mcp.json から mcp.json を読み込みます。
{
"mcpservers": {
"syllabus-calendar": {
"type": "stdio",
"command": "npx",
"args": ["-y", "syllabus-calendar-mcp"]
}
}
}
ファイルを保存した後、cursor を再起動します。
vs code copilot
プロジェクトフォルダーの .vscode/mcp.json、またはユーザープロファイルの mcp.json ファイルに次の内容を記述します。
{
"servers": {
"syllabus-calendar": {
"type": "stdio",
"command": "npx",
"args": ["-y", "syllabus-calendar-mcp"]
}
}
}
vs code は、プロジェクトのルートにあるポータブルな .mcp.json ファイルも読み込みます。このファイルでは、servers の代わりに mcpservers という名前を使います。
{
"mcpservers": {
"syllabus-calendar": {
"command": "npx",
"args": ["-y", "syllabus-calendar-mcp"]
}
}
}
ファイルを保存した後、vs code を再起動します。
これら4つのプロンプトをお試しください
-
シラバスのテキストを予定に変換する
"このシラバスをカレンダーの予定に変換してください:課題1の期限は9月15日、中間試験は10月20日10:00です。"
モデルは
extract_schedule_eventsを呼び出し、種類と時刻を含む日付付きの予定を返します。 -
定期開催の授業を追加する
"生物学の授業は2026年9月8日から12月10日まで、火曜日と木曜日の10:00にあります。10月12日から10月16日までのリーディングウィークは除外してください。"
モデルは
expand_recurring_classesを呼び出し、授業日と除外日を返します。 -
ICSカレンダーを作成する
"各課題の1日前にリマインダーを設定したコース用の.icsファイルを作成してください。"
モデルは予定とリマインダーを指定して
build_icsを呼び出し、有効なカレンダーを作成します。 -
予定の重複を確認する
"3つのコースカレンダーを統合して、授業が重複する日を教えてください。"
モデルは
merge_calendarsを呼び出します。カレンダーを統合し、UIDで重複する予定を除外したうえで、時間が重なる予定を一覧表示します。
ツール
ツールは4つあります。これらの名前はAIアプリから参照できます。
| ツール | パラメーター | 機能 | プロンプトの例 |
|---|---|---|---|
extract_schedule_events | text、course、year、term_start | 貼り付けたシラバスのテキストから、日付のある行ごとに日付付きの予定を抽出します。term_start を設定すると、「第5週:中間試験」のような行も予定になります。日付がない行は undated_lines に返されます。次の手順として build_ics を提案します。 | "このシラバスをカレンダーの予定に変換してください:課題1の期限は9月15日、中間試験は10月20日10:00です。" |
expand_recurring_classes | course、title、weekdays、start_date、end_date、start_time、end_time、location、holidays、reading_weeks | 祝日とリーディングウィークを除外して、定期開催の授業日を生成します。次の手順として build_ics を提案します。 | "生物学の授業は2026年9月8日から12月10日まで、火曜日と木曜日の10:00にあります。10月12日から10月16日までのリーディングウィークは除外してください。" |
build_ics | events、classes、reminders_minutes、calendar_name、timezone、output_path | 予定と授業から、リマインダー付きの有効な.icsカレンダーを作成します。時間指定の予定の時刻が別のタイムゾーンにいる学生にも維持されるよう、timezone には America/Toronto などのIANA名を指定してください。output_path を指定するとファイルに書き込みます。 | "各課題の1日前にリマインダーを設定したコース用の.icsファイルを作成してください。" |
merge_calendars | calendars、calendar_name、output_path | カレンダーを統合し、UIDで重複する予定を除外して、時間が重なる予定を一覧表示します。output_path を指定するとファイルに書き込みます。 | "3つのコースカレンダーを統合して、授業が重複する日を教えてください。" |
すべてのツールはテキストと構造化データを返します。build_ics と merge_calendars はファイルを書き込む場合がありますが、その他のツールは読み取り専用です。
トラブルシューティング
イベントが1件も返されません。 extract_schedule_events は、日付が記載された各行からイベントを1件作成します。結果の undated_lines を確認してください。ここに表示されているのが、スキップされた行です。予定を1行に1項目ずつ貼り付け、日付はタイトルと同じ行に「sep 15」や「9/15」のように記載してください。テキストが長い段落1つになっている場合は、まず行ごとに分割してから、もう一度お試しください。
日付の年が間違っています。 年が指定されていない日付には、ツールが現在の年を使用します。結果には、使用した year が表示されます。extract_schedule_events に year(例:2026)を渡すか、日付に年を記載してください。expand_recurring_classes の場合は、年を含む start_date と end_date を指定してください。
ファイルが書き込まれません。 build_ics と merge_calendars は、output_path を渡した場合にのみファイルを書き込みます。サーバーはフォルダーを作成しないため、フォルダーがすでに存在している必要があります。フォルダーが見つからない場合、必要なフォルダーの名前が応答に表示されます。ホームディレクトリ内のフォルダーなど、書き込み可能なフルパスを使用してください。相対パスはサーバーの起動時のフォルダーを基準に解決されるため、想定とは異なる場所になることがあります。output_path を省略すると、カレンダーのテキストが返されるので、自分で .ics ファイルとして保存できます。
アプリにサーバーが表示されません。 node.js がバージョン20以降であることを確認し、設定を編集した後にアプリを再起動してください。上記のインストール手順に、各アプリで使用する正確な設定項目が記載されています。
node のバージョン
ここには2つの下限がありますが、同じ数字ではありません。
| 作業内容 | node.js |
|---|---|
| 公開済みサーバーの実行 | 20以降 |
| クローンのビルドとテスト | 22および24のリリース系列では22.12以降、または26以降 |
サーバー自体は node.js 20 で問題なく動作し、package.json の engines にもそのように記載されています。テストツールにはより新しい node.js が必要なため、開発時の下限は同じファイルの devengines に記載されています。npm はインストール前とテスト前に devengines を確認します。サービスのバージョンは package.json に記載されています。
開発
npm install
npm run build
npm test
テストでは、実際の mcp クライアントを介してツールを呼び出します。アカウントもネットワーク接続も必要ありません。
プライバシー
すべての処理はローカルで行われます。データは保存されません。ネットワークへの接続もありません。ログインやキーも必要ありません。
学生向けの無料MCPサーバーをもっと見る
すべて無料でオープンソースです。アカウントに接続する場合も、読み取り専用です。全リストはbrightspacemcp.com/more-mcpsをご覧ください。
| サーバー | 機能 |
|---|---|
| Brightspace MCP | AI 向けの D2L Brightspace です。実際の提出状況を反映した締め切り、成績、目標成績計算ツール、コースのファイルを確認できます。 |
| Canvas MCP | AI 向けの読み取り専用 Canvas LMS です。締め切り、未提出の課題、成績、お知らせを確認できます。 |
| Moodle MCP | AI 向けの読み取り専用 Moodle です。締め切り、期限超過の課題、成績、お知らせを確認できます。 |
| Google Classroom MCP | AI 向けの読み取り専用 Google Classroom です。ToDo、締め切り、未提出の課題、成績を確認できます。 |
| GPA Calculator MCP | AI 向けの GPA、成績換算、期末試験で必要な成績を計算できます。オフラインで動作し、アカウントは不要です。 |
| Citations MCP | DOI、ISBN、または入力した詳細情報から APA、MLA、Chicago 形式の引用を作成できます。アカウントは不要です。 |
| Study Planner MCP | 試験の学習スケジュール、間隔反復の日程、ポモドーロ計画、課題のマイルストーンを作成できます。オフラインで動作します。 |
| Paper Finder MCP | OpenAlex を通じて学術論文を検索し、オープンアクセス版や関連研究を見つけられます。API キーは不要です。 |
| BibTeX Reference Manager MCP | BibTeX、RIS、CSL JSON の参考文献リストを整理、変換、重複排除、検査し、引用キーを作成できます。オフラインで動作します。 |
| Open Textbook Finder MCP | OpenStax、DOAB、Open Library で合法かつ無料の教科書を探し、ISBN で版を調べ、より安価な旧版を提案します。 |
| STEM Calculator MCP | 化学や物理の宿題の計算に対応します。モル質量、化学反応式の係数合わせ、グラムからモルへの換算、単位換算、有効数字を扱えます。オフラインで動作します。 |
| Essay Stats MCP | エッセイのオフライン文章指標を確認できます。単語数とページ数、読みやすさスコア、受動態、文頭表現の繰り返し、つなぎ言葉、長文、文字数制限を検査できるため、課題の要件に照らして提出物を確認できます。アカウントもネットワーク接続も不要です。 |
| Job Application Tracker MCP | 求人応募管理用の MCP サーバーです。インターンシップ、求人、面接、締め切りをオフラインで管理し、今後の予定を確認して、一覧を CSV または Markdown でエクスポートできます。アカウントも API キーも不要です。 |
ライセンス
mit
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。