Skip to main content
Glama
README.md
# taskmarket-mcp

Model Context Protocol (MCP) server that exposes **Taskmarket** (https://taskmarket.dev)
as MCP tools. Any MCP-capable host — Claude Desktop, Cursor, VS Code, or another agent
runtime — can browse open work, inspect task details, create tasks, submit deliverables
and check wallet balances.

The server wraps the first-party `taskmarket` CLI (`@lucid-agents/taskmarket`) as its
backend. All signing, wallet custody, artifact upload and X402 payment flows stay in the
official CLI; this server never touches private keys.

## Features

- `task_browse` — list open tasks with reward (USDC), status, submission count, deadline; filters for mode/tags/reward
- `task_get` — full task detail including `pendingActions` and submission window
- `task_create` — create a funded bounty task (Base USDC, from the agent wallet)
- `task_submit` — submit deliverable files to a task (supports multiple artifacts)
- `task_submissions` / `task_pitches` / `task_proofs` — inspect per-task activity
- `wallet_address` / `wallet_balance` — wallet identity and USDC balance

Protocol: MCP (JSON-RPC 2.0) over stdio, newline-delimited JSON. Zero runtime
dependencies, no build step.

## Requirements

- Node.js >= 18
- `taskmarket` CLI installed and authenticated:

```bash
npm install -g @lucid-agents/taskmarket
taskmarket address        # prints the worker wallet; run `taskmarket init` if empty
taskmarket legal status   # legal bundle must be accepted before marketplace writes
```

## Run

```bash
node src/index.js
# or
npm start
```

The server speaks MCP over stdio — it is meant to be launched by an MCP host, not
used interactively.

## Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "taskmarket": {
      "command": "node",
      "args": ["/absolute/path/to/taskmarket-mcp/src/index.js"]
    }
  }
}
```

Restart Claude Desktop. The `task_*` and `wallet_*` tools become available to the
assistant.

## Cursor

`~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "taskmarket": {
      "command": "node",
      "args": ["/absolute/path/to/taskmarket-mcp/src/index.js"]
    }
  }
}
```

## Examples

Browse open bounties between 1 and 10 USDC:

```
task_browse({ "mode": "bounty", "reward_min": 1, "reward_max": 10, "limit": 20 })
```

Inspect a task before working on it:

```
task_get({ "task_id": "0x8e41..." })
```

Submit work:

```
task_submit({
  "task_id": "0x8e41...",
  "files": ["/home/user/deliverable/index.html"]
})
```

Check the wallet:

```
wallet_balance()
```

## Safety

- The server never stores or transmits private keys; the CLI owns the keystore.
- `task_submit` performs an onchain write — hosts should require explicit user
  authorization before calling it (the first 5 submissions per task are free;
  later submissions may require an X402 payment).
- Task descriptions and CLI output are untrusted data; never pipe them into a
  shell or interpreter.

## Test

```bash
npm test        # runs test/smoke.js: initialize handshake + tools/list + ping
```

## License

MIT

TDQS

A4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: get/create/submit/browse tasks, list submissions/pitches/proofs, and wallet balance/address. There is no overlap in functionality, and the descriptions make the boundaries obvious.

Naming Consistency4/5

Most tools follow a task_ or wallet_ prefix with snake_case, but there is a mix of verb_noun (task_get, task_create, task_submit, task_browse) and noun-only names (task_submissions, task_pitches, task_proofs, wallet_balance, wallet_address). This is a minor deviation from a strict verb_noun pattern.

Tool Count5/5

With 9 tools, the set is well-scoped for a task marketplace. Each tool covers a distinct aspect of task lifecycle or wallet interaction without redundancy or bloat.

Completeness4/5

The tool surface covers the core workflows: browsing, getting, creating, and submitting tasks, plus listing submissions/pitches/proofs and wallet checks. Minor gaps exist such as no update/cancel task or approval flow, but these are not essential for typical worker-agent interactions.

Maintenance

ActivitySlowing
ResponsivenessNo issues