Sidequest

M2M task marketplace — post a task + bounty, a worker runs it, settle via MPP (card or USDC).

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
72%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~609Tokens (tool definitions)
~656 BTypical response size
Minimal attention impact (0.48% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sidequest": {
      "url": "https://saltcrate-sidequest.fly.dev/mcp"
    }
  }
}

Remote endpoints

https://saltcrate-sidequest.fly.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢sidequest_pricing

List the task types Sidequest accepts, their bounty floors (card + USDC), and the payment methods enabled right now. Free.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡sidequest_post_task(type, args, requester, bounty_cents)

Post a task to the public board with a bounty. Unfunded + free — it becomes executable once someone (or run_task) pays. Returns the task id.

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "Task type: fetch | check_link | check_change | verify"
    },
    "args": {
      "type": "object",
      "description": "Task arguments, e.g. {\"url\": \"https://example.com\"}"
    },
    "requester": {
      "type": "string",
      "description": "Optional requester id (reputation seed)"
    },
    "bounty_cents": {
      "type": "integer",
      "description": "Optional bounty in cents (defaults to the floor)"
    }
  },
  "required": [
    "type",
    "args"
  ]
}
🟢sidequest_get_task(task_id)

Fetch one task by id — status, worker, result, payment reference. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ]
}
🟢sidequest_list_tasks(status, type, limit)

Browse the public task board (most recent first). Filter by status or type. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "pending | executing | done | failed | cancelled"
    },
    "type": {
      "type": "string",
      "description": "fetch | check_link | check_change | verify"
    },
    "limit": {
      "type": "integer",
      "description": "Max rows (1-500, default 20)"
    }
  }
}
⚪sidequest_stats

Public ledger stats — tasks by status/type, gross bounty settled, workers. The reputation seed. Free.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡sidequest_run_task(type, args, credential)

Post AND execute a task atomically (the worker runs now and you get the result). Paid via MPP — card (Stripe) or USDC (Tempo). Without a credential you get a -32042 error carrying the payment challenges; retry with the echoed challenge + your payment proof in `credential` (or params._meta['org.paymentauth/credential']).

Input Schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "fetch | check_link | check_change | verify"
    },
    "args": {
      "type": "object",
      "description": "e.g. {\"url\": \"https://example.com\"} or {\"claim\": \"...\", \"source_url\": \"...\"}"
    },
    "credential": {
      "type": "object",
      "description": "Echoed MPP challenge + payment proof (SPT for card, tx hash for USDC)"
    }
  },
  "required": [
    "type",
    "args"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools