brightspace-d2l-mcp 1.4.4 → 1.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +18 -4
- package/build/tools/get-grade-outlook.js +6 -1
- package/llms.txt +18 -1
- package/package.json +12 -48
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.4.6
|
|
4
|
+
|
|
5
|
+
- Add a Prompts and example questions section to the README, with an example question and the tools used for each of the 9 MCP prompts.
|
|
6
|
+
- Add a Related queries section to llms.txt so searches in students' own words, such as what is due this week, point at the right tool.
|
|
7
|
+
- `get_grade_outlook` now returns a clear error, pointing to `get_my_grades`, when a course has nothing graded yet. A course graded only in points still returns its current percent, as before.
|
|
8
|
+
|
|
9
|
+
## 1.4.5
|
|
10
|
+
|
|
11
|
+
- No change to the server itself. The tests now check that the README tools and prompts tables list exactly what the server offers, so the docs cannot drift from the code.
|
|
12
|
+
|
|
3
13
|
## 1.4.4
|
|
4
14
|
|
|
5
15
|
- Make a stale course id actionable: the error now says to call `get_my_courses` to list valid course IDs, and a course tool that finds no enrollments at all points at running `npx brightspace-d2l-mcp setup` again
|
package/README.md
CHANGED
|
@@ -164,10 +164,21 @@ This one checks your actual submission for every assignment:
|
|
|
164
164
|
| `get_calendar_events` | Exams, tests, labs, classes and other events from your course calendars |
|
|
165
165
|
| `get_whats_new` | Catch-up across every course: new announcements, newly marked work, unread discussions and untried quizzes |
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
Apps that support MCP prompts show these as one
|
|
170
|
-
|
|
167
|
+
## Prompts and example questions
|
|
168
|
+
|
|
169
|
+
Apps that support MCP prompts show these as one click shortcuts or slash commands. You do not have to remember the names: typing the example question in a normal chat works too, because each prompt simply tells the AI which tools to call.
|
|
170
|
+
|
|
171
|
+
| Prompt | Example question | Tools it uses |
|
|
172
|
+
|---|---|---|
|
|
173
|
+
| `what_should_i_do_now` | "What should I work on right now?" | `get_todo` |
|
|
174
|
+
| `plan_my_week` | "What should my week look like?" | `get_todo` |
|
|
175
|
+
| `weekly_digest` | "Can you give me a weekly digest of deadlines, events and grades?" | `get_todo`, `get_calendar_events`, `get_whats_new`, `get_my_grades` |
|
|
176
|
+
| `grade_target` | "What do I need on the final to get an 80?" | `get_my_courses`, `get_grade_outlook`, `get_syllabus` |
|
|
177
|
+
| `exam_prep` | "Can you help me get ready for my networking exam next Friday?" | `get_my_courses`, `get_syllabus`, `get_course_content`, `get_announcements`, `get_todo` |
|
|
178
|
+
| `summarize_assignment` | "Can you summarize the Lab 3 instructions and rubric?" | `get_assignments`, `get_assignment_files` |
|
|
179
|
+
| `put_deadlines_in_my_calendar` | "Can you put my deadlines in my calendar?" | `export_due_dates_calendar` |
|
|
180
|
+
| `catch_me_up` | "What's new, and did anything get graded?" | `get_whats_new`, `get_my_grades` |
|
|
181
|
+
| `when_are_my_exams` | "When are my exams?" | `get_calendar_events`, `get_announcements`, `get_syllabus` |
|
|
171
182
|
|
|
172
183
|
## Works at any Brightspace school
|
|
173
184
|
|
|
@@ -401,6 +412,9 @@ All free, open source and read only where they touch your accounts. Browse the f
|
|
|
401
412
|
| [Citations MCP](https://github.com/AnonymousOnyx22/student-citations-mcp) | APA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account. |
|
|
402
413
|
| [Study Planner MCP](https://github.com/AnonymousOnyx22/study-planner-mcp) | Exam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline. |
|
|
403
414
|
| [Paper Finder MCP](https://github.com/AnonymousOnyx22/paper-finder-student-mcp) | Search scholarly papers, find open access copies and related work through OpenAlex. No key needed. |
|
|
415
|
+
| [BibTeX Reference Manager MCP](https://github.com/AnonymousOnyx22/bibtex-reference-manager-mcp) | BibTeX reference manager MCP server for AI apps. Ask your AI to parse, clean, convert, dedupe, lint and format BibTeX, RIS and CSL JSON reference lists, and to make consistent cite keys. Works offline with no account. |
|
|
416
|
+
| [Open Textbook Finder MCP](https://github.com/AnonymousOnyx22/open-textbook-finder-mcp) | Open textbook finder MCP server for AI apps. Give it a textbook title, an ISBN or a course topic and it finds free legal copies on OpenStax, the Directory of Open Access Books and Open Library, looks up editions by ISBN and suggests cheaper older editions. No API key needed. |
|
|
417
|
+
| [STEM Calculator MCP](https://github.com/AnonymousOnyx22/stem-calc-student-mcp) | Chemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline. |
|
|
404
418
|
|
|
405
419
|
## License
|
|
406
420
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_CACHE_TTLS } from "../api/index.js";
|
|
2
2
|
import { GetGradeOutlookSchema } from "./schemas.js";
|
|
3
|
-
import { toolResponse, sanitizeError } from "./tool-helpers.js";
|
|
3
|
+
import { toolResponse, errorResponse, sanitizeError } from "./tool-helpers.js";
|
|
4
4
|
import { computeGradeOutlook } from "../utils/grade-math.js";
|
|
5
5
|
export function registerGetGradeOutlook(server, apiClient) {
|
|
6
6
|
server.registerTool("get_grade_outlook", {
|
|
@@ -25,6 +25,11 @@ export function registerGetGradeOutlook(server, apiClient) {
|
|
|
25
25
|
weightedNumerator: value.WeightedNumerator,
|
|
26
26
|
weightedDenominator: value.WeightedDenominator,
|
|
27
27
|
})), { targetPercent, totalWeight });
|
|
28
|
+
// a course graded only in points still gets its current percent; only a course with nothing graded is an error
|
|
29
|
+
if (outlook.mode === "none") {
|
|
30
|
+
return errorResponse("This course has no graded items yet, so there is nothing to base a target grade on. " +
|
|
31
|
+
"Try get_my_grades for the raw grade items.");
|
|
32
|
+
}
|
|
28
33
|
return toolResponse({ courseId, ...outlook });
|
|
29
34
|
}
|
|
30
35
|
catch (error) {
|
package/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Brightspace D2L MCP Server
|
|
2
2
|
|
|
3
|
-
> MCP server that gives AI assistants and agents read access to D2L Brightspace. It returns due dates with real submission status, grades, assignments, rubrics, course content, announcements, discussions and class lists. It works at any school that uses D2L Brightspace, including schools with Microsoft, Duo, Okta or Shibboleth sign-in. It is read only and never stores a password. Current version: 1.4.
|
|
3
|
+
> MCP server that gives AI assistants and agents read access to D2L Brightspace. It returns due dates with real submission status, grades, assignments, rubrics, course content, announcements, discussions and class lists. It works at any school that uses D2L Brightspace, including schools with Microsoft, Duo, Okta or Shibboleth sign-in. It is read only and never stores a password. Current version: 1.4.6.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -73,6 +73,23 @@ Short routing: due today -> get_todo, target grade -> get_grade_outlook, catch u
|
|
|
73
73
|
| Exporting unfinished deadlines to a calendar | export_due_dates_calendar |
|
|
74
74
|
| Enrolled courses | get_my_courses |
|
|
75
75
|
|
|
76
|
+
## Related queries
|
|
77
|
+
|
|
78
|
+
Searches this page answers, in the words students use:
|
|
79
|
+
|
|
80
|
+
- what is due this week Brightspace
|
|
81
|
+
- Brightspace due dates and submission status
|
|
82
|
+
- Brightspace grade calculator
|
|
83
|
+
- what do I need on the final to get an 80
|
|
84
|
+
- Brightspace target grade calculator
|
|
85
|
+
- Brightspace exam dates
|
|
86
|
+
- Brightspace assignment rubric
|
|
87
|
+
- Brightspace unread discussions
|
|
88
|
+
- Brightspace calendar export
|
|
89
|
+
- D2L MCP
|
|
90
|
+
- D2L Brightspace MCP server
|
|
91
|
+
- connect Brightspace to Claude Desktop
|
|
92
|
+
|
|
76
93
|
## Other commands
|
|
77
94
|
|
|
78
95
|
- npx brightspace-d2l-mcp login signs in again
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brightspace-d2l-mcp",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.6",
|
|
4
4
|
"mcpName": "io.github.AnonymousOnyx22/brightspace-d2l-mcp",
|
|
5
5
|
"description": "Brightspace MCP server for D2L: connect Brightspace to Claude, ChatGPT, Cursor, Copilot and any AI agent. One-command setup at any school with normal browser sign-in (SSO, Duo, MFA). Due dates with real submission status, exam and calendar events, what's new catch-up, grades and target-grade calculator, calendar export, assignments, content, announcements.",
|
|
6
6
|
"type": "module",
|
|
@@ -56,68 +56,32 @@
|
|
|
56
56
|
"url": "https://github.com/AnonymousOnyx22/brightspace-d2l-mcp/issues"
|
|
57
57
|
},
|
|
58
58
|
"keywords": [
|
|
59
|
+
"brightspace",
|
|
60
|
+
"brightspace-mcp",
|
|
61
|
+
"brightspace mcp",
|
|
59
62
|
"mcp",
|
|
60
63
|
"mcp-server",
|
|
61
64
|
"model-context-protocol",
|
|
62
|
-
"brightspace",
|
|
63
65
|
"d2l",
|
|
64
66
|
"desire2learn",
|
|
65
|
-
"d2l-brightspace",
|
|
66
67
|
"brightspace-api",
|
|
67
|
-
"d2l-api",
|
|
68
|
-
"valence",
|
|
69
68
|
"lms",
|
|
70
69
|
"learning-management-system",
|
|
71
70
|
"student",
|
|
72
|
-
"students",
|
|
73
|
-
"education",
|
|
74
|
-
"edtech",
|
|
75
|
-
"university",
|
|
76
|
-
"college",
|
|
77
|
-
"ai-agent",
|
|
78
|
-
"agent",
|
|
79
|
-
"claude",
|
|
80
|
-
"claude-desktop",
|
|
81
|
-
"claude-code",
|
|
82
|
-
"chatgpt",
|
|
83
|
-
"cursor",
|
|
84
|
-
"copilot",
|
|
85
|
-
"windsurf",
|
|
86
|
-
"llm",
|
|
87
71
|
"assignments",
|
|
88
72
|
"grades",
|
|
89
73
|
"due-dates",
|
|
90
|
-
"
|
|
91
|
-
"sso",
|
|
92
|
-
"brightspace-mcp",
|
|
74
|
+
"calendar",
|
|
93
75
|
"d2l-mcp",
|
|
76
|
+
"d2l-brightspace",
|
|
94
77
|
"brightspace-ai",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"vscode",
|
|
100
|
-
"ai-assistant",
|
|
101
|
-
"study",
|
|
102
|
-
"school",
|
|
103
|
-
"course-content",
|
|
104
|
-
"announcements",
|
|
78
|
+
"claude",
|
|
79
|
+
"claude-desktop",
|
|
80
|
+
"cursor",
|
|
81
|
+
"homework",
|
|
105
82
|
"rubrics",
|
|
106
|
-
"grade-calculator",
|
|
107
83
|
"target-grade",
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"google-calendar",
|
|
111
|
-
"mcp-prompts",
|
|
112
|
-
"study-planner",
|
|
113
|
-
"homework-planner",
|
|
114
|
-
"d2l-calendar",
|
|
115
|
-
"brightspace-calendar",
|
|
116
|
-
"brightspace-grades",
|
|
117
|
-
"exams",
|
|
118
|
-
"exam-schedule",
|
|
119
|
-
"whats-new",
|
|
120
|
-
"unread-feedback",
|
|
121
|
-
"brightspace-calendar-events"
|
|
84
|
+
"grade-calculator",
|
|
85
|
+
"brightspace-grade-calculator"
|
|
122
86
|
]
|
|
123
87
|
}
|