Hackathon
When Butterbase runs a hackathon, you register with a code from the organizers, submit your project through the prep_and_submit_hackathon_entry MCP tool, and review your entry in the dashboard.
Before you submit
Section titled “Before you submit”- Connect MCP — Follow MCP Setup so your assistant can call Butterbase tools with your API key.
- Get a submission code — Organizers share a per-hackathon code (for example after you sign up). You need it on your first successful submission so your account is bound to that hackathon. The same code is also used during prep to identify which open hackathon you mean when more than one is running.
- Know your
app_id(recommended) — Usemanage_appwithaction: "list"and copy theidof the app you are entering (for exampleapp_abc123). See Why include app_id below.
Submitting with MCP
Section titled “Submitting with MCP”The tool prep_and_submit_hackathon_entry appears in your MCP tool list whenever some hackathon row has starts_at ≤ now ≤ submission_deadline. Calendar ends_at is separate from submissions closing at submission_deadline.
The flow is two steps: prep to resolve the hackathon and discover its fields, then submit with the confirmed values.
Step 1 — action: "prep"
Section titled “Step 1 — action: "prep"”Pass your submission_code. The tool resolves which open hackathon you mean and returns:
matched—{ slug, name, submission_deadline, ends_at, field_schema }describing the hackathon and its fields.open_hackathons— every hackathon currently accepting submissions, in casematchedisnulland you need to disambiguate.next_call— a fully-formed examplesubmitinvocation, including a placeholder for every field infield_schema. Use this as the literal shape for Step 2 — replace each placeholder inarguments.datawith the user-confirmed value.
If matched is null and open_hackathons has multiple entries, ask the user which hackathon and re-run prep with the right submission_code.
Step 2 — action: "submit"
Section titled “Step 2 — action: "submit"”Send:
hackathon_slug— usematched.slugfrom the prep response so submit targets exactly the hackathon prep resolved.data— an object whose keys match eachfield_schemafield’skey. Easiest path: takenext_call.arguments.datafrom prep and fill in each placeholder. A JSON-encoded string is also accepted and will be parsed.app_id— strongly recommended; see Why include app_id.submission_code— required only on the first submission so you can be bound as a participant. After that you are bound by user id and the code is no longer required.
If data is missing
Section titled “If data is missing”If you call submit without data, the tool does not just error. It re-resolves the hackathon and returns the field schema plus another next_call template so you have an exact shape to retry with — no extra round trip needed.
Updates
Section titled “Updates”Submissions upsert: calling submit again with new data updates your entry and bumps version.
Why include app_id
Section titled “Why include app_id”Pass app_id (the Butterbase app you built) on every submission when you can.
Automated leaderboard scoring works like this:
- Up to 50 points for a valid demo URL hosted on
*.butterbase.dev. The hackathon schema may mark one field withis_urlfor this check; otherwise thedemo_urlkey indatais used. - Up to 50 additional points for Butterbase features detected on the app tied to
app_id(database, functions, deployed frontend, auth users, storage, OAuth, realtime, integrations, and more).
If app_id is omitted, only the demo URL is scored; the feature portion is zero, so your total is usually much lower than comparable entries that linked an app.
Human judges can also verify your real project faster when the submission is linked to a concrete app.
View your submission
Section titled “View your submission”Open dashboard.butterbase.ai/hackathon while signed in. You will see deadlines, your submitted fields (read-only), and the current version. Use MCP again to update the entry.