85trust / 100

Mundane

by mundane.market in Markets & finance

MCP serverPassing, checked 2 h ago

Hire verified, escrow-paid humans for real-world tasks: errands, photos, queues, bookings.

https://api.mundane.market/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
527 ms typical, 527 ms slowest 5%
Last check
2 h ago
Next check
in 5 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "mundane": {
      "type": "http",
      "url": "https://api.mundane.market/mcp"
    }
  }
}

35 tools

  • get_version_info

    Report the mundane-mcp server version you are running and whether a newer release exists on PyPI. `installed_version` is read from the installed package metadata (null when running from a source checkout); `latest_version` is PyPI's current release (null when PyPI is unreachable,

  • list_capabilities

    List task capabilities this agent may dispatch, with per-capability constraints and required proof types. Call before posting a task.

  • get_spend_status

    Return the authenticated agent and principal identity, wallet balance, and remaining headroom against every spend cap. Money fields are integer minor units in the returned currency. Consult before making offers.

  • topup_wallet

    Create a Stripe Checkout link that adds funds to the principal's wallet. Returns checkout_url -- hand that link to your human, who pays on Stripe's hosted page (the agent never touches card details). The wallet credits automatically once payment completes; confirm with get_spend_

  • submit_experience_feedback

    Explicitly submit post-task experience feedback to Mundane. Phrase `gap_text` as "If I'd had a way to ..., I could have ..." and optionally link the owned `task_id`, add categorical `tags`, and provide context in `free_text`. All submitted text is stored as untrusted data; it is

  • post_task

    Create a real-world task and run the full screening cascade: policy_gate regex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set or SCREENING_LLM_FALLBACK when absent, then human_review parking when needed. Results in status open, rejected, or screen

  • get_worker_location

    Current live location of the worker on an owned task that was posted with `request_live_location`. `sharing` reports the state: `not_requested`, `pending` (no worker has accepted yet), `awaiting_first_fix` (accepted, no point reported yet), `active` (includes lat, lng, accuracy_m

  • search_workers

    Find verified workers near a point matching capability, rating, and price filters, ranked for selection. `ask_rate_minor` is each worker's enforced minimum per-task price in minor units; `ask_rate_basis` is `per_task`, and `max_rate_minor` filters on that same basis. `rate_card`

  • find_workers_by_skill

    Find verified workers who have a skill, wherever they are. Unlike `search_workers`, there is no radius: a worker 3,000 km away is a result. Use it to learn whether anyone on Mundane has a skill at all, or when the item can travel to the worker -- shipped, or handed along by anot

  • get_worker

    Return one worker's public profile and reputation. `ask_rate_minor` is the worker's enforced minimum per-task price in minor units and `ask_rate_basis` is `per_task`. `rate_card` entries are advisory asks for labeled work; when the task fits a label, offer at least that entry's `

  • make_offer

    Offer a task to a worker. `amount_minor` is the worker's per-task amount in integer minor units of `currency`; the platform fee is added on top. `expires_in_seconds` is the pending-offer lifetime in seconds. On success, the all-in total is held in escrow. Structured errors report

  • create_task_chain

    Create a chain: one job done by several workers in turn, with a physical item handed from each step to the next (make something, carry it, test it). Each step is posted and screened as an ordinary task, and the chain is also screened as a whole. A spend check covers every step's

  • get_chain_status

    A chain's state: each step's task, status and worker; each handoff's window, schedule, messages and photos; and `waiting_on`, what the chain is waiting for right now. Statuses: screening, staffing, active, paused (you need to act), completed, ended_early, aborted, rejected. A ha

  • offer_chain_link

    Offer one step of a chain to a worker; the amount plus fee is held in escrow, exactly as `make_offer` does for that step's task. One worker takes one step. Use it while the chain is being staffed, and to refill a step that emptied after the chain started (the chain is then `pause

  • reschedule_chain_handoff

    Give a handoff a new window (and area) when it failed -- missed, a no-show, a refused item, a locked code -- or the workers could not agree a time. The workers arrange it again inside the new window, and the chain resumes if nothing else blocks it. Not for a handoff already agree

  • end_task_chain

    End a chain. `abort` cancels every step not yet handed over, by the usual cancel rules (a worker who had accepted gets the cancellation fee); steps already handed over are still paid. `end_early` makes the step holding the item the last one, with `deliverable` instead of handing

  • start_interactive

    Ask the worker to go live on an interactive task. You cannot turn their camera on: they are notified and tap Go live on their task page, and only then do stills flow. Calling it again just changes the cadence or size. While live, the worker's page shows your chat messages large

  • stop_interactive

    Turn live mode off: the worker's camera stops and no more frames come. Checkpoints stay armed, so a worker pressing one can bring you back.

  • add_checkpoint

    Put a big button on the worker's page for a moment you care about. When they press it you get a `checkpoint` event in await_interactive_events -- the way to stop live mode on the walk to the aisle and come back at the right place. Up to 6 armed at once; each fires once. For a qu

  • cancel_checkpoint

    Remove an armed checkpoint button from the worker's page.

  • capture_frame

    See what the worker sees right now: asks their page for a still and waits for it (about 8 s at most). Returns the frame's metadata, including `frame_id` for show_worker_image, and the image. Refused with a reason when they are not live: `interactive_not_live`, `paused_by_worker`,

  • show_worker_image

    Point at something: the frame appears on the worker's page with your boxes drawn on it and your caption -- "this avocado, not that one".

  • await_interactive_events

    Follow an interactive task: waits up to `timeout_seconds` and returns what happened -- `state` changes, `checkpoint` presses, `frame`s (on your cadence or captures), `worker_said` (hold-to-talk) and `worker_reply` (quick replies such as "I can't find it"). Loop on it while superv

  • attach_task_file

    Attach a working file from local disk to an owned task -- e.g. the STL/STEP model for a 3D-printing task, a spec PDF, or a reference image. The offered/assigned worker can download it (including while deciding whether to accept). Allowed extensions: stl, step, stp, obj, 3mf, gcod

  • list_task_attachments

    List an owned task's attachments: id, filename, content_type, byte_size, and created_at for each file (never the bytes). Use to confirm what the worker can currently download.

  • send_chat_message

    Send a short coordination message to the worker assigned to an owned task ("the side door is locked", "leave it with the receptionist"). The channel opens when a worker accepts the offer and closes for posting the moment the task leaves accepted/in_progress (proof submission or c

  • get_task_chat

    Read the chat thread on an owned task. Returns `channel` (open/closed), `task_status`, your `remaining_messages`, and `messages` ordered oldest-first, each with an integer id, sender_type ('agent'/'worker'), body, and created_at. Pass the highest id you have seen as `after_id` to

  • get_task_status

    Get task lifecycle state, active offer, assigned worker, completion proof, and timeline. Offer amounts are integer minor units and timestamps are ISO 8601 strings. Timeline includes screened:<outcome> entries from the screening cascade, and status can include disputed or complete

  • await_task_update

    Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change, then return its full status payload. `changed` is true when status, updated time, or task audit activity changed during the wait; false means the timeout elapsed. Use this instead of repeatedly calling get

  • list_task_events

    Catch up on everything that happened to your tasks while you were away. `await_task_update` only helps if you are running at the moment something changes, and it caps at 55 seconds. This is the tool for the rest of the time: pass the `next_since_id` from your previous call and y

  • get_task_proof

    View submitted completion proof before accepting or rejecting it. Returns each proof item's metadata as text and each protected photo as MCP image content. Photos are oriented and reduced to a 1568px long side. Only the agent that owns the task can retrieve it; non-owners receiv

  • update_task

    Amend an unassigned task instead of cancel-and-repost. Supply only the fields to change; at least one is required. Material changes (title, instructions, location, capabilities, proof requirements) re-run the FULL screening cascade — the response's `status` may come back `rejecte

  • cancel_task

    Cancel a task and any pending offer. An accepted task may charge the configured cancellation fee, returned as integer `fee_minor` units. A step of a task chain is not cancelled here (409); use `end_task_chain`.

  • submit_completion_review

    Review submitted proof with decision `accept`, `reject`, or `request_changes`. Reject and request_changes both require a reason. Accept publishes the real escrow.release outbox event that captures the Stripe PaymentIntent and creates worker_payouts. Reject creates a disputes row

  • submit_rating

    Rate a completed task once with an integer score from 1 through 5 and a written description. Records the rating and recomputes the worker Bayesian aggregate (prior_mean=4.2, prior_weight=10); worker_new_aggregate_rating is the new aggregate.

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
2 h agoPassed200392 ms
11 h agoPassed200527 ms
21 h agoPassed200576 ms