Integrates with Google Gemini to generate educational content such as multiple-choice questions (MCQs), flashcards, and lesson plans.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Educhain MCP ServerGenerate 5 MCQs about the solar system for a science quiz"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Educhain based MCP Server (via Google Gemini)
This project devises an MCP server that handles various functions like: generating MCQs, flashcards, lesson-plans etc.,
Structure
Installation and Initialization
Recommended Python version: 3.10
Packages Manager: uv (Recommended) or pip
Step 0: Clone this repository
Step 1: Install uv
Step 2: Initialize project
Step 3: Add required packages
Step 4: Add your Google gemini api key
Step 5: Debug your MCP server
It produces a tokenised proxy server at
Paste it and navigate to the link in a browser. Click "Connect" and you can debug your tools, resources and prompts in that site.
Step 6: Install Claude Desktop app
Install Claude Desktop app and login with your account(can be new).
Step 7: Add MCP server to Claude Desktop app
In the git repo folder run
After that your claude_desktop_config.json should look like this:
Final step: Check for any discrepancies in the logs
All the logs are located at:
Metadata
get_info(about://info) resource lists out all the tools and resources provided by this server
Key Characteristics of this project
Modularity: Separating the server initialization (server.py), route handling (handlers.py), and the main entry point (main.py) makes the codebase clean, scalable, and easy to maintain.
Clear Schema Definitions: Use of Pydantic models in the schema directory. It ensures strong data validation, clear API contracts, and self-documenting code for requests and responses.
Dependency Injection: Passing the mcp server instance to handler functions (handle_resources(mcp)) is a good practice. It avoids circular dependencies and global state issues.
Use of Decorators: The @mcp.resource and @mcp.tool decorators provide a clean and declarative way to define the server's capabilities.
Known Issues
Claude Desktop client cannot direclty access Resource Templates (Beta stage)
For Example Claude Desktop client cannot access the generate_lessonplan resource(uri = lessonplan://{topic}) cannot be used directly as it is in beta stage and doesn't support dynamic resource uri's!!!
So Generate a lesson plan to teach algebra cannot invoke the generate_lessonplan tools!
Needs external LLM to generate content
Claude being a powerful llm cannot direclty generate content according to our tools and resources! (Hence I am using Gemini)
Key Contributors
Myself(Anudeep-CodeSpace), Chatgpt, Perplexity AI, Gemini(Free LLM)
Note
Node js(LTS) version is required for debugging pyenv is not recommended(That wasted a lot of time for me 😭)