Documentation
MCP setup guide
Add QuizCaddy as a remote MCP server, approve the connection and verify that your client can submit a question batch.
Updated:
Before you start
You need a QuizCaddy account and an MCP client that supports remote servers over Streamable HTTP with OAuth. Claude, ChatGPT and Grok expose this flow on supported plans. Other clients can connect when they offer an equivalent remote connector.
- A QuizCaddy account you can sign in to.
- A browser available for the OAuth consent step.
- An MCP client with a custom or remote MCP server option.
- Permission to add connectors in that client, if your workspace restricts them.
You do not need an API key
Server details
Use this endpoint for every client. It accepts Streamable HTTP POST requests and returns JSON responses. The server is stateless and does not keep a session open for server-sent events.
https://quizcaddy.com/api/mcpOAuth-capable clients discover the authorization server from the protected-resource metadata document. You normally do not need to enter this URL by hand, but it is useful when debugging a client that cannot complete discovery.
https://quizcaddy.com/.well-known/oauth-protected-resource/api/mcpcurl -s https://quizcaddy.com/.well-known/oauth-protected-resource/api/mcpA healthy response names the QuizCaddy MCP resource, lists the Supabase authorization server and advertises the openid and email scopes. The endpoint supports GET and OPTIONS with a five-minute public cache.
Connect step by step
Create or sign in to your QuizCaddy account
You need an account before a client can request access. Sign in or create an account on quizcaddy.com, then keep that browser session available for the approval step.
Open your client's connector settings
In Claude, open Customize and choose Connectors. In ChatGPT, open Plugins. In Grok, open Connectors. The exact label can change between client versions.
Add a remote MCP server
Choose the option for a custom or remote MCP server, then enter QuizCaddy as the name and https://quizcaddy.com/api/mcp as the server URL.
Approve the OAuth request
Your browser opens QuizCaddy's consent screen. Check the redirect host, sign in with the account you want to connect, review the openid and email scopes and choose Approve.
Verify the tools
Open the connector's tool list and confirm that listFolders and submitQuestions are available. Ask the client to save a small batch of questions.
Check the deck and revoke if needed
The new deck appears in your library. To disconnect later, open Connected apps and revoke the client. Revoking stops future tool calls but keeps questions already imported.
Client-specific notes
Claude
Open Customize, choose Connectors and add a custom connector. Enter QuizCaddy as the name and the MCP server URL above. After you add it, choose Connect, approve the QuizCaddy consent screen and open the tool settings to review the available tools.
ChatGPT
Open Plugins, use the add menu and choose Add custom MCP server. Enter the name and URL, confirm the acknowledgement and create the connector. Choose Connect QuizCaddy, approve the consent screen and select QuizCaddy from the app menu in a chat.
Custom connectors are available only on plans and workspace configurations that expose them. If the option is missing, use JSON import.
Grok
Open Connectors from the sidebar, choose New Connector and select Custom. Enter QuizCaddy as the name and the MCP server URL, add the connector, approve the QuizCaddy consent screen and select QuizCaddy from the connector menu in a chat.
Other MCP clients
Configure a remote MCP server with the URL above and enable OAuth. The client must support Streamable HTTP and must be able to open a browser for consent. A client that only launches local stdio servers cannot connect directly.
Menus move between releases
What happens during OAuth
The client reads the protected-resource metadata, registers a redirect address and sends you to QuizCaddy to approve the request. QuizCaddy shows the client name, the redirect host and the scopes being requested. The hosted server asks for openid and email.
- The client opens the authorization request in your browser.
- QuizCaddy asks you to sign in if you do not already have a session.
- The consent screen shows where the client will send you and which scopes it requests.
- You approve or deny the request. Nothing is shared before you approve.
- The client receives an access token and can call the MCP tools for your account.
Approve only requests you started. The service label on the consent screen is based on the registered redirect host; it is not a cryptographic verification of the client. If the redirect host is unfamiliar, deny the request and start again from the client you trust.
Wrong account or expired request
Verify the connection
After approval, ask the client to list its QuizCaddy tools. You should see listFolders and submitQuestions. Then send a small test batch and check that the deck appears in your library.
{
"source": "MCP setup check",
"topic": "MCP setup check",
"questions": [
{
"question": "What is 2 + 2?",
"options": ["3", "4", "5", "6"],
"correct_answer": "4",
"step_by_step_solution": ["2 + 2 = 4."],
"subject": "Mathematics",
"difficulty": "easy"
}
]
}Paste the payload into the chat and ask the client to submit it with QuizCaddy. A successful result reports the deck topic and the number of questions added. Open Library to confirm the deck is there.
Tools reference
listFolders
Returns up to 300 existing folder paths and whether auto-filing is enabled. It never returns deck titles, questions, folder IDs or account identifiers. Call it before submitting when you want the client to reuse an existing folder name.
Folder filing is part of the paid plan. On the free plan the tool returns folders_locked: true and an empty path list. That is a normal plan response.
submitQuestions
Creates one deck from 1 to 200 multiple-choice questions. Every question needs exactly four distinct options, the exact text of the correct option and at least one solution step. Optional subject, difficulty and exam labels are limited to 80 characters.
The tool skips duplicate questions, applies the rolling import allowance and may shuffle answer options. If the allowance is reached partway through a batch, it saves the questions that fit and reports the rest as not_added_quota. Do not retry the same batch.
Troubleshooting
The client cannot find the server
Check that the URL is exactly the MCP server URL above and uses HTTPS. Confirm that the client supports remote MCP servers rather than only local stdio commands.
Authorization fails
Sign in to QuizCaddy in the same browser, then start the connection again from the client. If the consent screen says the request belongs to another account, sign out and use the correct account. An expired or already completed request must be restarted.
No tools appear
Finish the OAuth approval before opening the tool list. If the connector is already approved, remove it and add it again so the client refreshes its tool discovery.
Folders are locked
Folder filing requires the paid plan. Submit without folder_path or let the client save the deck unorganised; the questions are still saved.
The batch was quota-limited
The account reached its rolling import allowance. The result message states how many questions were saved and when allowance starts to release. Retrying the same batch cannot create more allowance.
No deck was created
Every question in the batch already exists for the account, or no new question fit within the allowance. Check the result text before submitting a different batch.
Security and revocation
The client stores the access token it receives. Treat that client as trusted. Revoke access from Connected apps when you stop using a connector or when you no longer recognise it. Revocation prevents future tool calls but does not delete decks that were already imported.
The MCP tools cannot read your practice history, mistakes, billing details or another account. They can submit question batches and, on the paid plan, list folder paths for the signed-in account.
Your chatbot is a separate service. Its handling of your conversation and any copies of the questions it keeps are governed by that provider's terms and privacy policy.
If your client cannot connect
Use JSON import when a client does not support remote MCP connectors, when a workspace blocks custom connectors or when you prefer to review the payload before it is saved. The Import page accepts the same schema and applies the same validation, duplicate checks and allowance rules.
Related reading
Connect your first client
Create a free account, add the QuizCaddy MCP server and send a test deck from the chatbot you already use.