Study Tools MCP
# Study Tools MCP š




[](https://github.com/francis-rf/study-Tools-mcp-server/actions/workflows/deploy.yml)
[](http://3.210.199.248:8080/)
An AI-powered study assistant built with Model Context Protocol (MCP) that generates quizzes, flashcards, summaries, and concept explanations from your study materials.
## šÆ Features
- **Smart Summarization** ā Generate concise summaries from study materials
- **Quiz Generation** ā Create customizable quizzes with difficulty levels
- **Concept Explanation** ā Get beginner/intermediate/advanced explanations
- **Flashcards** ā Auto-generate flashcard decks from documents
- **Comparison Tool** ā Compare and contrast multiple concepts
- **MCP Integration** ā Works directly with Claude Desktop
- **Web UI** ā Standalone chat interface with FastAPI backend
## š ļø Tech Stack
- **Backend**: FastAPI + Python 3.10
- **AI Framework**: Model Context Protocol (MCP)
- **AI**: OpenAI API
- **Document Parsing**: PyPDF2, pdfplumber, python-docx
- **Frontend**: Vanilla JavaScript, HTML, CSS
- **Cloud**: AWS EC2 + S3 + Secrets Manager
- **CI/CD**: GitHub Actions
## š Quick Start
### Prerequisites
- Python 3.10+
- OpenAI API key
### Installation
1. Clone the repository:
```bash
git clone https://github.com/francis-rf/study-Tools-mcp-server.git
cd study-Tools-mcp-server
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Create `.env` file:
```bash
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY
```
4. Add study materials:
Place PDF or Markdown files in `data/notes/`:
```
data/notes/
āāā Machine Learning.pdf
āāā Your Notes.md
```
5. Run the application:
```bash
python app.py
```
6. Open browser:
`http://localhost:8080`
## š³ Docker Deployment
### Build and Run
```bash
docker build -t study-tools-mcp .
docker run -p 8080:8080 --env-file .env study-tools-mcp
```
## āļø AWS Deployment
### Services Used
| Service | Purpose |
|---------|---------|
| EC2 (t2.micro) | Hosts the Docker container |
| S3 (`study-tools-mcp-materials`) | Stores PDF study materials |
| Secrets Manager (`study-tools-mcp`) | Stores OpenAI API key |
| IAM Role | Grants EC2 access to S3 and Secrets Manager |
### Setup
1. Store OpenAI API key in **AWS Secrets Manager** under secret name `study-tools-mcp`
2. Upload PDFs to **S3** bucket `study-tools-mcp-materials`
3. Launch **EC2** instance with IAM role attached (`study-tools-mcp-ec2-role`)
4. SSH in, install Docker, clone repo and run container
## āļø GitHub Actions CI/CD
Automated deployment is configured via `.github/workflows/deploy.yml`.
### Workflow: Deploy to AWS EC2
On every push to `main`, the pipeline:
1. **Checks out** the code
2. **SSHs** into the EC2 instance
3. **Pulls** latest code from GitHub
4. **Rebuilds** the Docker image
5. **Restarts** the container with zero downtime
### Required GitHub Secrets
| Secret | Description |
|--------|-------------|
| `EC2_HOST` | EC2 instance public IP |
| `EC2_USER` | `ubuntu` |
| `EC2_SSH_KEY` | Contents of the `.pem` key file |
### Workflow Status
[](https://github.com/francis-rf/study-Tools-mcp-server/actions/workflows/deploy.yml)
## š Project Structure
```
study-Tools-mcp-server/
āāā app.py # FastAPI web application
āāā src/study_tools_mcp/
ā āāā server.py # MCP server entry point
ā āāā config.py # Configuration (Secrets Manager + .env fallback)
ā āāā tools/ # Quiz, flashcards, summarizer, explainer
ā āāā parsers/ # PDF and Markdown parsers
ā āāā utils/ # Logger
āāā static/ # Frontend assets
āāā templates/ # HTML templates
āāā data/notes/ # Study materials (local only ā S3 on AWS)
āāā logs/ # Application logs
āāā .github/workflows/ # CI/CD
ā āāā deploy.yml
āāā Dockerfile
āāā requirements.txt
āāā pyproject.toml
```
## š” API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/` | Web UI |
| GET | `/health` | Health check |
| GET | `/api/files` | List available study materials |
| POST | `/api/chat` | Chat with streaming |
| POST | `/api/chat/clear` | Clear conversation history |
## š Claude Desktop Integration
Add to `%APPDATA%\Claude\claude_desktop_config.json`:
```json
{
"mcpServers": {
"study-tools-mcp": {
"command": "uv",
"args": ["--directory", "C:\\path\\to\\study-tools-mcp", "run", "study-tools-mcp"]
}
}
}
```
Restart Claude Desktop ā the tools will be available automatically.
## šø Screenshots

_Study Tool AI Interface with quiz generation_

_Study Tool AI Integration with Claude Desktop_
## š License
MIT License
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: compare concepts, generate flashcards, create quizzes, explain topics, summarize chapters, and summarize topics. Even the two summarization tools are differentiated by scope (chapter vs. topic). Agents can easily select the appropriate tool.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., compare_two_concepts, create_flashcards). The naming convention is uniform and predictable across all tools.
Six tools is an appropriate number for a study aid server, covering core actions like explanation, comparison, summary generation, flashcard creation, and quiz creation. The count is neither too thin nor too heavy.
The tool set covers essential study material generation tasks: explaining, comparing, summarizing, creating flashcards, and creating quizzes. A minor gap is the lack of tools to manage or edit generated items, but this is acceptable for a generation-focused server.