education-mcp 1.0.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/LICENSE +21 -0
- package/PRIVACY.md +53 -0
- package/README.md +144 -0
- package/TERMS.md +57 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +191 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/explain-concept.d.ts +9 -0
- package/dist/tools/explain-concept.d.ts.map +1 -0
- package/dist/tools/explain-concept.js +168 -0
- package/dist/tools/explain-concept.js.map +1 -0
- package/dist/tools/generate-exercise.d.ts +8 -0
- package/dist/tools/generate-exercise.d.ts.map +1 -0
- package/dist/tools/generate-exercise.js +364 -0
- package/dist/tools/generate-exercise.js.map +1 -0
- package/dist/tools/generate-flashcards.d.ts +9 -0
- package/dist/tools/generate-flashcards.d.ts.map +1 -0
- package/dist/tools/generate-flashcards.js +131 -0
- package/dist/tools/generate-flashcards.js.map +1 -0
- package/dist/tools/generate-lesson-plan.d.ts +8 -0
- package/dist/tools/generate-lesson-plan.d.ts.map +1 -0
- package/dist/tools/generate-lesson-plan.js +169 -0
- package/dist/tools/generate-lesson-plan.js.map +1 -0
- package/dist/tools/generate-quiz.d.ts +9 -0
- package/dist/tools/generate-quiz.d.ts.map +1 -0
- package/dist/tools/generate-quiz.js +153 -0
- package/dist/tools/generate-quiz.js.map +1 -0
- package/dist/tools/grade-rubric.d.ts +8 -0
- package/dist/tools/grade-rubric.d.ts.map +1 -0
- package/dist/tools/grade-rubric.js +354 -0
- package/dist/tools/grade-rubric.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +7 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +215 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/helpers.d.ts +41 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +134 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +55 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SceneView Tools
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/PRIVACY.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Privacy Policy — education-mcp
|
|
2
|
+
|
|
3
|
+
**Effective date:** March 26, 2026
|
|
4
|
+
**Provider:** SceneView Tools
|
|
5
|
+
|
|
6
|
+
## 1. Overview
|
|
7
|
+
|
|
8
|
+
The `education-mcp` MCP server processes educational content generation requests locally. This policy describes how we handle data.
|
|
9
|
+
|
|
10
|
+
## 2. Data We Process
|
|
11
|
+
|
|
12
|
+
When you use the Service, we process:
|
|
13
|
+
- **Input parameters:** Topic names, subject areas, difficulty levels, and other configuration you provide to generate content.
|
|
14
|
+
- **No personal data required:** The Service does not require or collect personal information such as names, email addresses, student records, or institutional data.
|
|
15
|
+
|
|
16
|
+
## 3. Data We Do NOT Collect
|
|
17
|
+
|
|
18
|
+
- We do NOT collect student personally identifiable information (PII).
|
|
19
|
+
- We do NOT store input parameters or generated content.
|
|
20
|
+
- We do NOT use cookies or tracking mechanisms.
|
|
21
|
+
- We do NOT sell or share any data with third parties.
|
|
22
|
+
- We do NOT collect analytics or usage telemetry in the open-source version.
|
|
23
|
+
|
|
24
|
+
## 4. Data Processing
|
|
25
|
+
|
|
26
|
+
- All content generation happens locally on your machine or infrastructure.
|
|
27
|
+
- No data is transmitted to external servers in the open-source version.
|
|
28
|
+
- The Pro tier API may process requests server-side; in that case, inputs are processed in memory only and not stored after response delivery.
|
|
29
|
+
|
|
30
|
+
## 5. FERPA / COPPA / GDPR Compliance
|
|
31
|
+
|
|
32
|
+
- The Service is designed to be compatible with FERPA requirements as it does not process student education records.
|
|
33
|
+
- The Service does not knowingly collect data from children under 13 (COPPA).
|
|
34
|
+
- For GDPR: no personal data is collected or processed. The Service operates as a local tool.
|
|
35
|
+
|
|
36
|
+
## 6. Third-Party Services
|
|
37
|
+
|
|
38
|
+
The open-source version of this Service makes no external API calls. The Pro tier may use:
|
|
39
|
+
- Stripe for payment processing (subject to [Stripe's Privacy Policy](https://stripe.com/privacy)).
|
|
40
|
+
|
|
41
|
+
## 7. Security
|
|
42
|
+
|
|
43
|
+
- The Service runs as a local MCP server with no network exposure by default.
|
|
44
|
+
- No credentials, tokens, or secrets are stored.
|
|
45
|
+
- The source code is open for security audit under the MIT license.
|
|
46
|
+
|
|
47
|
+
## 8. Changes
|
|
48
|
+
|
|
49
|
+
We may update this policy as the Service evolves. Changes will be noted in the repository's changelog.
|
|
50
|
+
|
|
51
|
+
## 9. Contact
|
|
52
|
+
|
|
53
|
+
For privacy questions: open an issue at https://github.com/mcp-tools-lab/education-mcp/issues
|
package/README.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# education-mcp
|
|
2
|
+
|
|
3
|
+
AI-powered education tools for teachers and students via the [Model Context Protocol](https://modelcontextprotocol.io).
|
|
4
|
+
|
|
5
|
+
Generate quizzes, lesson plans, flashcards, concept explanations, exercises, and grading rubrics — all from your AI assistant.
|
|
6
|
+
|
|
7
|
+
## Tools
|
|
8
|
+
|
|
9
|
+
| Tool | Description |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `generate_quiz` | Multiple choice, true/false, and fill-in-blank quizzes from any topic |
|
|
12
|
+
| `generate_lesson_plan` | Structured lesson plans with Bloom's taxonomy objectives, timed activities, assessment, and differentiation |
|
|
13
|
+
| `generate_flashcards` | Spaced repetition flashcard decks with hints, tags, and Leitner review schedules |
|
|
14
|
+
| `explain_concept` | Age-appropriate explanations at beginner/intermediate/expert levels with analogies and examples |
|
|
15
|
+
| `generate_exercise` | Math, physics, chemistry, biology, and CS exercises with step-by-step solutions |
|
|
16
|
+
| `grade_rubric` | Grading rubrics for essays, presentations, projects, lab reports, and code assignments |
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
### With Claude Desktop
|
|
21
|
+
|
|
22
|
+
Add to your `claude_desktop_config.json`:
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"mcpServers": {
|
|
27
|
+
"education": {
|
|
28
|
+
"command": "npx",
|
|
29
|
+
"args": ["-y", "education-mcp"]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### With any MCP client
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx education-mcp
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Generate a Quiz
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
generate_quiz({
|
|
47
|
+
topic: "photosynthesis",
|
|
48
|
+
question_count: 10,
|
|
49
|
+
question_types: ["multiple_choice", "true_false"],
|
|
50
|
+
difficulty: "medium"
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Create a Lesson Plan
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
generate_lesson_plan({
|
|
58
|
+
topic: "fractions",
|
|
59
|
+
subject: "Mathematics",
|
|
60
|
+
grade_level: "5th grade",
|
|
61
|
+
duration_minutes: 45,
|
|
62
|
+
include_homework: true
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Make Flashcards
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
generate_flashcards({
|
|
70
|
+
topic: "Spanish irregular verbs",
|
|
71
|
+
card_count: 20,
|
|
72
|
+
difficulty: "medium",
|
|
73
|
+
include_hints: true
|
|
74
|
+
})
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Explain a Concept
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
explain_concept({
|
|
81
|
+
concept: "gravity",
|
|
82
|
+
level: "beginner",
|
|
83
|
+
age_group: "elementary",
|
|
84
|
+
include_analogy: true
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Generate Exercises
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
generate_exercise({
|
|
92
|
+
topic: "kinematics",
|
|
93
|
+
subject: "physics",
|
|
94
|
+
exercise_count: 5,
|
|
95
|
+
difficulty: "hard",
|
|
96
|
+
show_steps: true
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Create a Grading Rubric
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
grade_rubric({
|
|
104
|
+
assignment_title: "Research Paper on Climate Change",
|
|
105
|
+
assignment_type: "essay",
|
|
106
|
+
total_points: 100,
|
|
107
|
+
scale_levels: 4
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Pricing
|
|
112
|
+
|
|
113
|
+
| | Free | Pro ($9.99/month) |
|
|
114
|
+
|---|---|---|
|
|
115
|
+
| Calls per month | 30 | Unlimited |
|
|
116
|
+
| All 6 tools | Yes | Yes |
|
|
117
|
+
| Custom templates | No | Yes |
|
|
118
|
+
| Priority generation | No | Yes |
|
|
119
|
+
|
|
120
|
+
## Development
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm install
|
|
124
|
+
npm run build
|
|
125
|
+
npm test
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Run tests
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm test # single run
|
|
132
|
+
npm run test:watch # watch mode
|
|
133
|
+
npm run test:coverage # with coverage
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Disclaimer
|
|
137
|
+
|
|
138
|
+
This tool generates educational content for reference purposes. Teachers should review all generated content before classroom use. This is not a substitute for professional curriculum development.
|
|
139
|
+
|
|
140
|
+
## License
|
|
141
|
+
|
|
142
|
+
MIT - SceneView Tools
|
|
143
|
+
|
|
144
|
+
See [TERMS.md](TERMS.md) and [PRIVACY.md](PRIVACY.md) for full legal details.
|
package/TERMS.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Terms of Service — education-mcp
|
|
2
|
+
|
|
3
|
+
**Effective date:** March 26, 2026
|
|
4
|
+
**Provider:** SceneView Tools
|
|
5
|
+
|
|
6
|
+
## 1. Acceptance
|
|
7
|
+
|
|
8
|
+
By using the `education-mcp` MCP server ("Service"), you agree to these Terms of Service.
|
|
9
|
+
|
|
10
|
+
## 2. Description
|
|
11
|
+
|
|
12
|
+
The Service provides AI-assisted education tools including quiz generation, lesson planning, flashcard creation, concept explanation, exercise generation, and rubric creation via the Model Context Protocol (MCP).
|
|
13
|
+
|
|
14
|
+
## 3. Educational Disclaimer
|
|
15
|
+
|
|
16
|
+
**This Service generates educational content for reference purposes only.**
|
|
17
|
+
|
|
18
|
+
- All generated content should be reviewed by a qualified educator before use in classrooms.
|
|
19
|
+
- The Service is not a substitute for professional curriculum development, instructional design, or pedagogical expertise.
|
|
20
|
+
- Generated assessments, rubrics, and exercises are starting points and should be adapted to specific student needs, local standards, and institutional requirements.
|
|
21
|
+
- The Service does not guarantee the accuracy, completeness, or appropriateness of any generated content.
|
|
22
|
+
|
|
23
|
+
## 4. Pricing
|
|
24
|
+
|
|
25
|
+
- **Free tier:** 30 calls per month across all tools.
|
|
26
|
+
- **Pro tier:** $9.99/month for unlimited calls with enhanced features.
|
|
27
|
+
- Pricing is subject to change with 30 days notice.
|
|
28
|
+
|
|
29
|
+
## 5. Acceptable Use
|
|
30
|
+
|
|
31
|
+
You agree NOT to:
|
|
32
|
+
- Use the Service to generate content that promotes harm, discrimination, or misinformation.
|
|
33
|
+
- Redistribute generated content as your own proprietary curriculum without review and adaptation.
|
|
34
|
+
- Attempt to circumvent rate limits or access controls.
|
|
35
|
+
- Use the Service for automated scraping or bulk content generation for resale.
|
|
36
|
+
|
|
37
|
+
## 6. Intellectual Property
|
|
38
|
+
|
|
39
|
+
- Generated content is provided for your use and may be freely modified and distributed.
|
|
40
|
+
- The Service's source code is licensed under MIT.
|
|
41
|
+
- You retain all rights to content you create by modifying or building upon generated output.
|
|
42
|
+
|
|
43
|
+
## 7. Privacy
|
|
44
|
+
|
|
45
|
+
See our [Privacy Policy](PRIVACY.md) for information about data handling.
|
|
46
|
+
|
|
47
|
+
## 8. Limitation of Liability
|
|
48
|
+
|
|
49
|
+
THE SERVICE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE PROVIDER BE LIABLE FOR ANY DAMAGES ARISING FROM THE USE OF GENERATED EDUCATIONAL CONTENT, INCLUDING BUT NOT LIMITED TO INACCURATE ASSESSMENT ITEMS, INAPPROPRIATE DIFFICULTY LEVELS, OR PEDAGOGICAL UNSUITABILITY.
|
|
50
|
+
|
|
51
|
+
## 9. Changes
|
|
52
|
+
|
|
53
|
+
We may update these Terms at any time. Continued use after changes constitutes acceptance.
|
|
54
|
+
|
|
55
|
+
## 10. Contact
|
|
56
|
+
|
|
57
|
+
For questions: open an issue at https://github.com/mcp-tools-lab/education-mcp/issues
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* education-mcp — AI-powered education tools via MCP.
|
|
4
|
+
*
|
|
5
|
+
* Tools: generate_quiz, generate_lesson_plan, generate_flashcards,
|
|
6
|
+
* explain_concept, generate_exercise, grade_rubric
|
|
7
|
+
*
|
|
8
|
+
* Author: SceneView Tools
|
|
9
|
+
* License: MIT
|
|
10
|
+
*
|
|
11
|
+
* DISCLAIMER: This tool generates educational content for reference purposes.
|
|
12
|
+
* Teachers should review all generated content before use in classrooms.
|
|
13
|
+
* This is not a substitute for professional curriculum development.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* education-mcp — AI-powered education tools via MCP.
|
|
4
|
+
*
|
|
5
|
+
* Tools: generate_quiz, generate_lesson_plan, generate_flashcards,
|
|
6
|
+
* explain_concept, generate_exercise, grade_rubric
|
|
7
|
+
*
|
|
8
|
+
* Author: SceneView Tools
|
|
9
|
+
* License: MIT
|
|
10
|
+
*
|
|
11
|
+
* DISCLAIMER: This tool generates educational content for reference purposes.
|
|
12
|
+
* Teachers should review all generated content before use in classrooms.
|
|
13
|
+
* This is not a substitute for professional curriculum development.
|
|
14
|
+
*/
|
|
15
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
16
|
+
import { createServer } from "./server.js";
|
|
17
|
+
async function main() {
|
|
18
|
+
const server = createServer();
|
|
19
|
+
const transport = new StdioServerTransport();
|
|
20
|
+
await server.connect(transport);
|
|
21
|
+
console.error("education-mcp server started on stdio");
|
|
22
|
+
}
|
|
23
|
+
main().catch((err) => {
|
|
24
|
+
console.error("Fatal error:", err);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server for education-mcp.
|
|
3
|
+
*
|
|
4
|
+
* Registers all 6 education tools and exposes them via the Model Context Protocol.
|
|
5
|
+
*/
|
|
6
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
export declare function createServer(): McpServer;
|
|
8
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,wBAAgB,YAAY,IAAI,SAAS,CA8NxC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server for education-mcp.
|
|
3
|
+
*
|
|
4
|
+
* Registers all 6 education tools and exposes them via the Model Context Protocol.
|
|
5
|
+
*/
|
|
6
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { generateQuiz, generateLessonPlan, generateFlashcards, explainConcept, generateExercise, gradeRubric, } from "./tools/index.js";
|
|
9
|
+
import { RATE_LIMITS } from "./types.js";
|
|
10
|
+
// Re-export zod from the SDK for schema definitions
|
|
11
|
+
// The MCP SDK bundles zod, so we use it from there.
|
|
12
|
+
export function createServer() {
|
|
13
|
+
const server = new McpServer({
|
|
14
|
+
name: "education-mcp",
|
|
15
|
+
version: "1.0.0",
|
|
16
|
+
description: "AI-powered education tools for teachers and students. Generate quizzes, lesson plans, flashcards, concept explanations, exercises, and grading rubrics.",
|
|
17
|
+
});
|
|
18
|
+
// ── generate_quiz ──────────────────────────────────────────────────────────
|
|
19
|
+
server.tool("generate_quiz", "Create a quiz from a topic with multiple choice, true/false, and fill-in-blank questions. Perfect for formative assessment, test prep, and homework.", {
|
|
20
|
+
topic: z.string().min(1).describe("The topic to generate questions about (e.g., 'photosynthesis', 'World War II', 'quadratic equations')"),
|
|
21
|
+
question_count: z.number().int().min(1).max(50).optional().describe("Number of questions (default: 5, max: 50)"),
|
|
22
|
+
question_types: z
|
|
23
|
+
.array(z.enum(["multiple_choice", "true_false", "fill_in_blank"]))
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Types of questions to include (default: all three)"),
|
|
26
|
+
difficulty: z.enum(["easy", "medium", "hard"]).optional().describe("Difficulty level (default: medium)"),
|
|
27
|
+
subject: z.string().optional().describe("Subject area (auto-detected if omitted)"),
|
|
28
|
+
age_group: z
|
|
29
|
+
.enum(["elementary", "middle_school", "high_school", "college", "adult"])
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("Target age group (default: inferred from difficulty)"),
|
|
32
|
+
}, async (args) => {
|
|
33
|
+
try {
|
|
34
|
+
const result = generateQuiz(args);
|
|
35
|
+
return {
|
|
36
|
+
content: [
|
|
37
|
+
{
|
|
38
|
+
type: "text",
|
|
39
|
+
text: JSON.stringify(result, null, 2),
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
47
|
+
isError: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// ── generate_lesson_plan ───────────────────────────────────────────────────
|
|
52
|
+
server.tool("generate_lesson_plan", "Create a structured lesson plan with learning objectives (Bloom's taxonomy), timed activities, assessment strategies, and differentiation. Follows the Madeline Hunter model.", {
|
|
53
|
+
topic: z.string().min(1).describe("Lesson topic (e.g., 'fractions', 'the water cycle')"),
|
|
54
|
+
subject: z.string().min(1).describe("Subject area (e.g., 'Mathematics', 'Science')"),
|
|
55
|
+
grade_level: z.string().min(1).describe("Grade level (e.g., '5th grade', 'AP Biology')"),
|
|
56
|
+
duration_minutes: z.number().int().min(15).max(180).optional().describe("Lesson duration in minutes (default: 45)"),
|
|
57
|
+
objectives_count: z.number().int().min(1).max(6).optional().describe("Number of learning objectives (default: 3)"),
|
|
58
|
+
include_standards: z.boolean().optional().describe("Include standards alignment (default: true)"),
|
|
59
|
+
include_homework: z.boolean().optional().describe("Include homework assignment (default: false)"),
|
|
60
|
+
}, async (args) => {
|
|
61
|
+
try {
|
|
62
|
+
const result = generateLessonPlan(args);
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return {
|
|
69
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
70
|
+
isError: true,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// ── generate_flashcards ────────────────────────────────────────────────────
|
|
75
|
+
server.tool("generate_flashcards", "Create a spaced repetition flashcard deck from a topic. Cards include front/back, optional hints, difficulty tags, and a review schedule based on the Leitner system.", {
|
|
76
|
+
topic: z.string().min(1).describe("Topic for the flashcard deck (e.g., 'Spanish vocabulary', 'cell biology')"),
|
|
77
|
+
card_count: z.number().int().min(1).max(100).optional().describe("Number of flashcards (default: 10, max: 100)"),
|
|
78
|
+
difficulty: z.enum(["easy", "medium", "hard"]).optional().describe("Maximum difficulty level (default: medium)"),
|
|
79
|
+
include_hints: z.boolean().optional().describe("Include study hints on cards (default: true)"),
|
|
80
|
+
tags: z.array(z.string()).optional().describe("Custom tags for organizing cards"),
|
|
81
|
+
}, async (args) => {
|
|
82
|
+
try {
|
|
83
|
+
const result = generateFlashcards(args);
|
|
84
|
+
return {
|
|
85
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return {
|
|
90
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
91
|
+
isError: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
// ── explain_concept ────────────────────────────────────────────────────────
|
|
96
|
+
server.tool("explain_concept", "Explain a concept at different levels (beginner/intermediate/expert) and for different age groups. Includes analogies, examples, prerequisites, and common misconceptions.", {
|
|
97
|
+
concept: z.string().min(1).describe("The concept to explain (e.g., 'gravity', 'photosynthesis', 'machine learning')"),
|
|
98
|
+
level: z.enum(["beginner", "intermediate", "expert"]).optional().describe("Explanation depth (default: beginner)"),
|
|
99
|
+
age_group: z
|
|
100
|
+
.enum(["elementary", "middle_school", "high_school", "college", "adult"])
|
|
101
|
+
.optional()
|
|
102
|
+
.describe("Target age group for vocabulary and examples (default: high_school)"),
|
|
103
|
+
include_analogy: z.boolean().optional().describe("Include a relatable analogy (default: true)"),
|
|
104
|
+
include_examples: z.boolean().optional().describe("Include practical examples (default: true)"),
|
|
105
|
+
max_length: z.number().int().min(50).max(2000).optional().describe("Maximum word count (default: 500)"),
|
|
106
|
+
}, async (args) => {
|
|
107
|
+
try {
|
|
108
|
+
const result = explainConcept(args);
|
|
109
|
+
return {
|
|
110
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
return {
|
|
115
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
116
|
+
isError: true,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
// ── generate_exercise ──────────────────────────────────────────────────────
|
|
121
|
+
server.tool("generate_exercise", "Generate math, physics, chemistry, biology, or computer science exercises with step-by-step solutions, hints, and common mistakes. Great for homework and practice sets.", {
|
|
122
|
+
topic: z.string().min(1).describe("Exercise topic (e.g., 'linear equations', 'kinematics', 'DNA replication')"),
|
|
123
|
+
subject: z
|
|
124
|
+
.enum(["math", "physics", "chemistry", "biology", "computer_science"])
|
|
125
|
+
.describe("Subject area for the exercises"),
|
|
126
|
+
exercise_count: z.number().int().min(1).max(20).optional().describe("Number of exercises (default: 3, max: 20)"),
|
|
127
|
+
difficulty: z.enum(["easy", "medium", "hard"]).optional().describe("Difficulty level (default: medium)"),
|
|
128
|
+
include_hints: z.boolean().optional().describe("Include hints for each exercise (default: true)"),
|
|
129
|
+
show_steps: z.boolean().optional().describe("Show step-by-step solutions (default: true)"),
|
|
130
|
+
}, async (args) => {
|
|
131
|
+
try {
|
|
132
|
+
const result = generateExercise(args);
|
|
133
|
+
return {
|
|
134
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
return {
|
|
139
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
140
|
+
isError: true,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// ── grade_rubric ───────────────────────────────────────────────────────────
|
|
145
|
+
server.tool("grade_rubric", "Create a detailed grading rubric for an assignment. Supports essays, presentations, projects, lab reports, and code assignments. Rubrics include weighted criteria with level descriptors.", {
|
|
146
|
+
assignment_title: z.string().min(1).describe("Title of the assignment (e.g., 'Research Paper on Climate Change')"),
|
|
147
|
+
assignment_type: z
|
|
148
|
+
.enum(["essay", "presentation", "project", "lab_report", "code"])
|
|
149
|
+
.describe("Type of assignment"),
|
|
150
|
+
criteria_count: z.number().int().min(2).max(10).optional().describe("Number of grading criteria (default: 4)"),
|
|
151
|
+
total_points: z.number().int().min(10).max(1000).optional().describe("Total points possible (default: 100)"),
|
|
152
|
+
scale_levels: z.number().int().min(3).max(6).optional().describe("Number of performance levels (default: 4, e.g., Beginning/Developing/Proficient/Exemplary)"),
|
|
153
|
+
subject: z.string().optional().describe("Subject area for context-specific criteria"),
|
|
154
|
+
}, async (args) => {
|
|
155
|
+
try {
|
|
156
|
+
const result = gradeRubric(args);
|
|
157
|
+
return {
|
|
158
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
return {
|
|
163
|
+
content: [{ type: "text", text: `Error: ${err.message}` }],
|
|
164
|
+
isError: true,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
// ── Pricing resource ───────────────────────────────────────────────────────
|
|
169
|
+
server.resource("pricing", "education://pricing", async () => ({
|
|
170
|
+
contents: [
|
|
171
|
+
{
|
|
172
|
+
uri: "education://pricing",
|
|
173
|
+
mimeType: "application/json",
|
|
174
|
+
text: JSON.stringify({
|
|
175
|
+
free_tier: {
|
|
176
|
+
calls_per_month: RATE_LIMITS.freeMonthlyLimit,
|
|
177
|
+
features: "All 6 tools with standard output",
|
|
178
|
+
},
|
|
179
|
+
pro_tier: {
|
|
180
|
+
price_usd: RATE_LIMITS.proPriceUsd,
|
|
181
|
+
period: "month",
|
|
182
|
+
calls_per_month: "unlimited",
|
|
183
|
+
features: "All 6 tools, priority generation, extended output, custom templates",
|
|
184
|
+
},
|
|
185
|
+
}),
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
}));
|
|
189
|
+
return server;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* explain_concept — Explain a concept at different audience levels and age groups.
|
|
3
|
+
*
|
|
4
|
+
* Generates structured explanations with analogies, examples, prerequisites,
|
|
5
|
+
* and common misconceptions.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExplainConceptInput, ConceptExplanation } from "../types.js";
|
|
8
|
+
export declare function explainConcept(input: ExplainConceptInput): ConceptExplanation;
|
|
9
|
+
//# sourceMappingURL=explain-concept.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain-concept.d.ts","sourceRoot":"","sources":["../../src/tools/explain-concept.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAGnB,MAAM,aAAa,CAAC;AAwIrB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,CAgD7E"}
|