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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。