# 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
python run.pyBy default, the server runs on:
http://localhost:5001
Visit in browser:
http://localhost:5001
Use the dropdowns and forms to test:
- Generate MCQs
- Get Lesson Plan
- Create Flashcards
Or use Postman / curl.
POST /generate-mcqs
{
"topic": "Python Basics",
"count": 2
}Sample Response
{
"mcqs": [
{
"question": "Which keyword is used to define a function in Python?",
"options": ["define", "def", "func", "lambda"],
"answer": "def"
},
...
]
}Use the claude_desktop_config.json file provided to connect this server to Claude Desktop. Restart Claude Desktop after configuring it.
-
mcp_server.py→ now modular:run.py + routes.py + utils.py -
claude_desktop_config.json -
Sample_Responses.txt -
README.md - Uses NO LLMs (fully offline)
- Tested via browser, Postman, and curl
Nihal Jaiswal B.Tech (2026) GitHub: [github.com/yourusername]