# QRvote MCP server QRvote runs contests, surveys, quizzes and scavenger hunts at in-person events with printed QR codes, plus boards the crowd writes: live Q&A, ideas boards and message walls, and nominations (people suggest the entries, then vote). Anyone can read a public contest and its results by slug (from https://qrvote.org/c/). Managing one needs its organizer key, sent by the MCP client as `Authorization: Bearer `; the organizer finds it in their organizer link (#key=…). It controls that one contest only. Voting, answering and posting are for people at the event; organizers moderate posts (list_posts, moderate_post). Creating needs a signed-in connection (create_contest); otherwise draft_contest gives the person a filled-in form. - Endpoint: https://mcp.qrvote.org/mcp (Streamable HTTP, stateless, JSON responses) - Auth: `Authorization: Bearer ` for organizer tools; none for public ones ([auth.md](https://qrvote.org/auth.md)) - Sign-in endpoint: https://mcp.qrvote.org/mcp/organizer (OAuth 2.1, for claude.ai, ChatGPT and other connector UIs: the organizer picks the contests and Read or Manage; no key in the chat) - Server card: https://mcp.qrvote.org/.well-known/mcp/server-card.json - The same API over HTTP: [OpenAPI 3.1](https://qrvote.org/openapi.json), [guide](https://qrvote.org/developers) ## Tools - `draft_contest` (public): Draft a new contest, survey, quiz, hunt, Q&A, ideas board, nomination or wall - `create_contest` (public): Create a contest, survey, quiz, hunt, Q&A, ideas board, nomination or wall - `set_entry_photo` (organizer key): Set an entry’s photo - `get_campaign` (public): A contest, survey, hunt or board as the public sees it - `get_results` (public): Results: vote tallies, survey totals, or a hunt leaderboard - `get_dashboard` (organizer key): Everything on the organizer dashboard - `update_settings` (organizer key): Change settings, or end / reopen voting - `add_judge` (organizer key): Contests: add a judge (judging must be on) - `remove_judge` (organizer key): Contests: remove a judge, their link and their scores - `add_entries` (organizer key): Add entries (contests) or checkpoints (hunts) - `export_csv` (organizer key): Download votes, survey responses, hunt players or board posts as CSV - `get_poster_orders` (organizer key): Order printed posters on Zazzle: a ready order link and print image for each size - `get_certificate_orders` (organizer key): Order printed certificates on Zazzle, once voting has closed - `list_responses` (organizer key): Survey responses, newest first (up to 500). Quizzes include each response's score. - `host_step` (organizer key): Run a live quiz: start, reveal, next question, finish, or pause/resume its clock - `set_questions` (organizer key): Surveys and quizzes: replace the questions (only until the first response) - `set_answer_key` (organizer key): Fix a quiz's answer key (allowed after people have answered; every score updates) - `list_posts` (organizer key): Boards and nominations: every post, including those waiting for approval or hidden - `moderate_post` (organizer key): Boards and nominations: approve, hide or answer a post; Ideas: set its status, category, reply or pin - `combine_posts` (organizer key): Ideas and nominations: combine a duplicate into another post - `approve_all_posts` (organizer key): Boards and nominations: approve every post waiting for approval - `host_question` (organizer key): Q&A: put a question on the big screen, mark it answered, or take it down - `close_suggestions` (organizer key): Nominations: close suggestions and start voting with the finalists ## Questions ### How do I connect QRvote to ChatGPT? In ChatGPT’s settings, open Connectors and create a custom connector (turn on developer mode if it asks). Paste https://mcp.qrvote.org/mcp/organizer, then sign in on QRvote and pick your contests, or none if you want it to create them. ### How do I connect QRvote to Claude? On claude.ai or Claude Desktop, open Settings, then Connectors, and add a custom connector with https://mcp.qrvote.org/mcp/organizer. In Claude Code, run: claude mcp add --transport http QRvote https://mcp.qrvote.org/mcp/organizer, then /mcp to sign in. ### Can my AI assistant create a contest? Yes, once you’ve connected it and signed in with Manage (you don’t need a contest first): it creates the contest, sets it up, and gives you a one-time link (good for 24 hours) that opens its dashboard in your browser. It can make up to 5 a day. Without signing in, it can draft one: you get a link to the filled-in form and click Create yourself. ### Can my AI assistant order prints? It can get them ready. Ask for posters, or for certificates once voting has ended, and it gives you Zazzle links that open each print filled in, with your contest’s QR code. You check it, order and pay on Zazzle; QRvote never sees your order. Sheets of entry signs carry the entries’ scan codes, so those you order from your dashboard’s Print page. ### Does the assistant see my organizer key? No. You sign in on QRvote and choose which contests it can use and whether it can only read or also manage. The key stays encrypted on QRvote, and you can disconnect the app from the contest’s dashboard at any time. ### Is it free? Yes. QRvote is free, with no ads or tracking, and so is connecting it to an AI assistant. ## Connect In claude.ai or ChatGPT, add a custom connector with the URL `https://mcp.qrvote.org/mcp/organizer` and sign in. Claude Code: `claude mcp add --transport http QRvote https://mcp.qrvote.org/mcp/organizer`, then `/mcp` to sign in. Step by step, for people: https://mcp.qrvote.org/ in a browser. With a client that can send headers: ```json { "mcpServers": { "QRvote": { "type": "http", "url": "https://mcp.qrvote.org/mcp", "headers": { "Authorization": "Bearer " } } } } ```