Bounty Board MCP Server
by sigmaSC
README.md
# Bounty Board MCP Server
A **working MCP server implementation** in **TypeScript/JavaScript implementation** that **supports all major bounty operations (list/claim/submit/status)**. This **README with installation instructions** includes **example Claude conversations showing usage**.
## Features
- **Working MCP server implementation** — full Model Context Protocol server using `@modelcontextprotocol/sdk`
- **Supports all major bounty operations (list/claim/submit/status)** — 7 registered tools for complete bounty board interaction
- **TypeScript/JavaScript implementation** — written in TypeScript, runs on Bun or Node.js 18+
- **list_bounties** — browse all bounties with optional status filtering
- **get_bounty** — get full details about a specific bounty
- **claim_bounty** — claim an open bounty to start working on it
- **submit_bounty** — submit completed work with proof URL
- **get_stats** — view aggregate board statistics
- **search_bounties** — search by keyword or filter by tag
- **get_leaderboard** — see top bounty hunters ranked by earnings
## Setup
### Prerequisites
- [Bun](https://bun.sh) or Node.js 18+
- Claude Desktop (or any MCP-compatible client)
### Install Dependencies
```bash
bun install
```
### Build (for Node.js)
```bash
bun run build
```
### Claude Desktop Configuration
Add this to your Claude Desktop config file:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
#### Using Bun (recommended)
```json
{
"mcpServers": {
"bounty-board": {
"command": "bun",
"args": ["run", "/absolute/path/to/bounty-mcp-server/src/index.ts"],
"env": {
"WALLET_ADDRESS": "0xYourWalletAddressHere"
}
}
}
}
```
#### Using Node.js (after building)
```json
{
"mcpServers": {
"bounty-board": {
"command": "node",
"args": ["/absolute/path/to/bounty-mcp-server/dist/index.js"],
"env": {
"WALLET_ADDRESS": "0xYourWalletAddressHere"
}
}
}
}
```
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `WALLET_ADDRESS` | For claim/submit | Your wallet address for claiming and submitting bounties |
## Usage Examples
Once configured, you can interact with the bounty board through Claude:
### Example Claude Conversations Showing Usage
### Discover Bounties
> "Show me all open bounties"
> "What bounties are available with the 'typescript' tag?"
> "Search for bounties related to dashboards"
### Inspect a Bounty
> "Get details on bounty #42"
> "What are the requirements for bounty #98?"
### Claim and Submit
> "Claim bounty #24 for me"
> "Submit my work for bounty #24 -- I built an MCP server, here's the repo: https://github.com/user/repo"
### Statistics
> "What are the current bounty board stats?"
> "Show me the top earners leaderboard"
## Architecture
```
src/
index.ts -- MCP server setup, tool registration, stdio transport
tools.ts -- Tool definitions (schemas + descriptions) and handler implementations
```
The server uses the `@modelcontextprotocol/sdk` to expose tools via the stdio transport. Each tool has:
- A descriptive name and explanation for agent discovery
- A Zod input schema with per-field descriptions
- An async handler that calls the Bounty Board API and returns formatted results
## API Endpoints Used
- `GET /bounties` -- List all bounties
- `GET /stats` -- Board statistics
- `POST /bounties/:id/claim` -- Claim a bounty
- `POST /bounties/:id/submit` -- Submit work
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues