StudyToolMCP
MCP server providing four study tools: PDF summarization, flashcard generation, math/code problem solving, and trust-filtered web search.
README
StudyTools MCP
A Model Context Protocol (MCP) server that exposes four study tools — PDF summarization, flashcard generation, math/code problem solving, and trust-filtered web search — to any MCP-compatible client (Claude Desktop, MCP Inspector, custom agents, etc.).
See Student_MCP_Server_PRD.md and Student_MCP_Server_TechStack.md for the full spec and design rationale.
Tools
| Tool | Description |
|---|---|
summarize_pdf |
Extracts text from a PDF and returns a summary + 3-5 key points. |
generate_flashcards |
Turns raw notes/text into Q&A flashcard pairs (default 10). |
solve_and_explain |
mode="math": symbolic solve via sympy, LLM fallback for word problems. mode="code": explains/debugs a code snippet via LLM. |
web_search |
Searches the web via Tavily, filtered by default (trusted_only=true) to reference/educational domains + a relevance threshold. Optional summarize=true synthesizes an answer with citations. |
Prerequisites
Local setup
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
cp .env.example .env # then fill in GROQ_API_KEY and TAVILY_API_KEY
Running locally
MCP Inspector (browser UI to call tools directly, no client wiring needed):
mcp dev server.py
Opens a browser at localhost:6274 listing all four tools — fill in inputs and run them.
Claude Desktop: add an entry to your claude_desktop_config.json
(Windows: %APPDATA%\Claude\claude_desktop_config.json; some installs — e.g. Microsoft
Store builds — sandbox this under
%LOCALAPPDATA%\Packages\<PackageName>\LocalCache\Roaming\Claude\):
{
"mcpServers": {
"studytools": {
"command": "C:\\path\\to\\project\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\project\\server.py"]
}
}
}
Fully quit and relaunch Claude Desktop afterward, then check the tools/connectors icon
in a new chat for studytools.
By default the server runs over stdio (MCP_TRANSPORT unset). No host/port needed
for local client use.
Deploying
The server supports streamable-http in addition to stdio, needed for any remotely hosted deployment (a hosted process can't run stdio the way a local desktop client does).
AWS EC2 (free tier) — primary target
Uses a t2.micro/t3.micro instance (750 hrs/month free for 12 months) running the server as a systemd service so it survives reboots and restarts on crash.
- Launch an instance: Ubuntu 22.04/24.04,
t2.microort3.micro(free-tier eligible), with a key pair you can SSH in with. - Security group: allow inbound
- port
22(SSH) from your IP only, not0.0.0.0/0 - port
8000(the MCP endpoint) from0.0.0.0/0if you want it publicly reachable, or restrict it to known client IPs — note there's no auth in front of the server (matches the PRD's v1 scope, which excludes multi-user auth), so anything with network access can call your tools and consume your Groq/Tavily quota.
- port
- SSH in, clone the repo, and run the setup script:
This installs Python deps into a venv, createsgit clone <your-repo-url> studytools-mcp cd studytools-mcp bash deploy/setup_ec2.sh.envfrom.env.exampleif missing, and registers/startsdeploy/studytools-mcp.servicevia systemd. - Add your real API keys:
nano .env, fill inGROQ_API_KEYandTAVILY_API_KEY, thensudo systemctl restart studytools-mcp. - Verify:
curl http://<ec2-public-ip>:8000/mcp(a 400/406 response is expected from a bare curl request — it means the server is up; a real MCP client will complete the full handshake). Logs:sudo journalctl -u studytools-mcp -f.
This serves plain HTTP, not HTTPS — fine for a free-tier demo, but note it if you ever point a client that requires TLS at it (adding an Nginx reverse proxy + Let's Encrypt would be the next step, out of scope for v1).
Render — alternative
render.yaml is included as a documented fallback if you'd rather not manage a server
yourself:
- Push this repo to GitHub/GitLab/Bitbucket.
- In Render, choose New > Blueprint and point it at the repo — it reads render.yaml and provisions the service automatically.
- Add
GROQ_API_KEYandTAVILY_API_KEYunder the service's Environment tab (markedsync: falsein the blueprint, so Render won't set them for you). - The MCP endpoint is reachable at
https://<your-service>.onrender.com/mcp.
If Render's health check fails against / (the MCP route only exists at /mcp), set
the service's Health Check Path to /mcp in the dashboard.
Project structure
app.py # FastMCP instance, host/port/env config
llm.py # Groq client wrapper (chat_completion, JSON mode)
server.py # Entrypoint — registers tools, runs stdio or streamable-http
tools/
pdf_tools.py # summarize_pdf
flashcard_tools.py # generate_flashcards
solve_tools.py # solve_and_explain
search_tools.py # web_search
deploy/
studytools-mcp.service # systemd unit for AWS EC2
setup_ec2.sh # EC2 provisioning script
requirements.txt
render.yaml # Render Blueprint (alternative deploy path)
.env.example
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.