offline-mcp-educational-server
by Nihal108-bi
README.md
### โ
`README.md`
```markdown
# Offline MCP Server โ EduChain Assignment Submission
This project implements an **offline MCP (Meta-Channel Protocol) server** that simulates educational content generation tools without using any external LLMs (e.g., OpenAI or Gemini). It is fully compatible with Claude Desktop or can be tested independently using browser, Postman, or cURL.
---
## ๐ Project Structure
```
.
โโโ run.py # Entry point to run the Flask server
โโโ requirements.txt # Dependencies (Flask)
โโโ claude\_desktop\_config.json # Claude Desktop configuration (optional)
โโโ Sample\_Responses.txt # Sample API calls and responses
โโโ README.md # This file
โโโ app/
โโโ **init**.py # Initializes the Flask app
โโโ routes.py # Flask routes and UI form
โโโ edu\_utils.py # Core educational logic (MCQs, plans, flashcards)
````
---
## ๐ Features
| Tool | Endpoint | Description |
|------------------|--------------------------|-------------------------------------------------|
| MCQ Generator | `/generate-mcqs` | Generates MCQs based on topic and count |
| Lesson Plan Tool | `/get-lesson-plan` | Returns a structured lesson plan for a subject |
| Flashcards Tool | `/generate-flashcards` | Creates flashcards from topic keywords |
| Test UI | `/` | Browser form to test all routes easily |
---
## ๐ง LLM-Free Design
Instead of calling real LLMs like OpenAI or Gemini, this project:
- Uses **handwritten logic**
- Returns **realistic educational content**
- Fully mimics JSON structure expected by Claude Desktop
---
## ๐ง Installation & Run
### Step 1: Install requirements
```bash
pip install -r requirements.txt
````
### Step 2: Run the Flask server
```bash
python run.py
```
By default, the server runs on:
```
http://localhost:5001
```
---
## ๐ Test the Server (Without Claude)
Visit in browser:
```
http://localhost:5001
```
Use the dropdowns and forms to test:
* Generate MCQs
* Get Lesson Plan
* Create Flashcards
Or use Postman / curl.
---
## ๐งช Sample Request
**POST** `/generate-mcqs`
```json
{
"topic": "Python Basics",
"count": 2
}
```
**Sample Response**
```json
{
"mcqs": [
{
"question": "Which keyword is used to define a function in Python?",
"options": ["define", "def", "func", "lambda"],
"answer": "def"
},
...
]
}
```
---
## ๐ Claude Desktop Integration (Optional)
Use the `claude_desktop_config.json` file provided to connect this server to Claude Desktop. Restart Claude Desktop after configuring it.
---
## ๐ฅ Submission Checklist
* [x] `mcp_server.py` โ now modular: `run.py + routes.py + utils.py`
* [x] `claude_desktop_config.json`
* [x] `Sample_Responses.txt`
* [x] `README.md`
* [x] Uses NO LLMs (fully offline)
* [x] Tested via browser, Postman, and curl
---
## ๐ง Author
**Nihal Jaiswal**
B.Tech (2026)
GitHub: \[[github.com/yourusername](https://github.com/Nihal108-bi)]
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues