wicker-study-mcp 2.3.0 → 2.5.0
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/package.json +1 -1
- package/server.mjs +6 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicker-study-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "MCP server for Wicker Study: read course material and a student's academic record, study on their behalf, collect a private Canvas course snapshot, and \u2014 with an admin key \u2014 run the editorial workflow.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
package/server.mjs
CHANGED
|
@@ -71,7 +71,7 @@ const json = (value) => ({ content: [{ type: 'text', text: typeof value === 'str
|
|
|
71
71
|
const failed = (error) => ({ isError: true, content: [{ type: 'text', text: error.message }] })
|
|
72
72
|
const run = (fn) => async (args) => { try { return json(await fn(args)) } catch (error) { return failed(error) } }
|
|
73
73
|
|
|
74
|
-
const server = new McpServer({ name: 'wicker-study', version: '2.
|
|
74
|
+
const server = new McpServer({ name: 'wicker-study', version: '2.5.0' })
|
|
75
75
|
const courseId = z.string().describe('Course id (e.g. "sec"). Use list_courses to discover ids.')
|
|
76
76
|
const chapterId = z.string().describe('Chapter id (e.g. "02").')
|
|
77
77
|
|
|
@@ -507,6 +507,11 @@ server.tool('set_course_visibility', 'Archive/unarchive or reorder a course for
|
|
|
507
507
|
run(({ courseId, archived, order }) => api(`/api/courses/${encodeURIComponent(courseId)}`, { method: 'PATCH', body: { archived, order } })))
|
|
508
508
|
|
|
509
509
|
// ── Canvas through the account connection (no local PAT) ──────────────────
|
|
510
|
+
server.tool('get_study_briefing',
|
|
511
|
+
'The student\u2019s whole situation in one call, ranked: work Canvas marks missing, overdue hand-ins, upcoming exams, what is due this week, the week\u2019s lectures and tutorials with rooms, recent announcements, and their credits so far. Call this first for "what should I focus on", "what is due", "what is my week like", or any question about priorities \u2014 it replaces orchestrating get_calendar, canvas_updates and get_academic_plan yourself. `notConnected` lists sources that could not be read: say a timetable is not connected rather than reporting a quiet week.',
|
|
512
|
+
{ days: z.number().int().min(1).max(31).optional().describe('How far ahead to look. Default 7.') },
|
|
513
|
+
run(({ days }) => api('/api/briefing', { query: { days } })))
|
|
514
|
+
|
|
510
515
|
server.tool('canvas_updates',
|
|
511
516
|
'What is happening in the student’s Canvas courses right now: announcements, assignments with their submission state, Canvas course events, and the grade Canvas shows. This is the tool for "what was announced", "what is due", "what have I not handed in", and "how am I doing". Answers are cached for ten minutes; pass refresh:true only when the student says something is missing. Never returns the Canvas token.',
|
|
512
517
|
{
|