ClusterHack

dev.clusterhack由 clusterhack.dev 發布官方發布者v1.0.0更新於 Oct 24, 2026

Run hackathons end to end: events, teams, submissions, judging and winners.

已驗證Streamable HTTP可網頁執行效率與工作流溝通與協作商業與電商

概覽

AI 產生的概覽

讓助理在 ClusterHack 平台上瀏覽與管理黑客松活動、團隊、作品提交、評審與排行榜。

可以做什麼
提供 60 個工具,涵蓋黑客松完整流程:搜尋活動、團隊、專案與人員;讀取活動資料、日程、常見問題、報名表與品牌設定;查看團隊、成員、開放職缺與自由參與者;以及讀取作品提交、媒體、評審回饋、排行榜與公開展示頁。另含 whoami、list_capabilities、list_api_endpoints 與 server_info 等用於探索與診斷的輔助工具。
適用情境
適合使用者使用 ClusterHack 黑客松的情境:尋找活動或團隊、查看日程與報名問題、掌握團隊動態,或查詢作品提交、評審回饋與結果。不確定有哪些功能時可先用輔助工具查詢。
執行需求
遠端 streamable HTTP 端點,位於 clusterhack.dev;未宣告任何套件、環境變數或請求標頭。透過 OAuth 登入,許多工具只回傳目前登入帳號有權檢視的內容。
安裝前請注意
連線會取得 OAuth 權限,依角色限定的工具會揭露帳號、活動與團隊資料,部分工具僅限主辦方或評審使用。多個工具會寫入或變更資料(例如建立活動、提交報名答案、指派團隊角色與發布團隊動態),操作前應先確認。團隊媒合工具有呼叫頻率限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ClusterHack,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/dev.clusterhack%2Fclusterhack/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "clusterhack": {
      "type": "http",
      "url": "https://clusterhack.dev/mcp/"
    }
  }
}

工具

60

event_roles

My roles at an event

Which roles the signed-in user holds at one specific event. Cheaper and more precise than `whoami` when you already know the event and just need to know whether the user can organise, judge or only take part.

輸入參數event_slug必填

list_api_endpoints

List API endpoints

List the raw REST endpoints behind this server. Use it together with `api_request` when you need something no curated tool covers. The list is read from the live URL configuration, so it always matches what the server actually serves.

輸入參數limitquery

list_capabilities

List capabilities

The catalogue of everything this server can do, grouped by area. Returns each tool available to the current connection with its one-line purpose, the role it is meant for and the permission it consumes. Use it when you are not sure a capability exists — it is cheaper than guessing tool names, and it shows what the user would gain by granting more permissions.

輸入參數categoryinclude_unavailable

server_info

Server info

What this MCP server is, which version it speaks, and how to connect. Useful for diagnostics and for telling the user where to manage or revoke the connection.

無需輸入參數。

whoami

Who am I

Who is signed in, what roles they hold, and where. Call this first in any new conversation. It returns the account, the OAuth permissions this connection was granted, and — crucially — the list of events, teams and companies the user belongs to *with the role they hold in each one* (organizer, judge, participant, team lead, free agent, builder, speaker, company admin, platform admin). Use it to decide which tools apply before calling anything else, and to resolve "my event" / "our team" into a concrete slug or id.

無需輸入參數。

event_background_images

List certificate backgrounds

The global catalogue of certificate background templates (used for the `background` field of an event's certificate config). Not tied to one event.

輸入參數pagepage_size

event_cities

List cities

The global catalogue of cities (used for the `city` field on `event_create`/`event_update` and to show where events happen).

輸入參數pagepage_size

event_faq

Get event FAQ

An event's FAQ: the question/answer pairs shown on its public page. Public read — use it to answer a participant's question from the event's own words before guessing, and to check what is already covered before adding more.

輸入參數pagepage_sizeevent_slug必填

event_get

Get an event

Get one event's full public profile by slug: name, dates, address, topic, description, status and city. Call this once you have a slug (from `event_list` or `search`) and need the details. It does not include the schedule, FAQ or nominations — use `event_schedule`, `event_faq` and `event_nominations` for those.

輸入參數event_slug必填

event_info_blocks

Get event info blocks

An event's additional free-form information blocks (extra sections shown on its public page beyond the main description — rules, prizes, sponsors notes, etc.).

輸入參數pagepage_sizeevent_slug必填

event_list

Browse events

Browse hackathons on the platform — filter by status, city or date. Returns each event's slug, which every other event tool needs, plus name, status, dates and city. Use this when the user names an event you do not have a slug for and `search` is not precise enough, or to show a list of upcoming/past events. Hidden events only appear here for their own organisers.

輸入參數pagestatuspage_size

event_nominations

Get event nominations

An event's award nominations/tracks (e.g. "Best AI prototype"), used when creating teams, awarding winners and building the leaderboard per track.

輸入參數pagepage_sizeevent_slug必填

event_presets

Event creation presets

Public catalogue of event-creation presets (AI build day, student hackathon, corporate innovation day, ...) with sensible defaults and starter nominations. Call before `event_create` when the user describes a kind of hackathon rather than exact field values.

無需輸入參數。

event_schedule

Get event schedule

The event's timeline: an ordered list of stages/activities (opening, workshops, deadlines, closing ceremony) with title, location, time window and status (past/now/future). This is what participants see as "the schedule". Broadcast link and chat link are only included for the event's admins and registered participants — everyone else sees them blanked.

輸入參數pagepage_sizeevent_slug必填

event_team_stages

Get team-progress stages

An event's team-facing reporting checkpoints (e.g. "Idea locked", "Demo ready") with their time windows — distinct from `event_schedule`, which is the event's own agenda. Used to track team progress through the event.

輸入參數pagepage_sizeevent_slug必填

event_types

List event types

The global catalogue of event types (used for the `type` field on `event_create`/`event_update`). Small and rarely changes.

輸入參數pagepage_size

event_branding

Get event branding

Read an event's white-label branding: brand colours, public-page theme and dedicated subdomain, plus the resolved values actually used for rendering and `branding_enabled` — whether the evening currently wears its costume, i.e. whether those values are applied. Public, because the colours are visible on the event page anyway. Use it before `event_set_branding` to see what is already set.

輸入參數event_slug必填

event_free_agents

List free agents at an event

List participants at an event who are looking for a team. Visibility follows the platform's own rule, not a full public roster: a normal caller only sees their own free-agent listing here, while an organiser of the event sees everyone's. Use `team_matchmaking_teams` on a listing's id for AI-ranked team suggestions for that person.

輸入參數pagepage_sizeevent_slug必填

event_my_membership

My status at an event

Summarise the signed-in user's relationship to one event: whether they have joined, their registration answers on file, whether they are listed as a free agent, and which roles they hold there (organizer, judge, team lead, ...). Cheaper than combining several other tools when you just need "is this user in, and how" for one event.

輸入參數event_slug必填

event_my_registration_answers

Get my registration answers

List the signed-in user's own answers to one event's registration questions. Only ever returns their own data — use `event_registration_responses` (organiser only) to read other people's.

輸入參數pagepage_sizeevent_slug必填

event_registration_form

Get an event's registration form

List the custom questions an event asks at registration time (its registration form), in display order. Public data — the question text is visible to anyone. Use this before `event_submit_registration_answers` to know which `form_field_id`s exist and which are required.

輸入參數pagepage_sizeevent_slug必填

invite_preview

Preview an invite link

Look up what a shareable invite link opens, without redeeming it. Public and PII-free: returns the event's name and slug and whether the token is still valid (active, not expired, uses remaining). Use this before `invite_join` to show the user what they are about to join, or to explain why a link stopped working.

輸入參數token必填

team_get

Get a team

Get one team's full detail: name, description, project info, readiness, accessibility flags, and which event and nomination it belongs to. Only visible if the signed-in user belongs to the team, created it, or administers its event.

輸入參數team_id必填

team_list

List teams

List teams — scoped to what the signed-in account can see: teams they belong to, created, or administer via being an admin of the team's event. This is never a full public directory of every team on the platform. Filter by `event_slug` to see just one event's teams, or `search` to match team/project name and description. Use `team_get` for the full detail of one team once you have its id.

輸入參數pagesearchpage_sizeevent_slug

team_locations

Get a team's location

Read the physical location details linked to a team's additional-info profile (street, city, state, zip), if one has been set. There is currently no self-service way to create a new location through this API — location rows are set up separately, then referenced by id via `team_additional_info`'s `location_id`.

輸入參數team_id必填

team_matchmaking_teams

Suggest teams for a free agent

AI-ranked list of teams one free (teamless) participant could join, within the same event. Callable by the free-agent listing's own owner, or an admin of the event. Use `event_free_agents` or `event_join_as_free_agent` to get a `free_member_id`. Throttled — do not call it in a tight loop.

輸入參數localefree_member_id必填

team_members

List team members

List a team's current members with their role and caption. Use the row `id` (a membership id, not a user id) with `team_assign_role` or `team_remove_member`.

輸入參數pageteam_id必填page_size

team_open_roles

List open team roles

List the positions teams are looking to fill ("we need a designer"). Visibility is limited to what the signed-in account can already see: their own team's open roles, or — if they organise the event — every team's. It is not a public cross-team browse for a stranger looking for any team: that is `team_seeking_members`, which reads the find-a-team page's own list (pair it with `event_free_agents` and `team_matchmaking_teams`). Filter with `team_id` for one team, or `event_slug` to see everything the caller can see at that event. `team_id` is answered exactly. `event_slug` (and the unfiltered form) is not: the underlying endpoint narrows by one team at a time and has no event filter, so a very large event can return a `note` saying rows were left unscanned. Ask per team when that matters.

輸入參數pageteam_idpage_sizeevent_slug

team_posts

List a team's posts

List a team's public updates ("twits") — the short build-log posts a team publishes as it works, in the order the server returns them. Use it to catch up on what a team has been doing, or to check what has already been posted before writing another update with `team_post`.

輸入參數pageteam_id必填page_size

team_readiness

Get a team's readiness

Check whether a team has marked itself ready to present, plus whether it is banned or currently accessible for judging.

輸入參數team_id必填

team_roles

List a team's roles

List the roles a team has defined (e.g. "Frontend", "Designer"), which members can be assigned via `team_assign_role`.

輸入參數pageteam_id必填page_size

team_seeking_members

Browse teams looking for people

Browse the teams of one event that are advertising open positions — the public "who is recruiting" list behind the find-a-team page, readable by anyone, including someone who has not joined the event yet. This is the tool for a person looking for a team. `team_open_roles` is the other direction: it lists open positions the caller already has access to (their own teams', or every team's if they organise the event) and shows a stranger nothing. Each row here carries the team's public profile plus its `open_roles`. Follow up with `team_request_join`, or list yourself with `event_join_as_free_agent` if nothing fits.

輸入參數pagesearchpage_sizeevent_slug必填

submission_get

Get a submission

Retrieve one project submission by id: title, links, description, status, approval status, vote count and attached media. Anonymous and unrelated callers only see it once the team has submitted (status "submitted"); drafts are visible only to the team, the event's admins and its judges. Use `submission_list` or `submission_get_mine` when you do not already know the numeric id.

輸入參數submission_id必填

submission_list

List submissions

Browse project submissions, filterable by event, team or status. Anonymous and unrelated callers only ever see submitted (public) projects; a signed-in caller additionally sees their own team's drafts and every submission at events they administer or judge. ``status`` narrows the returned page client-side (draft / submitted / disqualified) since the underlying list endpoint does not filter by status itself — combine with a larger `page_size` if you need it applied beyond one page.

輸入參數pagestatusteam_idpage_sizeevent_slug

submission_list_media

List submission media

List the screenshots/gallery images attached to a submission. Visibility mirrors the parent submission: public once submitted, otherwise limited to the team, event admins and judges.

輸入參數pagepage_sizesubmission_id必填

submission_page

Read a project's page and its judge feedback

Read a project's public page: the submission itself, every judge's written feedback (signed with the judge's name only where that judge consented to being named, empty otherwise), and — once the organiser has published the winners — its placement, rank and judge score. This is the tool for "what did the judges say about our project?". `submission_get` returns the project's own fields and nothing about how it was received; `judging_scores_for_submission` is scoped to judges and event admins, so a team cannot read its own verdict through it. A submitted project's page is public; a draft is visible only to its team and the event's admins. Before the ceremony the placement is shown to the team and the hosts alone, flagged `placement_private` so a client says "not announced yet" instead of leaking it. `private_note` is the organisers' line and is absent — not blanked, absent — from everyone else's payload.

輸入參數submission_id必填

event_leaderboard

Get an event's leaderboard

The ranked leaderboard for one event: submissions ordered by weighted judge score then vote count, with each entry's rank, team and score. Public once the organiser publishes winners; before that, only the event's admins and judges can preview it (everyone else gets a clear "not published yet" error).

輸入參數event_slug必填

showcase_browse

Browse the showcase

Browse the public, cross-event showcase: shipped/submitted projects ranked for display, with title, tagline, team name, vote count and a cover image. Optionally narrow to one event. This is the public gallery — use `event_leaderboard` instead when you specifically need judged rankings for one event.

輸入參數pagepage_sizeevent_slug

company_about_us

Get a company's about-us page

A company's longer "about us" blurb (up to 10,000 characters), separate from its short `description`. Returns `found: false` if the company has not written one yet.

輸入參數company_id必填

company_employees

List company employees

A company's employee roster (position, start date). Without `company_id`, returns every roster row the caller can see (their own employment rows plus every company they administer) — the underlying API is already scoped that way. With `company_id`, narrows to that company only.

輸入參數pagepage_sizecompany_id

company_employment_requests

List employment requests

Pending requests to join a company. A company admin sees everyone waiting on their door; anyone else sees only their own outstanding applications. This is where the `request_id` for `company_decide_employment_request` comes from.

輸入參數pagepage_sizecompany_id

company_ex_employees

List a company's former employees

A company's former employees (position, start and end date) — the record created when someone is fired via `company_fire_employee`. Without `company_id`, returns every ex-employment row the caller can see (their own, plus every company they administer).

輸入參數pagepage_sizecompany_id

company_get

Get a company

One company page by id: name, description, organisation type, website and logo. Public read. Use it after `company_list` or `search` to get the full record, and to confirm you have the right company before employment or sponsorship actions, which are irreversible for the people involved.

輸入參數company_id必填

company_list

List companies

Browse ClusterHack company pages: name, description, org type, website and logo. Public data — use this to find a company's id before calling any other company tool.

輸入參數pagepage_size

company_roster

A company's public roster

The company page's public roster in one call: the people listed as employees and the people listed as moderators, exactly as the company page renders them to any visitor. Use this — not `company_employees` / `company_admins` — whenever you want to read *someone else's* roster. Those two are scoped to self-or-admin, so an outsider gets an empty list from them and cannot tell "nobody works here" apart from "you may not see who does". This endpoint is the part of the page that is already public, and nothing more: no join requests, no ex-employees, no write verbs.

輸入參數company_id必填

company_vacancies

List off-platform companies

The public board of companies not yet on ClusterHack (a lightweight off-platform listing — name, description, website — not a job-posting system). Public, no filters.

輸入參數pagepage_size

event_sponsor_text

List an event's off-platform sponsors

Sponsors of one event that are NOT themselves on ClusterHack (a name, description, website and logo entered as free text, with the sponsorship tier each one belongs to) — the off-platform counterpart to `event_sponsors`. Public read.

輸入參數event_slug必填

event_sponsor_tiers

List an event's sponsor tiers

The sponsorship tiers/groups defined for one event (e.g. "Sponsors", "Partners", "General Partner") — the buckets `event_add_sponsor` slots companies into. Public read.

輸入參數event_slug必填

event_sponsors

List an event's sponsors

The on-platform companies sponsoring one event, with the sponsorship tier each one is slotted into (e.g. "Sponsors", "Partners", "General Partner"). Public read. Use `event_sponsor_text` alongside this for sponsors that are not themselves on ClusterHack yet.

輸入參數event_slug必填

article_get

Get an article

Retrieve one CMS article by id: its body, publish date, hidden flag, and which title/slug and language it belongs to.

輸入參數article_id必填

article_languages

List article languages

List the languages articles can be written in, e.g. {"language_name": "English", "short_name": "en"}. Use this to find the `language_id` `article_create` needs.

輸入參數pagepage_size

article_list

List articles

Browse CMS articles (the pages under /articles/<language>/<slug>). Filter by `language` (a language's short code, e.g. 'en') and/or `slug` (a title's slug) to find one specific page's translations. Hidden drafts are only included for staff callers; everyone else sees only published articles.

輸入參數pagesluglanguagepage_size

article_titles

List article titles

List the CMS "title" records — each one a page's title text and slug, e.g. {"title": "How to organize a hackathon", "slug": "how-to-organize"}. An article always points at one of these; use this to find the `title_id` `article_create` needs, or to see what pages exist at all.

輸入參數pagepage_size

tag_list

List tags

List tags used to categorize content across the platform (articles, projects and more share the same tag vocabulary).

輸入參數pagepage_size

tech_list

List technologies

List technologies (tech-stack tags) that projects and teams can be labelled with, e.g. "React", "PostgreSQL".

輸入參數pagepage_size

account_ai_access

Managing AI access to this account

How the signed-in user sees and revokes AI access to their own account — read this instead of looking for a tool that lists or cuts off connected clients, because there is deliberately no such tool. The controls over AI access (list connected clients, revoke one, list and end live MCP sessions, read the record of what a client did as them) are gated to the account holder signing in directly: a browser session, a JWT, or an API token they hold themselves. A connected AI client — including this one — is refused, on purpose. If it were not, a client could revoke its rivals, enumerate the user's other connections, or read the trail it leaves behind. So this tool tells the user where to go and what they will find; it makes no API call and cannot fail. Also names where account deletion and data export live: the export has a tool (`account_export_data`), the deletion deliberately does not.

無需輸入參數。

account_how_to_sign_in

How to sign in

Explains how to connect an account to this MCP server — read this instead of guessing at a login/registration tool, because there isn't one. ClusterHack's own credential endpoints (register, login, JWT issuance, password reset) are the website's login form, not MCP tools: an MCP client authenticates by OAuth 2.1 (the same flow a human approves in a browser tab) and must never see or handle a ClusterHack password directly. This tool works with no account at all, and just explains the steps and links.

無需輸入參數。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。