BotGigs
What this MCP does
Creates and manages real-world jobs funded through non-custodial BNB Chain escrow, including worker submissions, verification, payouts, refunds, and webhooks.
Tools
Input schema
{'type': 'object', 'required': ['bounty_id'], 'properties': {'bounty_id': {'type': 'string', 'description': 'Job id'}, 'refund_address': {'type': 'string', 'description': 'Wallet to refund (defaults to the depositing wallet)'}}}
Output schema
{'type': 'object', 'properties': {'refund': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Payout id (uuid).'}, 'kind': {'type': 'string', 'description': 'payout pays a worker; refund returns the money to the funding wallet.'}, 'chain': {'type': 'string', 'description': 'Network the transfer was sent on.'}, 'status': {'type': 'string', 'description': 'pending | sent | confirmed | failed. failed can be retried with retry_payout.'}, 'tx_hash': {'type': ['string', 'null'], 'description': '0x hash of the on-chain transfer, or null until broadcast.'}, 'attempts': {'type': 'number', 'description': 'Broadcast attempts so far.'}, 'bounty_id': {'type': 'string', 'description': 'The job this payout belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'last_error': {'type': ['string', 'null'], 'description': 'Why the last attempt failed, or null.'}, 'to_address': {'type': 'string', 'description': 'Wallet that receives the money.'}, 'amount_units': {'type': 'string', 'description': "Amount in the token's smallest units."}, 'submission_id': {'type': ['string', 'null'], 'description': 'The submission that triggered it, or null for a refund.'}}, 'description': 'The refund transfer, or absent if the job was never funded.', 'additionalProperties': True}, 'bounty_status': {'type': 'string', 'description': 'cancelled.'}}, 'description': 'The job cancelled and the money on its way back.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['title', 'amount', 'photo_steps'], 'properties': {'lat': {'type': 'number', 'description': 'Job latitude (enables map pin and location check)'}, 'lng': {'type': 'number', 'description': 'Job longitude'}, 'chain': {'enum': ['bsc'], 'type': 'string', 'default': 'bsc', 'description': 'Network. Only BNB Smart Chain (bsc) is live.'}, 'title': {'type': 'string', 'description': 'Short job title shown to workers, e.g. "Photo of the menu board at Cafe Luna"'}, 'token': {'enum': ['USDT', 'USDC', 'NATIVE'], 'type': 'string', 'description': 'Payment token; NATIVE = BNB'}, 'amount': {'type': 'string', 'description': 'Decimal amount, e.g. "5.00"'}, 'deadline': {'type': 'string', 'format': 'date-time', 'description': 'ISO time after which the job expires and is refundable'}, 'radius_m': {'type': 'number', 'description': 'Allowed distance from lat/lng for the location check (default 250)'}, 'description': {'type': 'string', 'description': 'Full instructions for the worker'}, 'photo_steps': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'object', 'required': ['type', 'label'], 'properties': {'type': {'enum': ['photo', 'text', 'checkbox'], 'type': 'string'}, 'label': {'type': 'string'}}}]}, 'description': "1-8 proof steps. A string is a photo step; or {type:'photo'|'text'|'checkbox', label}."}, 'location_text': {'type': 'string', 'description': 'Human-readable place, e.g. "123 Main St, Denver"'}, 'min_completed': {'type': 'number', 'description': 'Only workers with at least this many completed jobs can claim'}, 'nearby_first_minutes': {'type': 'number', 'description': 'Offer to nearby workers only for this many minutes after funding'}}}
Output schema
{'type': 'object', 'properties': {'bounty': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Job id (uuid). Pass to fund_bounty, get_bounty and cancel_bounty.'}, 'lat': {'type': ['number', 'null'], 'description': 'Job latitude, or null if the job has no map pin.'}, 'lng': {'type': ['number', 'null'], 'description': 'Job longitude, or null if the job has no map pin.'}, 'chain': {'type': 'string', 'description': 'Network key, e.g. bsc.'}, 'title': {'type': 'string', 'description': 'Job title shown to workers.'}, 'amount': {'type': 'string', 'description': 'Pay in decimal form, e.g. "5.00".'}, 'status': {'type': 'string', 'description': 'awaiting_funding | open | claimed | submitted | paying | completed | payout_failed | cancelled | expired.'}, 'deadline': {'type': ['string', 'null'], 'description': 'ISO time when the job expires and becomes refundable.'}, 'radius_m': {'type': ['number', 'null'], 'description': 'Metres from lat/lng a worker may be to claim or to submit.'}, 'claimed_at': {'type': ['string', 'null'], 'description': 'ISO time the job was claimed.'}, 'claimed_by': {'type': ['string', 'null'], 'description': 'Wallet of the worker holding the claim, or null.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'funding_tx': {'type': ['string', 'null'], 'description': '0x hash of the deposit that funded this job, or null until funded.'}, 'updated_at': {'type': 'string', 'description': 'ISO time of the last change.'}, 'description': {'type': 'string', 'description': 'Full instructions for the worker.'}, 'photo_steps': {'type': 'array', 'description': 'Proof steps the worker must satisfy.'}, 'amount_units': {'type': 'string', 'description': "Pay in the token's smallest units."}, 'nearby_until': {'type': ['string', 'null'], 'description': 'ISO time until only nearby workers can claim, or null if not set.'}, 'token_symbol': {'type': 'string', 'description': 'Payment token: USDT, USDC, or BNB for native.'}, 'location_text': {'type': ['string', 'null'], 'description': 'Human-readable place, e.g. "123 Main St, Denver".'}, 'min_completed': {'type': 'number', 'description': 'Completed jobs a worker needs before they can claim this one.'}, 'token_address': {'type': ['string', 'null'], 'description': 'Token contract address, or null when paid in native BNB.'}, 'token_decimals': {'type': 'number', 'description': 'Decimals used to convert amount into amount_units.'}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract holding the funds, or null if not contract-funded.'}, 'claim_expires_at': {'type': ['string', 'null'], 'description': 'ISO time an unsubmitted claim lapses and the job reopens.'}, 'moderation_summary': {'type': ['string', 'null'], 'description': 'Short reason from the safety screen.'}, 'moderation_verdict': {'type': 'string', 'description': 'Safety screen result: ok, caution, or pending.'}}, 'description': 'A job listing and its live state.', 'additionalProperties': True}, 'funding': {'type': 'object', 'properties': {'call': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'bytes32 job id derived from the job uuid.'}, 'token': {'type': 'string', 'description': 'Token address to pass, or the zero address for native BNB.'}, 'value': {'type': 'string', 'description': 'Wei to send with the call (0 when paying in a token).'}, 'amount': {'type': 'string', 'description': 'Job pay in the smallest units.'}, 'deadline': {'type': 'number', 'description': 'Unix seconds after which the job is refundable.'}, 'function': {'type': 'string', 'description': 'Full function signature.'}, 'refundTo': {'type': 'string', 'description': 'Your refund address — put your own wallet here.'}, 'maxFeeBps': {'type': 'number', 'description': 'Fee ceiling you accept for this job.'}}, 'description': 'The deposit() arguments, ready to use.', 'additionalProperties': True}, 'next': {'type': 'string', 'description': 'What to call once the money is on-chain.'}, 'chain': {'type': 'string', 'description': 'Network key to send on.'}, 'steps': {'type': 'array', 'description': 'Ordered instructions to follow.'}, 'token': {'type': 'string', 'description': 'Token symbol to pay in.'}, 'amount': {'type': 'string', 'description': 'Job pay in decimal form.'}, 'method': {'type': 'string', 'description': 'contract when the job is held by the escrow contract.'}, 'safety': {'type': 'string', 'description': 'Plain-language note on what can and cannot happen to the locked funds.'}, 'send_to': {'type': ['string', 'null'], 'description': 'Wallet to send to on networks without the contract deployed.'}, 'chain_id': {'type': 'number', 'description': 'Numeric network id, e.g. 56 for BNB Smart Chain.'}, 'amount_units': {'type': 'string', 'description': "Job pay in the token's smallest units, excluding the fee."}, 'platform_fee': {'type': 'object', 'properties': {'paid_by': {'type': 'string', 'description': 'Who pays the fee.'}, 'rate_bps': {'type': 'number', 'description': 'Fee in basis points, e.g. 250 = 2.5%.'}, 'fee_units': {'type': 'string', 'description': "Fee in the token's smallest units."}, 'total_units': {'type': 'string', 'description': 'Job pay plus fee in the smallest units — this is what you send.'}, 'rate_percent': {'type': 'number', 'description': 'Fee as a percent.'}, 'refunded_if_job_expires': {'type': 'boolean', 'description': 'True: an expired job returns the fee too.'}}, 'description': 'The fee the job was funded at. The bot pays it on top; the worker always receives the full amount.', 'additionalProperties': True}, 'token_address': {'type': ['string', 'null'], 'description': 'Token contract address, or null for native BNB.'}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract to call deposit() on.'}}, 'description': 'Exactly how to pay the job into escrow, then confirm it.', 'additionalProperties': True}}, 'description': 'The new job plus the exact steps to fund it.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['bounty_id', 'tx_hash'], 'properties': {'tx_hash': {'type': 'string', 'description': '0x transaction hash of the deposit'}, 'bounty_id': {'type': 'string', 'description': 'Job id from create_bounty'}}}
Output schema
{'type': 'object', 'properties': {'bounty': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Job id (uuid). Pass to fund_bounty, get_bounty and cancel_bounty.'}, 'lat': {'type': ['number', 'null'], 'description': 'Job latitude, or null if the job has no map pin.'}, 'lng': {'type': ['number', 'null'], 'description': 'Job longitude, or null if the job has no map pin.'}, 'chain': {'type': 'string', 'description': 'Network key, e.g. bsc.'}, 'title': {'type': 'string', 'description': 'Job title shown to workers.'}, 'amount': {'type': 'string', 'description': 'Pay in decimal form, e.g. "5.00".'}, 'status': {'type': 'string', 'description': 'awaiting_funding | open | claimed | submitted | paying | completed | payout_failed | cancelled | expired.'}, 'deadline': {'type': ['string', 'null'], 'description': 'ISO time when the job expires and becomes refundable.'}, 'radius_m': {'type': ['number', 'null'], 'description': 'Metres from lat/lng a worker may be to claim or to submit.'}, 'claimed_at': {'type': ['string', 'null'], 'description': 'ISO time the job was claimed.'}, 'claimed_by': {'type': ['string', 'null'], 'description': 'Wallet of the worker holding the claim, or null.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'funding_tx': {'type': ['string', 'null'], 'description': '0x hash of the deposit that funded this job, or null until funded.'}, 'updated_at': {'type': 'string', 'description': 'ISO time of the last change.'}, 'description': {'type': 'string', 'description': 'Full instructions for the worker.'}, 'photo_steps': {'type': 'array', 'description': 'Proof steps the worker must satisfy.'}, 'amount_units': {'type': 'string', 'description': "Pay in the token's smallest units."}, 'nearby_until': {'type': ['string', 'null'], 'description': 'ISO time until only nearby workers can claim, or null if not set.'}, 'token_symbol': {'type': 'string', 'description': 'Payment token: USDT, USDC, or BNB for native.'}, 'location_text': {'type': ['string', 'null'], 'description': 'Human-readable place, e.g. "123 Main St, Denver".'}, 'min_completed': {'type': 'number', 'description': 'Completed jobs a worker needs before they can claim this one.'}, 'token_address': {'type': ['string', 'null'], 'description': 'Token contract address, or null when paid in native BNB.'}, 'token_decimals': {'type': 'number', 'description': 'Decimals used to convert amount into amount_units.'}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract holding the funds, or null if not contract-funded.'}, 'claim_expires_at': {'type': ['string', 'null'], 'description': 'ISO time an unsubmitted claim lapses and the job reopens.'}, 'moderation_summary': {'type': ['string', 'null'], 'description': 'Short reason from the safety screen.'}, 'moderation_verdict': {'type': 'string', 'description': 'Safety screen result: ok, caution, or pending.'}}, 'description': 'A job listing and its live state.', 'additionalProperties': True}}, 'description': 'The job, now funded and open to workers.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['bounty_id'], 'properties': {'bounty_id': {'type': 'string', 'description': 'Job id'}}}
Output schema
{'type': 'object', 'properties': {'bounty': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Job id (uuid). Pass to fund_bounty, get_bounty and cancel_bounty.'}, 'lat': {'type': ['number', 'null'], 'description': 'Job latitude, or null if the job has no map pin.'}, 'lng': {'type': ['number', 'null'], 'description': 'Job longitude, or null if the job has no map pin.'}, 'chain': {'type': 'string', 'description': 'Network key, e.g. bsc.'}, 'title': {'type': 'string', 'description': 'Job title shown to workers.'}, 'amount': {'type': 'string', 'description': 'Pay in decimal form, e.g. "5.00".'}, 'status': {'type': 'string', 'description': 'awaiting_funding | open | claimed | submitted | paying | completed | payout_failed | cancelled | expired.'}, 'deadline': {'type': ['string', 'null'], 'description': 'ISO time when the job expires and becomes refundable.'}, 'radius_m': {'type': ['number', 'null'], 'description': 'Metres from lat/lng a worker may be to claim or to submit.'}, 'claimed_at': {'type': ['string', 'null'], 'description': 'ISO time the job was claimed.'}, 'claimed_by': {'type': ['string', 'null'], 'description': 'Wallet of the worker holding the claim, or null.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'funding_tx': {'type': ['string', 'null'], 'description': '0x hash of the deposit that funded this job, or null until funded.'}, 'updated_at': {'type': 'string', 'description': 'ISO time of the last change.'}, 'description': {'type': 'string', 'description': 'Full instructions for the worker.'}, 'photo_steps': {'type': 'array', 'description': 'Proof steps the worker must satisfy.'}, 'amount_units': {'type': 'string', 'description': "Pay in the token's smallest units."}, 'nearby_until': {'type': ['string', 'null'], 'description': 'ISO time until only nearby workers can claim, or null if not set.'}, 'token_symbol': {'type': 'string', 'description': 'Payment token: USDT, USDC, or BNB for native.'}, 'location_text': {'type': ['string', 'null'], 'description': 'Human-readable place, e.g. "123 Main St, Denver".'}, 'min_completed': {'type': 'number', 'description': 'Completed jobs a worker needs before they can claim this one.'}, 'token_address': {'type': ['string', 'null'], 'description': 'Token contract address, or null when paid in native BNB.'}, 'token_decimals': {'type': 'number', 'description': 'Decimals used to convert amount into amount_units.'}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract holding the funds, or null if not contract-funded.'}, 'claim_expires_at': {'type': ['string', 'null'], 'description': 'ISO time an unsubmitted claim lapses and the job reopens.'}, 'moderation_summary': {'type': ['string', 'null'], 'description': 'Short reason from the safety screen.'}, 'moderation_verdict': {'type': 'string', 'description': 'Safety screen result: ok, caution, or pending.'}}, 'description': 'A job listing and its live state.', 'additionalProperties': True}, 'payouts': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Payout id (uuid).'}, 'kind': {'type': 'string', 'description': 'payout pays a worker; refund returns the money to the funding wallet.'}, 'chain': {'type': 'string', 'description': 'Network the transfer was sent on.'}, 'status': {'type': 'string', 'description': 'pending | sent | confirmed | failed. failed can be retried with retry_payout.'}, 'tx_hash': {'type': ['string', 'null'], 'description': '0x hash of the on-chain transfer, or null until broadcast.'}, 'attempts': {'type': 'number', 'description': 'Broadcast attempts so far.'}, 'bounty_id': {'type': 'string', 'description': 'The job this payout belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'last_error': {'type': ['string', 'null'], 'description': 'Why the last attempt failed, or null.'}, 'to_address': {'type': 'string', 'description': 'Wallet that receives the money.'}, 'amount_units': {'type': 'string', 'description': "Amount in the token's smallest units."}, 'submission_id': {'type': ['string', 'null'], 'description': 'The submission that triggered it, or null for a refund.'}}, 'description': 'An outbound transfer: a worker payout or a refund back to the funding wallet.', 'additionalProperties': True}, 'description': 'Any payout or refund for this job, refreshed against the chain.'}, 'submissions': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Submission id (uuid). Pass to review_submission.'}, 'lat': {'type': ['number', 'null'], 'description': 'Where the worker reported being.'}, 'lng': {'type': ['number', 'null'], 'description': 'Where the worker reported being.'}, 'note': {'type': ['string', 'null'], 'description': "The worker's own note."}, 'status': {'type': 'string', 'description': 'pending | approved | rejected.'}, 'worker': {'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'Worker wallet address (lowercase 0x...).'}, 'pending': {'type': 'number', 'description': 'Submissions still awaiting review.'}, 'rejected': {'type': 'number', 'description': 'Submissions rejected.'}, 'completed': {'type': 'number', 'description': 'Submissions approved.'}, 'approval_rate': {'type': ['number', 'null'], 'description': 'Percent of reviewed submissions that were approved, or null if nothing has been reviewed yet.'}}, 'description': "A worker's on-chain track record.", 'additionalProperties': True}, 'answers': {'type': 'array', 'description': 'Answers to text and checkbox steps.'}, 'bounty_id': {'type': 'string', 'description': 'The job this submission belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO submission time.'}, 'distance_m': {'type': ['number', 'null'], 'description': 'Metres from the job spot when submitted, or null if no location was sent.'}, 'photo_urls': {'type': 'array', 'description': 'Temporary https URLs for the photos (present in get_bounty, expire in about an hour).'}, 'photo_paths': {'type': 'array', 'description': 'Storage paths of the uploaded photos.'}, 'review_note': {'type': ['string', 'null'], 'description': 'The note you sent back with the decision.'}, 'reviewed_at': {'type': ['string', 'null'], 'description': 'ISO time you reviewed it.'}, 'location_check': {'type': 'string', 'description': 'inside when within the job radius, outside when further, unknown when no location was sent.'}, 'worker_address': {'type': 'string', 'description': 'Wallet of the worker who submitted.'}}, 'description': "A worker's proof of completion for a job.", 'additionalProperties': True}, 'description': "All submissions, newest first, each with photo URLs and the worker's record."}}, 'description': 'One job with everything known about it.', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'chains': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Human-readable network name.'}, 'rpcs': {'type': 'number', 'description': 'Endpoints available on this network.'}, 'chain': {'type': 'string', 'description': 'Network key to pass as chain, e.g. bsc.'}, 'native': {'type': 'string', 'description': 'Native coin symbol, e.g. BNB.'}, 'tokens': {'type': 'object', 'description': 'Supported dollar tokens mapped to their official contract addresses.'}, 'chain_id': {'type': 'number', 'description': 'Numeric network id, e.g. 56.'}, 'default_token': {'type': 'string', 'description': "Token used when you don't choose one."}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract that holds job funds, or null.'}}, 'additionalProperties': True}, 'description': 'Networks currently live. Only BNB Smart Chain today.'}, 'escrow_address': {'type': 'string', 'description': 'Wallet the platform controls for gas and non-contract funding.'}}, 'description': 'The live network, token and contract details jobs are funded with.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Worker 0x wallet address'}}}
Output schema
{'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'Worker wallet address (lowercase 0x...).'}, 'pending': {'type': 'number', 'description': 'Submissions still awaiting review.'}, 'rejected': {'type': 'number', 'description': 'Submissions rejected.'}, 'completed': {'type': 'number', 'description': 'Submissions approved.'}, 'approval_rate': {'type': ['number', 'null'], 'description': 'Percent of reviewed submissions that were approved, or null if nothing has been reviewed yet.'}}, 'description': "A worker's on-chain track record.", 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {'status': {'type': 'string', 'description': 'Optional filter: draft, open, claimed, submitted, paid, cancelled, expired'}}}
Output schema
{'type': 'object', 'properties': {'bounties': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Job id (uuid). Pass to fund_bounty, get_bounty and cancel_bounty.'}, 'lat': {'type': ['number', 'null'], 'description': 'Job latitude, or null if the job has no map pin.'}, 'lng': {'type': ['number', 'null'], 'description': 'Job longitude, or null if the job has no map pin.'}, 'chain': {'type': 'string', 'description': 'Network key, e.g. bsc.'}, 'title': {'type': 'string', 'description': 'Job title shown to workers.'}, 'amount': {'type': 'string', 'description': 'Pay in decimal form, e.g. "5.00".'}, 'status': {'type': 'string', 'description': 'awaiting_funding | open | claimed | submitted | paying | completed | payout_failed | cancelled | expired.'}, 'deadline': {'type': ['string', 'null'], 'description': 'ISO time when the job expires and becomes refundable.'}, 'radius_m': {'type': ['number', 'null'], 'description': 'Metres from lat/lng a worker may be to claim or to submit.'}, 'claimed_at': {'type': ['string', 'null'], 'description': 'ISO time the job was claimed.'}, 'claimed_by': {'type': ['string', 'null'], 'description': 'Wallet of the worker holding the claim, or null.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'funding_tx': {'type': ['string', 'null'], 'description': '0x hash of the deposit that funded this job, or null until funded.'}, 'updated_at': {'type': 'string', 'description': 'ISO time of the last change.'}, 'description': {'type': 'string', 'description': 'Full instructions for the worker.'}, 'photo_steps': {'type': 'array', 'description': 'Proof steps the worker must satisfy.'}, 'amount_units': {'type': 'string', 'description': "Pay in the token's smallest units."}, 'nearby_until': {'type': ['string', 'null'], 'description': 'ISO time until only nearby workers can claim, or null if not set.'}, 'token_symbol': {'type': 'string', 'description': 'Payment token: USDT, USDC, or BNB for native.'}, 'location_text': {'type': ['string', 'null'], 'description': 'Human-readable place, e.g. "123 Main St, Denver".'}, 'min_completed': {'type': 'number', 'description': 'Completed jobs a worker needs before they can claim this one.'}, 'token_address': {'type': ['string', 'null'], 'description': 'Token contract address, or null when paid in native BNB.'}, 'token_decimals': {'type': 'number', 'description': 'Decimals used to convert amount into amount_units.'}, 'escrow_contract': {'type': ['string', 'null'], 'description': 'Contract holding the funds, or null if not contract-funded.'}, 'claim_expires_at': {'type': ['string', 'null'], 'description': 'ISO time an unsubmitted claim lapses and the job reopens.'}, 'moderation_summary': {'type': ['string', 'null'], 'description': 'Short reason from the safety screen.'}, 'moderation_verdict': {'type': 'string', 'description': 'Safety screen result: ok, caution, or pending.'}}, 'description': 'A job listing and its live state.', 'additionalProperties': True}, 'description': 'Up to 100 of your jobs, newest first.'}}, 'description': 'Your jobs, newest first.', 'additionalProperties': True}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'properties': {'deliveries': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Delivery id.'}, 'event': {'type': 'string', 'description': 'Event name, e.g. submission.created.'}, 'status': {'type': 'string', 'description': 'pending | sent | failed.'}, 'attempts': {'type': 'number', 'description': 'Sends attempted (up to 5).'}, 'created_at': {'type': 'string', 'description': 'ISO time the event was created.'}, 'last_error': {'type': ['string', 'null'], 'description': 'Transport error from the last attempt.'}, 'last_status': {'type': ['number', 'null'], 'description': 'HTTP status your endpoint last returned.'}}, 'additionalProperties': True}, 'description': 'Up to 50 recent deliveries.'}}, 'description': 'Recent deliveries, newest first.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['bounty_id'], 'properties': {'bounty_id': {'type': 'string', 'description': 'Job id'}}}
Output schema
{'type': 'object', 'properties': {'payout': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Payout id (uuid).'}, 'kind': {'type': 'string', 'description': 'payout pays a worker; refund returns the money to the funding wallet.'}, 'chain': {'type': 'string', 'description': 'Network the transfer was sent on.'}, 'status': {'type': 'string', 'description': 'pending | sent | confirmed | failed. failed can be retried with retry_payout.'}, 'tx_hash': {'type': ['string', 'null'], 'description': '0x hash of the on-chain transfer, or null until broadcast.'}, 'attempts': {'type': 'number', 'description': 'Broadcast attempts so far.'}, 'bounty_id': {'type': 'string', 'description': 'The job this payout belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'last_error': {'type': ['string', 'null'], 'description': 'Why the last attempt failed, or null.'}, 'to_address': {'type': 'string', 'description': 'Wallet that receives the money.'}, 'amount_units': {'type': 'string', 'description': "Amount in the token's smallest units."}, 'submission_id': {'type': ['string', 'null'], 'description': 'The submission that triggered it, or null for a refund.'}}, 'description': 'An outbound transfer: a worker payout or a refund back to the funding wallet.', 'additionalProperties': True}}, 'description': 'The payout, re-sent.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['submission_id', 'decision'], 'properties': {'note': {'type': 'string', 'description': 'Optional note shown to the worker'}, 'decision': {'enum': ['approve', 'reject'], 'type': 'string', 'description': 'approve pays the worker; reject reopens the job'}, 'signature': {'type': 'string', 'description': "Contract jobs: your depositing wallet's personal_sign over release_hash (raw 32 bytes). Call without it to get the hash."}, 'submission_id': {'type': 'string', 'description': 'Submission id from get_bounty'}}}
Output schema
{'type': 'object', 'properties': {'payout': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Payout id (uuid).'}, 'kind': {'type': 'string', 'description': 'payout pays a worker; refund returns the money to the funding wallet.'}, 'chain': {'type': 'string', 'description': 'Network the transfer was sent on.'}, 'status': {'type': 'string', 'description': 'pending | sent | confirmed | failed. failed can be retried with retry_payout.'}, 'tx_hash': {'type': ['string', 'null'], 'description': '0x hash of the on-chain transfer, or null until broadcast.'}, 'attempts': {'type': 'number', 'description': 'Broadcast attempts so far.'}, 'bounty_id': {'type': 'string', 'description': 'The job this payout belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO creation time.'}, 'last_error': {'type': ['string', 'null'], 'description': 'Why the last attempt failed, or null.'}, 'to_address': {'type': 'string', 'description': 'Wallet that receives the money.'}, 'amount_units': {'type': 'string', 'description': "Amount in the token's smallest units."}, 'submission_id': {'type': ['string', 'null'], 'description': 'The submission that triggered it, or null for a refund.'}}, 'description': 'Present when you approve: the transfer to the worker.', 'additionalProperties': True}, 'submission': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Submission id (uuid). Pass to review_submission.'}, 'lat': {'type': ['number', 'null'], 'description': 'Where the worker reported being.'}, 'lng': {'type': ['number', 'null'], 'description': 'Where the worker reported being.'}, 'note': {'type': ['string', 'null'], 'description': "The worker's own note."}, 'status': {'type': 'string', 'description': 'pending | approved | rejected.'}, 'worker': {'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'Worker wallet address (lowercase 0x...).'}, 'pending': {'type': 'number', 'description': 'Submissions still awaiting review.'}, 'rejected': {'type': 'number', 'description': 'Submissions rejected.'}, 'completed': {'type': 'number', 'description': 'Submissions approved.'}, 'approval_rate': {'type': ['number', 'null'], 'description': 'Percent of reviewed submissions that were approved, or null if nothing has been reviewed yet.'}}, 'description': "A worker's on-chain track record.", 'additionalProperties': True}, 'answers': {'type': 'array', 'description': 'Answers to text and checkbox steps.'}, 'bounty_id': {'type': 'string', 'description': 'The job this submission belongs to.'}, 'created_at': {'type': 'string', 'description': 'ISO submission time.'}, 'distance_m': {'type': ['number', 'null'], 'description': 'Metres from the job spot when submitted, or null if no location was sent.'}, 'photo_urls': {'type': 'array', 'description': 'Temporary https URLs for the photos (present in get_bounty, expire in about an hour).'}, 'photo_paths': {'type': 'array', 'description': 'Storage paths of the uploaded photos.'}, 'review_note': {'type': ['string', 'null'], 'description': 'The note you sent back with the decision.'}, 'reviewed_at': {'type': ['string', 'null'], 'description': 'ISO time you reviewed it.'}, 'location_check': {'type': 'string', 'description': 'inside when within the job radius, outside when further, unknown when no location was sent.'}, 'worker_address': {'type': 'string', 'description': 'Wallet of the worker who submitted.'}}, 'description': "A worker's proof of completion for a job.", 'additionalProperties': True}, 'bounty_status': {'type': ['string', 'null'], 'description': 'Present when you reject: the job is back to open.'}}, 'description': 'The decision and what happened to the money.', 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': ['string', 'null'], 'description': 'https URL to receive events, or null to remove'}}}
Output schema
{'type': 'object', 'properties': {'note': {'type': ['string', 'null'], 'description': 'How to verify each delivery.'}, 'webhook_url': {'type': ['string', 'null'], 'description': 'The endpoint now receiving events, or null if removed.'}, 'webhook_secret': {'type': ['string', 'null'], 'description': 'The signing secret, returned once when you set a URL.'}}, 'description': 'The endpoint now registered and the secret to verify it with.', 'additionalProperties': True}
Recent tool changes
Similar MCP servers
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
Corply — Start and run your company
Supports company formation and corporate administration including incorporation documents, signatures, cap tables, corporate acti…
BeeL
Provides Spanish company administration and VeriFactu-compliant invoicing, including customers, products, invoice issuance, corre…
Focxle: AI governance for B2B deals between agents
Provides agent spending controls, delegated budgets, signed authority checks, negotiations, escrow contracts, workforce hiring, a…
Conta Azul MCP
Connects to Conta Azul ERP for managing customers, sales, budgets, contracts, financial accounts, receivables, invoices, settleme…
Molt2Meet
Dispatches physical-world tasks to human operators, manages scheduling and proof of completion, and supports direct settlement or…
mcp-server
Supports hiring and coordinating human specialists through contracts, schedules, bookings, escrow holds, billable events, approva…