wicker-study-mcp 2.7.0 → 2.8.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/README.md +2 -2
- package/package.json +1 -1
- package/server.mjs +10 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ the MCP server.
|
|
|
17
17
|
For a manually supplied key, the same secure bootstrap is available as:
|
|
18
18
|
|
|
19
19
|
```sh
|
|
20
|
-
WICKER_STUDY_URL='https://study.wicker.life' WICKER_STUDY_API_KEY='wsk_…' npx -y wicker-study-mcp@2.
|
|
20
|
+
WICKER_STUDY_URL='https://study.wicker.life' WICKER_STUDY_API_KEY='wsk_…' npx -y wicker-study-mcp@2.8.0 configure
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
```jsonc
|
|
@@ -67,7 +67,7 @@ agent receives proxied course data and nothing else.
|
|
|
67
67
|
`wicker_status`, `wicker_authorize`, `wicker_sign_out`, and `canvas_connect` work without a key —
|
|
68
68
|
they are how a key is obtained. Everything else needs one.
|
|
69
69
|
|
|
70
|
-
- **Reading** — `list_courses`, `get_course`, `get_chapter`, `get_course_outline`, `search_course`,
|
|
70
|
+
- **Reading** — `list_courses`, `get_course`, `get_chapter`, `get_course_outline`, `search_course`, `list_regulation_sources`, `search_regulations`,
|
|
71
71
|
`list_materials`, `list_questions`, `get_practice_queue`, `get_progress`, `list_flashcards`,
|
|
72
72
|
`list_due_cards`, `list_mistakes`, `list_mock_sessions`, `get_mock_session`, `get_academic_plan`,
|
|
73
73
|
`get_planning_context`, `list_known_programmes`, `get_calendar`, `get_activity`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wicker-study-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.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
|
@@ -89,7 +89,7 @@ const json = (value) => ({ content: [{ type: 'text', text: typeof value === 'str
|
|
|
89
89
|
const failed = (error) => ({ isError: true, content: [{ type: 'text', text: error.message }] })
|
|
90
90
|
const run = (fn) => async (args) => { try { return json(await fn(args)) } catch (error) { return failed(error) } }
|
|
91
91
|
|
|
92
|
-
const server = new McpServer({ name: 'wicker-study', version: '2.
|
|
92
|
+
const server = new McpServer({ name: 'wicker-study', version: '2.8.0' })
|
|
93
93
|
const courseId = z.string().describe('Course id (e.g. "sec"). Use list_courses to discover ids.')
|
|
94
94
|
const chapterId = z.string().describe('Chapter id (e.g. "02").')
|
|
95
95
|
|
|
@@ -488,6 +488,15 @@ server.tool('search_course', 'Hybrid full-text and embedding retrieval across pu
|
|
|
488
488
|
query: z.string(),
|
|
489
489
|
limit: z.number().int().min(1).max(20).optional()
|
|
490
490
|
}, run((args) => api('/api/retrieve', { method: 'POST', body: args })))
|
|
491
|
+
server.tool('search_regulations', 'Focused retrieval from official regulations for the active programme. Use for the Education and Examination Regulations, Board of Examiners, exam and resit procedures, registration, inspections, appeals, exemptions, hardship, fraud, projects, internships and curriculum transition rules. Results include the governing document, academic year and exact page; programme-restricted originals are not exposed.', {
|
|
492
|
+
query: z.string(),
|
|
493
|
+
academicYear: z.string().optional().describe('Exact academic year such as 2026-2027. Defaults to the active programme year.'),
|
|
494
|
+
documentKind: z.enum(['education-examination-regulations', 'rules-regulations', 'board-of-examiners', 'exam-procedure', 'programme-policy', 'other']).optional(),
|
|
495
|
+
limit: z.number().int().min(1).max(20).optional()
|
|
496
|
+
}, run((args) => api('/api/programme-policies/retrieve', { method: 'POST', body: args })))
|
|
497
|
+
server.tool('list_regulation_sources', 'List the official regulation sources indexed for the active programme and academic year. Returns reviewed metadata and coverage counts, never a programme-restricted original.', {
|
|
498
|
+
academicYear: z.string().optional().describe('Exact academic year such as 2026-2027. Defaults to the active programme year.')
|
|
499
|
+
}, run(({ academicYear }) => api('/api/programme-policies', { query: { academicYear } })))
|
|
491
500
|
server.tool('canvas_corpus_status', 'Material collection consent, background sync jobs, versioned course editions, source counts, and last/next scrape times for the connected account.', {
|
|
492
501
|
canvasUrl: z.string().url().optional()
|
|
493
502
|
}, run(({ canvasUrl }) => api('/api/account/integrations/canvas/corpus', { query: { canvasUrl: canvasUrl || DEFAULT_CANVAS_URL } })))
|