uniquick
v0.1.2
Published
CLI + MCP server for UniQuick — deploy AI-built sites to the UIUC UniQuick platform with one prompt.
Maintainers
Readme
uniquick
CLI + MCP server for UniQuick — deploy AI-built web apps (guestbooks, polls,
dashboards, live multiplayer pages, AI tools) to the University of Illinois
UniQuick platform. Visitors sign in silently with their @illinois.edu account;
data, file storage, realtime, and AI are provided by the platform.
Live at https://quick.disruptionlab.illinois.edu.
1. Get a deploy token (once)
Open https://quick.disruptionlab.illinois.edu/token, sign in with your
@illinois.edu account, create a token, and copy it (shown once, looks like
qk_...). Treat it like a password; revoke it from the same page any time.
2a. Use it as an MCP server (recommended for Claude Code / Desktop)
No clone, no install — one command:
claude mcp add uniquick --env UNIQUICK_TOKEN=qk_... -- npx -y -p uniquick uniquick-mcpYour agent gains the tools create_site, deploy_site, list_sites,
delete_site, get_site_url. Then just ask:
Create a UniQuick site called
team-polland deploy a ranked-choice voting page to it.
By default deploy_site only deploys directories inside the MCP server's working
directory (the exfiltration guard). Set UNIQUICK_DEPLOY_ROOT to widen it:
--env UNIQUICK_DEPLOY_ROOT=/path/to/projects.
2b. Or use the CLI directly
export UNIQUICK_TOKEN=qk_...
npx -y uniquick token-check # verify auth
npx -y uniquick create my-site --title "My Site"
npx -y uniquick deploy ./my-site-dir --site my-site
npx -y uniquick list
npx -y uniquick delete <slug> --yesSite names are auto-prefixed with your netid (my-site → netid-my-site); the
create output shows the final id. Your site is served at
https://quick.disruptionlab.illinois.edu/s/<slug>/.
Building a site
Make a folder with an index.html that loads the SDK:
<script src="https://quick.disruptionlab.illinois.edu/sdk.js"></script>
<script type="module">
await quick.ready; // silent SSO done
quick.user; // { name, upn }
await quick.data.set("k", 42); // per-site JSON store
const url = await quick.files.upload(file); // hosted file
quick.ws.send("chat", "hi"); // realtime
const a = await quick.ai.chat("Summarize: " + text); // built-in AI, no key
</script>Full SDK reference (written for coding agents): paste https://quick.disruptionlab.illinois.edu/llms.txt into your agent's context.
Configuration
| Env | Default | Purpose |
|-----|---------|---------|
| UNIQUICK_TOKEN | — | Deploy token from /token (required) |
| UNIQUICK_URL | https://quick.disruptionlab.illinois.edu | Platform base URL |
| UNIQUICK_DEPLOY_ROOT | cwd | Directories the MCP deploy_site tool may read from |
Questions → [email protected].
