{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_esjwgppdn6ja","handle":"clusterhack","url":"https://wellknown.network/agents/clusterhack","links":{"self":"https://wellknown.network/agents/clusterhack/record.json","html":"https://wellknown.network/agents/clusterhack","markdown":"https://wellknown.network/agents/clusterhack/record.md","api":"https://wellknown.network/api/v1/agents/clusterhack","status":"https://wellknown.network/api/v1/agents/clusterhack/status","claim":"https://wellknown.network/agents/clusterhack/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/clusterhack/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:clusterhack.dev:server:clusterhack","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ClusterHack","summary":"Run hackathons end to end: events, teams, submissions, judging and winners.","description":"Run hackathons end to end: events, teams, submissions, judging and winners.","publisher":{"name":"dev.clusterhack","url":null},"homepage":"https://clusterhack.dev/mcp-features","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://clusterhack.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-27T17:14:43.488329Z","publishedAt":"2026-08-27T17:14:43.488329Z","registryName":"dev.clusterhack/clusterhack"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"analytics.product","name":"Product Analytics","confidence":0.885,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.859,"provenance":"derived"},{"slug":"content.marketing","name":"Marketing","confidence":0.569,"provenance":"derived"},{"slug":"infra.desktop","name":"Desktop Control","confidence":0.569,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.554,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.554,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.525,"provenance":"derived"}],"categories":["analytics","communication","content","data","infra","productivity","security"]},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-09-06T01:23:09.017Z","lastProbedAt":"2026-09-06T01:23:09.017Z","statusComputedAt":"2026-09-06T01:24:37.044Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":60},"latestObservations":[{"at":"2026-09-06T01:23:09.017Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":60,"error":null,"detail":{"tools":[{"name":"event_roles","description":"Which roles the signed-in user holds at one specific event.\n\nCheaper and more precise than `whoami` when you already know the event and\njust need to know whethe"},{"name":"list_api_endpoints","description":"List the raw REST endpoints behind this server.\n\nUse it together with `api_request` when you need something no curated tool\ncovers. The list is read from the li"},{"name":"list_capabilities","description":"The catalogue of everything this server can do, grouped by area.\n\nReturns each tool available to the current connection with its one-line\npurpose, the role it i"},{"name":"search","description":"Search across the platform: events, teams, projects, people and articles.\n\nOne call when you do not yet know the identifier of the thing the user means\n(\"the AI"},{"name":"server_info","description":"What this MCP server is, which version it speaks, and how to connect.\n\nUseful for diagnostics and for telling the user where to manage or revoke\nthe connection."},{"name":"whoami","description":"Who is signed in, what roles they hold, and where.\n\nCall this first in any new conversation. It returns the account, the OAuth\npermissions this connection was g"},{"name":"event_background_images","description":"The global catalogue of certificate background templates (used for the\n`background` field of an event's certificate config). Not tied to one\nevent."},{"name":"event_cities","description":"The global catalogue of cities (used for the `city` field on\n`event_create`/`event_update` and to show where events happen)."},{"name":"event_faq","description":"An event's FAQ: the question/answer pairs shown on its public page. Public\nread — use it to answer a participant's question from the event's own words\nbefore gu"},{"name":"event_get","description":"Get one event's full public profile by slug: name, dates, address, topic,\ndescription, status and city.\n\nCall this once you have a slug (from `event_list` or `s"},{"name":"event_info_blocks","description":"An event's additional free-form information blocks (extra sections shown\non its public page beyond the main description — rules, prizes, sponsors\nnotes, etc.)."},{"name":"event_list","description":"Browse hackathons on the platform — filter by status, city or date.\n\nReturns each event's slug, which every other event tool needs, plus name,\nstatus, dates and"},{"name":"event_nominations","description":"An event's award nominations/tracks (e.g. \"Best AI prototype\"), used when\ncreating teams, awarding winners and building the leaderboard per track."},{"name":"event_presets","description":"Public catalogue of event-creation presets (AI build day, student\nhackathon, corporate innovation day, ...) with sensible defaults and\nstarter nominations. Call"},{"name":"event_schedule","description":"The event's timeline: an ordered list of stages/activities (opening,\nworkshops, deadlines, closing ceremony) with title, location, time window\nand status (past/"},{"name":"event_share_links","description":"The public links for promoting an event: its shareable page, the\ncalendar file participants can add to their own calendar, the Open Graph\npreview image used whe"},{"name":"event_team_stages","description":"An event's team-facing reporting checkpoints (e.g. \"Idea locked\", \"Demo\nready\") with their time windows — distinct from `event_schedule`, which\nis the event's o"},{"name":"event_types","description":"The global catalogue of event types (used for the `type` field on\n`event_create`/`event_update`). Small and rarely changes."},{"name":"event_branding","description":"Read an event's white-label branding: brand colours, public-page theme and\ndedicated subdomain, plus the resolved values actually used for rendering\nand whether"},{"name":"event_free_agents","description":"List participants at an event who are looking for a team.\n\nVisibility follows the platform's own rule, not a full public roster:\na normal caller only sees their"},{"name":"event_my_membership","description":"Summarise the signed-in user's relationship to one event: whether they\nhave joined, their registration answers on file, whether they are listed\nas a free agent,"},{"name":"event_my_registration_answers","description":"List the signed-in user's own answers to one event's registration\nquestions. Only ever returns their own data — use\n`event_registration_responses` (organiser on"},{"name":"event_registration_form","description":"List the custom questions an event asks at registration time (its\nregistration form), in display order.\n\nPublic data — the question text is visible to anyone. U"},{"name":"invite_preview","description":"Look up what a shareable invite link opens, without redeeming it.\n\nPublic and PII-free: returns the event's name and slug and whether the\ntoken is still valid ("},{"name":"team_get","description":"Get one team's full detail: name, description, project info, readiness,\naccessibility flags, and which event and nomination it belongs to.\n\nOnly visible if the "},{"name":"team_list","description":"List teams — scoped to what the signed-in account can see: teams they\nbelong to, created, or administer via being an admin of the team's event.\nThis is never a "},{"name":"team_locations","description":"Read the physical location details linked to a team's additional-info\nprofile (street, city, state, zip), if one has been set. There is\ncurrently no self-servic"},{"name":"team_matchmaking_teams","description":"AI-ranked list of teams one free (teamless) participant could join,\nwithin the same event. Callable by the free-agent listing's own owner,\nor an admin of the ev"},{"name":"team_members","description":"List a team's current members with their role and caption. Use the row\n`id` (a membership id, not a user id) with `team_assign_role` or\n`team_remove_member`."},{"name":"team_open_roles","description":"List the positions teams are looking to fill (\"we need a designer\").\n\nVisibility is limited to what the signed-in account can already see:\ntheir own team's open"},{"name":"team_posts","description":"List a team's public updates (\"twits\") — the short build-log posts a team\npublishes as it works, in the order the server returns them. Use it to catch\nup on wha"},{"name":"team_readiness","description":"Check whether a team has marked itself ready to present, plus whether it\nis banned or currently accessible for judging."},{"name":"team_roles","description":"List the roles a team has defined (e.g. \"Frontend\", \"Designer\"), which\nmembers can be assigned via `team_assign_role`."},{"name":"team_seeking_members","description":"Browse the teams of one event that are advertising open positions — the\npublic \"who is recruiting\" list behind the find-a-team page, readable by\nanyone, includi"},{"name":"submission_get","description":"Retrieve one project submission by id: title, links, description, status,\napproval status, vote count and attached media.\n\nAnonymous and unrelated callers only "},{"name":"submission_list","description":"Browse project submissions, filterable by event, team or status.\n\nAnonymous and unrelated callers only ever see submitted (public) projects;\na signed-in caller "},{"name":"submission_list_media","description":"List the screenshots/gallery images attached to a submission. Visibility\nmirrors the parent submission: public once submitted, otherwise limited to\nthe team, ev"},{"name":"submission_page","description":"Read a project's public page: the submission itself, every judge's written\nfeedback (signed with the judge's name only where that judge consented to\nbeing named"},{"name":"event_leaderboard","description":"The ranked leaderboard for one event: submissions ordered by weighted\njudge score then vote count, with each entry's rank, team and score.\nPublic once the organ"},{"name":"showcase_browse","description":"Browse the public, cross-event showcase: shipped/submitted projects\nranked for display, with title, tagline, team name, vote count and a\ncover image. Optionally"},{"name":"company_about_us","description":"A company's longer \"about us\" blurb (up to 10,000 characters), separate\nfrom its short `description`. Returns `found: false` if the company has\nnot written one "},{"name":"company_employees","description":"A company's employee roster (position, start date). Without `company_id`,\nreturns every roster row the caller can see (their own employment rows\nplus every comp"},{"name":"company_employment_requests","description":"Pending requests to join a company. A company admin sees everyone waiting\non their door; anyone else sees only their own outstanding applications.\nThis is where"},{"name":"company_ex_employees","description":"A company's former employees (position, start and end date) — the record\ncreated when someone is fired via `company_fire_employee`. Without\n`company_id`, return"},{"name":"company_get","description":"One company page by id: name, description, organisation type, website and\nlogo. Public read. Use it after `company_list` or `search` to get the full\nrecord, and"},{"name":"company_list","description":"Browse ClusterHack company pages: name, description, org type, website and\nlogo. Public data — use this to find a company's id before calling any\nother company "},{"name":"company_roster","description":"The company page's public roster in one call: the people listed as\nemployees and the people listed as moderators, exactly as the company page\nrenders them to an"},{"name":"company_vacancies","description":"The public board of companies not yet on ClusterHack (a lightweight\noff-platform listing — name, description, website — not a job-posting\nsystem). Public, no fi"},{"name":"event_sponsor_text","description":"Sponsors of one event that are NOT themselves on ClusterHack (a name,\ndescription, website and logo entered as free text, with the sponsorship\ntier each one bel"},{"name":"event_sponsor_tiers","description":"The sponsorship tiers/groups defined for one event (e.g. \"Sponsors\",\n\"Partners\", \"General Partner\") — the buckets `event_add_sponsor` slots\ncompanies into. Publ"},{"name":"event_sponsors","description":"The on-platform companies sponsoring one event, with the sponsorship tier\neach one is slotted into (e.g. \"Sponsors\", \"Partners\", \"General Partner\").\nPublic read"},{"name":"article_get","description":"Retrieve one CMS article by id: its body, publish date, hidden flag, and\nwhich title/slug and language it belongs to."},{"name":"article_languages","description":"List the languages articles can be written in, e.g.\n{\"language_name\": \"English\", \"short_name\": \"en\"}. Use this to find the\n`language_id` `article_create` needs."},{"name":"article_list","description":"Browse CMS articles (the pages under /articles/<language>/<slug>). Filter\nby `language` (a language's short code, e.g. 'en') and/or `slug` (a\ntitle's slug) to f"},{"name":"article_titles","description":"List the CMS \"title\" records — each one a page's title text and slug,\ne.g. {\"title\": \"How to organize a hackathon\", \"slug\": \"how-to-organize\"}.\nAn article alway"},{"name":"legal_info","description":"The service's legal identity, as the terms-of-service, privacy and support\npages render it: the service and operating entity, whether that entity is\nregistered "},{"name":"tag_list","description":"List tags used to categorize content across the platform (articles,\nprojects and more share the same tag vocabulary)."},{"name":"tech_list","description":"List technologies (tech-stack tags) that projects and teams can be\nlabelled with, e.g. \"React\", \"PostgreSQL\"."},{"name":"account_ai_access","description":"How the signed-in user sees and revokes AI access to their own account —\nread this instead of looking for a tool that lists or cuts off connected\nclients, becau"},{"name":"account_how_to_sign_in","description":"Explains how to connect an account to this MCP server — read this instead\nof guessing at a login/registration tool, because there isn't one.\n\nClusterHack's own "}],"toolCount":60,"serverName":"clusterhack","capabilities":["tools","resources","prompts","logging","completions"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"event_roles","description":"Which roles the signed-in user holds at one specific event.\n\nCheaper and more precise than `whoami` when you already know the event and\njust need to know whethe"},{"name":"list_api_endpoints","description":"List the raw REST endpoints behind this server.\n\nUse it together with `api_request` when you need something no curated tool\ncovers. The list is read from the li"},{"name":"list_capabilities","description":"The catalogue of everything this server can do, grouped by area.\n\nReturns each tool available to the current connection with its one-line\npurpose, the role it i"},{"name":"search","description":"Search across the platform: events, teams, projects, people and articles.\n\nOne call when you do not yet know the identifier of the thing the user means\n(\"the AI"},{"name":"server_info","description":"What this MCP server is, which version it speaks, and how to connect.\n\nUseful for diagnostics and for telling the user where to manage or revoke\nthe connection."},{"name":"whoami","description":"Who is signed in, what roles they hold, and where.\n\nCall this first in any new conversation. It returns the account, the OAuth\npermissions this connection was g"},{"name":"event_background_images","description":"The global catalogue of certificate background templates (used for the\n`background` field of an event's certificate config). Not tied to one\nevent."},{"name":"event_cities","description":"The global catalogue of cities (used for the `city` field on\n`event_create`/`event_update` and to show where events happen)."},{"name":"event_faq","description":"An event's FAQ: the question/answer pairs shown on its public page. Public\nread — use it to answer a participant's question from the event's own words\nbefore gu"},{"name":"event_get","description":"Get one event's full public profile by slug: name, dates, address, topic,\ndescription, status and city.\n\nCall this once you have a slug (from `event_list` or `s"},{"name":"event_info_blocks","description":"An event's additional free-form information blocks (extra sections shown\non its public page beyond the main description — rules, prizes, sponsors\nnotes, etc.)."},{"name":"event_list","description":"Browse hackathons on the platform — filter by status, city or date.\n\nReturns each event's slug, which every other event tool needs, plus name,\nstatus, dates and"},{"name":"event_nominations","description":"An event's award nominations/tracks (e.g. \"Best AI prototype\"), used when\ncreating teams, awarding winners and building the leaderboard per track."},{"name":"event_presets","description":"Public catalogue of event-creation presets (AI build day, student\nhackathon, corporate innovation day, ...) with sensible defaults and\nstarter nominations. Call"},{"name":"event_schedule","description":"The event's timeline: an ordered list of stages/activities (opening,\nworkshops, deadlines, closing ceremony) with title, location, time window\nand status (past/"},{"name":"event_share_links","description":"The public links for promoting an event: its shareable page, the\ncalendar file participants can add to their own calendar, the Open Graph\npreview image used whe"},{"name":"event_team_stages","description":"An event's team-facing reporting checkpoints (e.g. \"Idea locked\", \"Demo\nready\") with their time windows — distinct from `event_schedule`, which\nis the event's o"},{"name":"event_types","description":"The global catalogue of event types (used for the `type` field on\n`event_create`/`event_update`). Small and rarely changes."},{"name":"event_branding","description":"Read an event's white-label branding: brand colours, public-page theme and\ndedicated subdomain, plus the resolved values actually used for rendering\nand whether"},{"name":"event_free_agents","description":"List participants at an event who are looking for a team.\n\nVisibility follows the platform's own rule, not a full public roster:\na normal caller only sees their"},{"name":"event_my_membership","description":"Summarise the signed-in user's relationship to one event: whether they\nhave joined, their registration answers on file, whether they are listed\nas a free agent,"},{"name":"event_my_registration_answers","description":"List the signed-in user's own answers to one event's registration\nquestions. Only ever returns their own data — use\n`event_registration_responses` (organiser on"},{"name":"event_registration_form","description":"List the custom questions an event asks at registration time (its\nregistration form), in display order.\n\nPublic data — the question text is visible to anyone. U"},{"name":"invite_preview","description":"Look up what a shareable invite link opens, without redeeming it.\n\nPublic and PII-free: returns the event's name and slug and whether the\ntoken is still valid ("},{"name":"team_get","description":"Get one team's full detail: name, description, project info, readiness,\naccessibility flags, and which event and nomination it belongs to.\n\nOnly visible if the "},{"name":"team_list","description":"List teams — scoped to what the signed-in account can see: teams they\nbelong to, created, or administer via being an admin of the team's event.\nThis is never a "},{"name":"team_locations","description":"Read the physical location details linked to a team's additional-info\nprofile (street, city, state, zip), if one has been set. There is\ncurrently no self-servic"},{"name":"team_matchmaking_teams","description":"AI-ranked list of teams one free (teamless) participant could join,\nwithin the same event. Callable by the free-agent listing's own owner,\nor an admin of the ev"},{"name":"team_members","description":"List a team's current members with their role and caption. Use the row\n`id` (a membership id, not a user id) with `team_assign_role` or\n`team_remove_member`."},{"name":"team_open_roles","description":"List the positions teams are looking to fill (\"we need a designer\").\n\nVisibility is limited to what the signed-in account can already see:\ntheir own team's open"},{"name":"team_posts","description":"List a team's public updates (\"twits\") — the short build-log posts a team\npublishes as it works, in the order the server returns them. Use it to catch\nup on wha"},{"name":"team_readiness","description":"Check whether a team has marked itself ready to present, plus whether it\nis banned or currently accessible for judging."},{"name":"team_roles","description":"List the roles a team has defined (e.g. \"Frontend\", \"Designer\"), which\nmembers can be assigned via `team_assign_role`."},{"name":"team_seeking_members","description":"Browse the teams of one event that are advertising open positions — the\npublic \"who is recruiting\" list behind the find-a-team page, readable by\nanyone, includi"},{"name":"submission_get","description":"Retrieve one project submission by id: title, links, description, status,\napproval status, vote count and attached media.\n\nAnonymous and unrelated callers only "},{"name":"submission_list","description":"Browse project submissions, filterable by event, team or status.\n\nAnonymous and unrelated callers only ever see submitted (public) projects;\na signed-in caller "},{"name":"submission_list_media","description":"List the screenshots/gallery images attached to a submission. Visibility\nmirrors the parent submission: public once submitted, otherwise limited to\nthe team, ev"},{"name":"submission_page","description":"Read a project's public page: the submission itself, every judge's written\nfeedback (signed with the judge's name only where that judge consented to\nbeing named"},{"name":"event_leaderboard","description":"The ranked leaderboard for one event: submissions ordered by weighted\njudge score then vote count, with each entry's rank, team and score.\nPublic once the organ"},{"name":"showcase_browse","description":"Browse the public, cross-event showcase: shipped/submitted projects\nranked for display, with title, tagline, team name, vote count and a\ncover image. Optionally"},{"name":"company_about_us","description":"A company's longer \"about us\" blurb (up to 10,000 characters), separate\nfrom its short `description`. Returns `found: false` if the company has\nnot written one "},{"name":"company_employees","description":"A company's employee roster (position, start date). Without `company_id`,\nreturns every roster row the caller can see (their own employment rows\nplus every comp"},{"name":"company_employment_requests","description":"Pending requests to join a company. A company admin sees everyone waiting\non their door; anyone else sees only their own outstanding applications.\nThis is where"},{"name":"company_ex_employees","description":"A company's former employees (position, start and end date) — the record\ncreated when someone is fired via `company_fire_employee`. Without\n`company_id`, return"},{"name":"company_get","description":"One company page by id: name, description, organisation type, website and\nlogo. Public read. Use it after `company_list` or `search` to get the full\nrecord, and"},{"name":"company_list","description":"Browse ClusterHack company pages: name, description, org type, website and\nlogo. Public data — use this to find a company's id before calling any\nother company "},{"name":"company_roster","description":"The company page's public roster in one call: the people listed as\nemployees and the people listed as moderators, exactly as the company page\nrenders them to an"},{"name":"company_vacancies","description":"The public board of companies not yet on ClusterHack (a lightweight\noff-platform listing — name, description, website — not a job-posting\nsystem). Public, no fi"},{"name":"event_sponsor_text","description":"Sponsors of one event that are NOT themselves on ClusterHack (a name,\ndescription, website and logo entered as free text, with the sponsorship\ntier each one bel"},{"name":"event_sponsor_tiers","description":"The sponsorship tiers/groups defined for one event (e.g. \"Sponsors\",\n\"Partners\", \"General Partner\") — the buckets `event_add_sponsor` slots\ncompanies into. Publ"},{"name":"event_sponsors","description":"The on-platform companies sponsoring one event, with the sponsorship tier\neach one is slotted into (e.g. \"Sponsors\", \"Partners\", \"General Partner\").\nPublic read"},{"name":"article_get","description":"Retrieve one CMS article by id: its body, publish date, hidden flag, and\nwhich title/slug and language it belongs to."},{"name":"article_languages","description":"List the languages articles can be written in, e.g.\n{\"language_name\": \"English\", \"short_name\": \"en\"}. Use this to find the\n`language_id` `article_create` needs."},{"name":"article_list","description":"Browse CMS articles (the pages under /articles/<language>/<slug>). Filter\nby `language` (a language's short code, e.g. 'en') and/or `slug` (a\ntitle's slug) to f"},{"name":"article_titles","description":"List the CMS \"title\" records — each one a page's title text and slug,\ne.g. {\"title\": \"How to organize a hackathon\", \"slug\": \"how-to-organize\"}.\nAn article alway"},{"name":"legal_info","description":"The service's legal identity, as the terms-of-service, privacy and support\npages render it: the service and operating entity, whether that entity is\nregistered "},{"name":"tag_list","description":"List tags used to categorize content across the platform (articles,\nprojects and more share the same tag vocabulary)."},{"name":"tech_list","description":"List technologies (tech-stack tags) that projects and teams can be\nlabelled with, e.g. \"React\", \"PostgreSQL\"."},{"name":"account_ai_access","description":"How the signed-in user sees and revokes AI access to their own account —\nread this instead of looking for a tool that lists or cuts off connected\nclients, becau"},{"name":"account_how_to_sign_in","description":"Explains how to connect an account to this MCP server — read this instead\nof guessing at a login/registration tool, because there isn't one.\n\nClusterHack's own "}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.clusterhack/clusterhack","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.clusterhack%2Fclusterhack","firstSeenAt":"2026-09-05T22:18:29.484Z","fetchedAt":"2026-09-05T22:18:29.484Z","normalizedAt":"2026-09-05T22:18:29.484Z"}]},"firstSeenAt":"2026-09-05T22:18:29.484Z","updatedAt":"2026-09-06T01:24:43.285Z"}