hacklist-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP mode port. | 3000 |
| HACKLIST_BASE_URL | No | Override for testing or a mirror. | https://hacklist.io |
| HACKLIST_FEED_URL | No | Feed path or full URL. | /api/opportunities |
| HACKLIST_CACHE_DIR | No | Disk cache directory for detail pages, so restarts are instant. | ~/.cache/hacklist-mcp |
| HACKLIST_MCP_TOKEN | No | Require a bearer token in HTTP mode. Leave unset for a public, no-auth connector. | |
| HACKLIST_LIST_TTL_MS | No | How long a HackList snapshot stays fresh, in milliseconds (default 20 minutes). | 1200000 |
| HACKLIST_MAX_DETAIL_FETCHES | No | Cap on detail pages fetched per refresh. | 260 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_opportunitiesA | Search and filter HackList's AI & Web3 hackathons, grants, bounties and programs. Filters by keyword, type, category, format, prize, how soon it closes and how recently it was posted or updated. Duplicate listings of the same event are collapsed by default. Use get_opportunity for the full brief and eligibility details of a result. |
| get_opportunityA | Full details for one HackList listing: brief, prize (with USD estimate and cash vs credits), deadline and days left, when it was posted/updated on HackList, apply link, eligibility traps (students only, region-locked, in-person, approval needed) and duplicate listings. Accepts a HackList URL, an id, or a title. |
| best_opportunitiesA | Ranks open HackList opportunities for a specific builder and explains each pick. Favours specific briefs (a named API, dataset, metric or protocol) over generic 'build anything with AI' events, weighs prize size and whether it is real cash, deadline runway and accessibility, collapses duplicate listings, and drops events the builder can't enter (students only, region-locked, in-person, partners only). Returns why each one ranks and what to watch out for. |
| whats_newA | Listings posted or updated on HackList in the last N days, newest first. Useful for 'what got added this week'. Uses HackList's own posted date when the site exposes it, otherwise its sitemap last-modified time. |
| closing_soonB | Open listings whose deadline is within N days, soonest first, with the prize and whether it's worth a sprint. |
| hacklist_overviewA | A snapshot of HackList right now: how many open listings by type and category, total listed prize money, the biggest prizes, duplicate listings found, and how fresh/complete this server's data is. Pass refresh=true to re-fetch. |
| searchA | Search open HackList hackathons, grants and programs by keyword. Returns ids to pass to fetch. (Compatibility tool for ChatGPT connectors and deep research.) |
| fetchA | Fetch the full HackList listing for an id returned by search. (Compatibility tool for ChatGPT connectors and deep research.) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
There is notable functional overlap: search and search_opportunities both do keyword search over listings (one returning ids, the other filtered results), and fetch and get_opportunity both retrieve full details for a single listing. Descriptions partially disambiguate by labeling search/fetch as 'compatibility tools' and by giving search_opportunities richer filtering, but an agent could easily pick the wrong one. Other tools (whats_new, closing_soon, best_opportunities) are more clearly distinct.
The names mix several conventions: verb_noun (search_opportunities, get_opportunity), adjective_noun (best_opportunities, closing_soon), bare verbs (fetch, search), and noun/snapshot forms (whats_new, hacklist_overview). Each name is readable, but there is no single predictable pattern to rely on when guessing a tool name.
Eight tools is a well-scoped size for a read-only listing aggregator covering discovery, detail, ranking, and stats. The only mild redundancy is the pair of compatibility tools (search/fetch) that duplicate search_opportunities/get_opportunity, but the count is still reasonable.
The surface covers the key read workflows: keyword/filter search, recent listings, deadline-driven listing, full detail retrieval, personalized ranking, and a data-freshness overview. As a read-only catalog it is largely complete, with the only real gap being that duplicate-listing and freshness concerns are surfaced only indirectly rather than via dedicated tools.