Quiz App MCP server
Quiz App MCP server
FastMCP で構築された Python MCP (Model Context Protocol) サーバー。以下のツールを公開します:
ローカルでは stdio 経由で Claude Desktop に
リモートでは HTTP 経由で claude.ai に (Render にデプロイ)
オプションで、SQLAlchemy 経由の MySQL データベースをバックエンドとして使用できます。
プロジェクト構成
.
├── server.py # entry point — branches on RENDER env var (stdio vs HTTP)
├── config.py # loads .env, exposes shared SQLAlchemy engine
├── tools/
│ ├── __init__.py
│ └── quiz.py # tool definitions — register(mcp) adds them to a FastMCP instance
├── .env # secrets — never commit
├── .env.example
└── requirements.txtRelated MCP server: leafeep-mcp
セットアップ
git clone https://github.com/sathvik1607/Quiz_mcp_server.git
cd Quiz_mcp_server
python -m venv venv
.\venv\Scripts\pip install -r requirements.txt
copy .env.example .env
# fill in .env with real DB credentials (or remove the DB_* lines if unused)これを Claude Desktop に組み込む前に、DB 接続を確認してください:
.\venv\Scripts\python.exe -c "from config import engine; from sqlalchemy import text; print(engine.connect().execute(text('SELECT 1')).scalar())"これで 1 が表示されるはずです。ハングしたりエラーになったりした場合は、まず .env または DB 接続を修正してください — Claude Desktop 経由でデバッグしようとしないでください。
ローカルで実行する (stdio)
.\venv\Scripts\python.exe server.pyまたは MCP inspector を使用してツールを手動で呼び出すこともできます (ブラウザ UI で、Claude Desktop は不要 — 各ツールのリクエスト/レスポンスを個別に確認するのに適しています)。npx 経由で起動するため、Node/npm が必要です:
.\venv\Scripts\mcp.exe dev server.pyvenv\Scripts 内の mcp.exe エントリポイントを使用してください。python -m mcp ではありません — mcp パッケージには __main__ がないため、その形式は失敗します。
Claude Desktop に接続する
%APPDATA%\Claude\claude_desktop_config.json に追加します (既存の内容にマージしてください — ファイルを上書きしないでください):
{
"mcpServers": {
"quizapp": {
"command": "C:\\path\\to\\project\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\project\\server.py"]
}
}
}リポジトリをクローンした場所に合わせた絶対パスを使用してください。
Claude Desktop を完全に終了して再起動してください — ウィンドウを閉じるだけではなく、システムトレイから終了してください。MCP 設定は完全な再起動でのみ再読み込みされます。
次に、読み込まれたことを確認します: 設定 → コネクタ → quizapp が「その他のツール」の下に 5 つのツール (Register user, Get question, Validate answer, Generate leaderboard, Review answers) とともに表示されているはずです。
クイズをプレイする
新しいチャットを開始し、明確に指示してください — 「クイズを始めましょう」のような曖昧なプロンプトは、このサーバーのツールを呼び出す代わりに、無関係な組み込みの「クイズを生成」フローに誤ってルーティングされる可能性があります。代わりに、次のように言ってください:
"register_user ツールを使用して、unique_id <id> で <name> として登録し、クイズを 開始してください。"
そこから先は、サーバー自身の指示 (server.py 内) がフローの残りを進めます — 一度に 1 問ずつ、あなたの回答を待ってから次に進みます。
Render にデプロイする (HTTP、claude.ai 用)
GitHub にプッシュする (
.envは gitignore されています — 絶対にコミットしないこと)。リポジトリに接続された Render Web Service を作成する。
Render ダッシュボードで環境変数を設定する:
変数
値
RENDERtrueDB_HOSTあなたの DB ホスト
DB_USERあなたの DB ユーザー
DB_PASSWORDあなたの DB パスワード
DB_NAMEあなたの DB 名
起動コマンド:
python server.pyserver.py内で、RENDER分岐にあるBASE_URLを実際の Render URL に更新する。claude.ai → 設定 → コネクタ で、
https://your-app.onrender.com/mcpを追加する。
現在、HTTP エンドポイントには認証が設定されていません — URL を知っている人は誰でも、DB を使用するものを含むすべてのツールを呼び出すことができます。これは当面のセットアップを簡単にするための意図的な選択であり、機密情報を公開する前に見直してください (下記の「セキュリティ」を参照)。
注記
OAuth は現在、HTTP エンドポイントから削除されています — このサーバーの DB/ツールに対して claude.ai をまだ使用していないため、余分な複雑さを加える価値がありませんでした。必要になれば後で追加し直してください。
キープアライブ
Render の無料プランは 15 分間アイドル状態が続くとスリープするため、スリープ後の最初のリクエストは遅くなるか (30–60秒)、タイムアウトします。すでに講じている対策:
server.py内のバックグラウンドスレッドが/healthに 10 分ごとに ping を送信します。https://your-app.onrender.com/healthに 5 分ごとに外部モニター (例: UptimeRobot) を設定してください —/mcpには設定しないでください。
新しいツールを追加する
tools/quiz.py を開き、register(mcp) 内に関数を追加します:
@mcp.tool()
def my_new_tool(param1: str, param2: int) -> dict:
"""
One-sentence description of what this tool does.
The agent reads this docstring to decide when to call the tool.
Args:
param1: What this string parameter means.
param2: What this integer parameter means.
"""
result = do_something(param1, param2)
return {"result": result}個別の登録手順はありません — register(mcp) は stdio インスタンスと HTTP インスタンスの両方で呼び出されます。
セキュリティ
.envは gitignore されています — 絶対にコミットしないでください。ツールは生の SQL を返したり、DB スキーマを公開したりすることはありません。
すべてのクエリはパラメータ化された SQL を使用します (
text("... WHERE id = :id")であり、文字列補間ではありません)。ユーザーが指定したテーブル名/カラム名は、SQL で使用する前に許可リストと照合して確認する必要があります。
Render の HTTP エンドポイントには認証がありません — 公開されているものとして扱ってください。認証が追加されるまで、機密データを公開したり破壊的な DB 操作を行ったりするツールを追加しないでください。
共有の
DB_*認証情報は、誰が持っていても同じ本番データベースを指しています — 分離された dev/staging インスタンスはありません。register_userとvalidate_answerはそこに直接書き込むため、ローカルでテストすると、実際のクイズデータの隣に実際の行が追加されます。テスト時には識別しやすいunique_idを使用し、必要以上にこれらの認証情報を使い回さないでください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceIntegrates Claude Desktop with Super Singularity's course creation API, enabling creation and management of courses with multiple card types (content, quiz, poll, form, video, audio, link), ElevenLabs text-to-speech generation, and Azure Blob Storage for audio hosting.
- FlicenseNot gradedqualityDmaintenanceA quiz distribution and grading server for educators. Create exams, generate student links + QR codes, grade submissions, and track student performance — all from Claude.
- AlicenseNot gradedqualityDmaintenanceIntegrates the Context Overflow Q\&A platform with Claude Code, enabling question posting, answering, voting, and platform health monitoring.MIT
- AlicenseNot gradedqualityCmaintenanceProvides 100 IT/programming quiz questions with tools to retrieve questions by category, get random questions, check answers, and list categories, usable via Claude Desktop MCP or REST API.225MIT
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Trivia MCP — wraps Open Trivia Database (free, no auth)
Your AI builds, deploys, and runs full-stack apps on a hosted workspace created at first sign-in.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sriram-2501/quiz_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server