Koskamo

HackList MCP

This MCP server provides read-only access to HackList, a directory of AI and Web3 hackathons, grants, bounties, and programs. It allows agents to search for opportunities, rank them based on user skills and constraints, retrieve detailed listing information, and view recent updates or closing soon events.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

HackList MCP logo, by mrfomoweb3Community listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by mrfomoweb3
MCP endpoint (Streamable HTTP)
https://hacklist-mcp.samuelsuccess234.workers.dev/mcp
Vendor documentation

What you can do with it

  • Rank open opportunities for a builder based on skills and interests
  • Search opportunities with filters for type, prize, and deadline
  • Get full details for a specific listing by URL or ID
  • View listings posted or updated in the last N days

Source and maintenance

Community listingRegistry 0.2.0
Maintenance checked

Protocol and capabilities

Server
hacklist 0.2.0
MCP protocol
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Live data from HackList (hacklist.io), a directory of AI and Web3 hackathons, grants, bounties and programs. For 'what hackathons are there / what do you have / show me what's open' questions call search_opportunities with sort='deadline' (add kind or category if the user named one), list the results, then offer to rank them for the user's skills with best_opportunities. For 'what should I enter' questions call best_opportunities with the user's skills and constraints. For a specific event call get_opportunity. Prize USD values are estimates; quote the original prize text too. posted_on_hacklist is the real creation date from HackList's feed; if only last_updated_on_hacklist is present, say that instead. Listings with no fixed deadline are rolling.

Tools

8 advertised

search_opportunities — Search HackList
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_opportunities input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "kind": {
      "enum": [
        "hackathon",
        "program",
        "grant",
        "bounty",
        "job",
        "any"
      ],
      "type": "string",
      "default": "any"
    },
    "sort": {
      "enum": [
        "relevance",
        "deadline",
        "prize",
        "newest"
      ],
      "type": "string",
      "default": "relevance"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Keywords, e.g. 'zk privacy', 'trading bot', 'Solana', 'computer vision'."
    },
    "format": {
      "enum": [
        "online",
        "in-person",
        "hybrid",
        "any"
      ],
      "type": "string",
      "default": "any"
    },
    "category": {
      "enum": [
        "ai",
        "web3",
        "any"
      ],
      "type": "string",
      "default": "any"
    },
    "cash_only": {
      "type": "boolean",
      "default": false,
      "description": "Exclude rewards that are mostly credits or in-kind."
    },
    "free_only": {
      "type": "boolean",
      "default": false
    },
    "min_prize_usd": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum headline prize in USD (approximate conversion for other currencies)."
    },
    "include_closed": {
      "type": "boolean",
      "default": false,
      "description": "Also search past listings from HackList's archive (slower the first time)."
    },
    "closes_within_days": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0
    },
    "collapse_duplicates": {
      "type": "boolean",
      "default": true
    },
    "updated_within_days": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Only listings posted or updated on HackList in the last N days."
    }
  }
}
search_opportunities annotations
{
  "title": "Search HackList",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_opportunity — Get HackList listing
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_opportunity input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "ref"
  ],
  "properties": {
    "ref": {
      "type": "string",
      "minLength": 2,
      "description": "HackList URL, listing id, or title (e.g. 'Qloo Agentic Hackathon')."
    }
  }
}
get_opportunity annotations
{
  "title": "Get HackList listing",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
best_opportunities — Rank the best non-generic opportunities
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

best_opportunities input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "kind": {
      "enum": [
        "hackathon",
        "program",
        "grant",
        "bounty",
        "job",
        "any"
      ],
      "type": "string",
      "default": "hackathon"
    },
    "limit": {
      "type": "integer",
      "default": 8,
      "maximum": 25,
      "minimum": 1
    },
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "e.g. ['solidity', 'python', 'langgraph', 'zk']"
    },
    "country": {
      "type": "string",
      "description": "Where the builder is based, for region-locked events."
    },
    "cash_only": {
      "type": "boolean",
      "default": false
    },
    "interests": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "e.g. ['agents', 'defi', 'fintech', 'africa']"
    },
    "can_travel": {
      "type": "boolean",
      "description": "false = drop in-person-only events."
    },
    "is_student": {
      "type": "boolean"
    },
    "max_days_left": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1
    },
    "min_days_left": {
      "type": "integer",
      "default": 2,
      "maximum": 9007199254740991,
      "minimum": 0
    },
    "include_generic": {
      "type": "boolean",
      "default": false,
      "description": "Set true to stop down-ranking generic briefs."
    }
  }
}
best_opportunities annotations
{
  "title": "Rank the best opportunities",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
whats_new — New on HackList
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

whats_new input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "integer",
      "default": 7,
      "maximum": 90,
      "minimum": 1
    },
    "limit": {
      "type": "integer",
      "default": 15,
      "maximum": 50,
      "minimum": 1
    },
    "open_only": {
      "type": "boolean",
      "default": true
    }
  }
}
whats_new annotations
{
  "title": "New on HackList",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
closing_soon — Closing soon on HackList
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Open listings whose deadline is within N days, soonest first, with the prize and whether it's worth a sprint.

closing_soon input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "integer",
      "default": 7,
      "maximum": 60,
      "minimum": 0
    },
    "limit": {
      "type": "integer",
      "default": 15,
      "maximum": 50,
      "minimum": 1
    },
    "min_prize_usd": {
      "type": "number",
      "minimum": 0
    }
  }
}
closing_soon annotations
{
  "title": "Closing soon",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
hacklist_overview — HackList overview
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

hacklist_overview input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "refresh": {
      "type": "boolean",
      "default": false
    }
  }
}
hacklist_overview annotations
{
  "title": "HackList overview",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search — Search HackList (connector)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search open HackList hackathons, grants and programs by keyword. Returns ids to pass to fetch. (Compatibility tool for ChatGPT connectors and deep research.)

search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Search keywords"
    }
  }
}
search annotations
{
  "title": "Search HackList",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch — Fetch HackList listing (connector)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch the full HackList listing for an id returned by search. (Compatibility tool for ChatGPT connectors and deep research.)

fetch input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Listing id from search"
    }
  }
}
fetch annotations
{
  "title": "Fetch HackList listing",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
263 ms
95th percentile latency
263 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 263 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http hacklist-mcp-workers https://hacklist-mcp.samuelsuccess234.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add hacklist-mcp-workers --url https://hacklist-mcp.samuelsuccess234.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable hacklist-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "hacklist-mcp-workers": {
      "url": "https://hacklist-mcp.samuelsuccess234.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "hacklist-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://hacklist-mcp.samuelsuccess234.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start hacklist-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "hacklist-mcp-workers": {
      "type": "http",
      "url": "https://hacklist-mcp.samuelsuccess234.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http hacklist-mcp-workers https://hacklist-mcp.samuelsuccess234.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "hacklist-mcp-workers": {
      "url": "https://hacklist-mcp.samuelsuccess234.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "hacklist-mcp-workers": {
      "serverUrl": "https://hacklist-mcp.samuelsuccess234.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like HackList MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.