Hire verified local people for real-world tasks. Paid upfront, released on approved photo proof.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
SideQuest API key. Get one instantly with POST /v1/requesters.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Approve a submitted quest after checking its proof. This releases the secured reward to the quester. Optionally rate the quester 1 to 5. Submitted quests not approved or disputed within 72 hours are approved automatically.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http sidequest https://sidequestpays.com/mcp \ --header 'X-API-Key: YOUR_X_API_KEY'
Headers
X-API-Key (required): SideQuest API key. Get one instantly with POST /v1/requesters.Approve a submitted quest after checking its proof. This releases the secured reward to the quester. Optionally rate the quester 1 to 5. Submitted quests not approved or disputed within 72 hours are approved automatically.
| Argument | Type | Description |
|---|---|---|
| rating | number | |
| quest_id* | string |
{
"type": "object",
"required": [
"quest_id"
],
"properties": {
"rating": {
"type": "number",
"maximum": 5,
"minimum": 1
},
"quest_id": {
"type": "string"
}
},
"additionalProperties": false
}Cancel a quest before a quester claims it. Paid quests are refunded in full. Claimed quests cannot be cancelled.
| Argument | Type | Description |
|---|---|---|
| quest_id* | string |
{
"type": "object",
"required": [
"quest_id"
],
"properties": {
"quest_id": {
"type": "string"
}
},
"additionalProperties": false
}Post a paid real-world quest for a verified human quester near a location. If your prepaid balance covers the reward plus the 20% fee, it is paid instantly and opens to nearby questers right away. Otherwise it returns a checkout_url a person must pay first (use funding: 'balance' to fail instead). Use for tasks only a person on site can do. Account creation, social media posting, reviews, CAPTCHAs, and anything illegal are rejected.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude where the quest happens. Required for in-person templates, ignored for remote ones. |
| lng | number | Longitude where the quest happens. Required for in-person templates, ignored for remote ones. |
| zip | string | Optional ZIP code. |
| title* | string | Short, clear instruction, e.g. 'Confirm Joe's Hardware at 12 Main St is open and photograph posted hours'. |
| country | string | Optional 2-letter ISO code. For remote quests, only questers in this country can claim it (for example NG for a quest needing local knowledge of Nigeria). |
| details | object | Step-by-step instructions, addresses, checklist items, and what a good photo looks like. |
| funding | string | auto (default): use balance if it covers the total, else return a checkout_url. balance: only use balance, error if short. checkout: always return a checkout_url. |
Dispute a submitted quest whose proof does not meet the instructions. Funds stay held while a SideQuest reviewer decides. Give a specific reason.
| Argument | Type | Description |
|---|---|---|
| reason* | string | |
| quest_id* | string |
{
"type": "object",
"required": [
"quest_id",
"reason"
],
"properties": {
"reason": {
"type": "string"
},
"quest_id": {
"type": "string"
}
},
"additionalProperties": false
}Check your prepaid balance, this key's spend caps, and how much it has spent in the last 24 hours. Call before posting quests to know whether they will be paid instantly.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get one of your quests by id, including status and, once submitted, the quester's proof (photo URLs, GPS, timestamp, notes). Photo URLs need the same API key.
| Argument | Type | Description |
|---|---|---|
| quest_id* | string |
{
"type": "object",
"required": [
"quest_id"
],
"properties": {
"quest_id": {
"type": "string"
}
},
"additionalProperties": false
}List your quests, newest first. Optionally filter by status: draft, open, claimed, submitted, approved, disputed, paid, cancelled, refunded.
| Argument | Type | Description |
|---|---|---|
| limit | number | |
| status | string |
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"maximum": 200,
"minimum": 1
},
"status": {
"type": "string"
}
},
"additionalProperties": false
}List the quest types a person can do for you. In person (needs lat/lng): verify_location, photo_proof, pickup_dropoff, inspect_item. Remote (anyone, anywhere, optionally limited to a country): phone_call, translation, check_ai_output. Call this first to pick the right template.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Receive signed HTTPS callbacks when your quests change status (quest.opened, quest.claimed, quest.submitted, quest.paid, quest.disputed, quest.released, quest.refunded, quest.cancelled) instead of polling get_quest. Returns a signing secret once.
| Argument | Type | Description |
|---|---|---|
| url* | string | Your https endpoint. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Your https endpoint."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| language | string | Language needed, like Spanish or Yoruba. Required for translation quests. |
| template* | string | Quest type from list_templates. |
| reward_usd* | number | What the quester earns. A 20% platform fee (minimum $1) is added on top. |
{
"type": "object",
"required": [
"template",
"title",
"reward_usd"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude where the quest happens. Required for in-person templates, ignored for remote ones."
},
"lng": {
"type": "number",
"description": "Longitude where the quest happens. Required for in-person templates, ignored for remote ones."
},
"zip": {
"type": "string",
"description": "Optional ZIP code."
},
"title": {
"type": "string",
"maxLength": 140,
"description": "Short, clear instruction, e.g. 'Confirm Joe's Hardware at 12 Main St is open and photograph posted hours'."
},
"country": {
"type": "string",
"description": "Optional 2-letter ISO code. For remote quests, only questers in this country can claim it (for example NG for a quest needing local knowledge of Nigeria)."
},
"details": {
"type": "object",
"description": "Step-by-step instructions, addresses, checklist items, and what a good photo looks like."
},
"funding": {
"enum": [
"auto",
"balance",
"checkout"
],
"type": "string",
"description": "auto (default): use balance if it covers the total, else return a checkout_url. balance: only use balance, error if short. checkout: always return a checkout_url."
},
"language": {
"type": "string",
"description": "Language needed, like Spanish or Yoruba. Required for translation quests."
},
"template": {
"enum": [
"verify_location",
"photo_proof",
"pickup_dropoff",
"inspect_item",
"phone_call",
"translation",
"check_ai_output"
],
"type": "string",
"description": "Quest type from list_templates."
},
"reward_usd": {
"type": "number",
"maximum": 1000,
"minimum": 5,
"description": "What the quester earns. A 20% platform fee (minimum $1) is added on top."
}
},
"additionalProperties": false
}