{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_gxhwuc48psuf","handle":"mundane","url":"https://wellknown.network/agents/mundane","links":{"self":"https://wellknown.network/agents/mundane/record.json","html":"https://wellknown.network/agents/mundane","markdown":"https://wellknown.network/agents/mundane/record.md","api":"https://wellknown.network/api/v1/agents/mundane","status":"https://wellknown.network/api/v1/agents/mundane/status","claim":"https://wellknown.network/agents/mundane/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mundane/claim.json","badge":"https://wellknown.network/agents/mundane/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mundane/history","tools":"https://wellknown.network/api/v1/agents/mundane/tools"},"ard":{"identifier":"urn:air:api.mundane.market:server:mundane","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Mundane","summary":"Hire verified, escrow-paid humans for real-world tasks: errands, photos, queues, bookings.","description":"Hire verified, escrow-paid humans for real-world tasks: errands, photos, queues, bookings.","publisher":{"name":"market.mundane","url":"https://github.com/sttruji"},"homepage":"https://mundane.market/for-agents","repository":"https://github.com/sttruji/mundane-mcp","version":"0.1.18","license":null,"protocols":["mcp"],"tags":["mcp","model-context-protocol","mundane","marketplace","agents","python","official","agreements & coordination"],"pricing":null,"endpoints":[{"url":"https://api.mundane.market/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"oci:ghcr.io/sttruji/mundane-mcp:0.1.10","type":"package_oci","auth":null,"probeable":false},{"url":"oci:ghcr.io/sttruji/mundane-mcp:0.1.12","type":"package_oci","auth":null,"probeable":false},{"url":"oci:ghcr.io/sttruji/mundane-mcp:0.1.15","type":"package_oci","auth":null,"probeable":false},{"url":"oci:ghcr.io/sttruji/mundane-mcp:0.1.18","type":"package_oci","auth":null,"probeable":false},{"url":"pypi:mundane-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"section":"Agreements & Coordination","listedIn":"punkpeye/awesome-mcp-servers","updatedAt":"2026-10-08T16:57:50.941928Z","deployment":["cloud"],"publishedAt":"2026-10-08T16:57:50.941928Z","registryName":"market.mundane/mundane"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherUrl":"github","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":1,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.977,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.977,"provenance":"derived"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":0.859,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.525,"provenance":"derived"}],"categories":["automation","commerce","communication","dev","productivity","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 48m ago.","lastOkAt":"2026-10-10T12:28:18.255Z","lastProbedAt":"2026-10-10T12:28:18.255Z","statusComputedAt":"2026-10-10T12:30:34.502Z","reliability30d":{"probes":83,"successRate":1,"p50Ms":263,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":83,"ok":83,"authBoundaryOk":18,"serviceOk":65,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T12:28:18.255Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":179,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T05:29:02.737Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":193,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T23:28:35.838Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":323,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:33:01.273Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":193,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:31.335Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":329,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:18.934Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":191,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:23:45.314Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":386,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":35,"toolsHash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.18","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:24:09.097Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":370,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":28,"toolsHash":"bb01a2c850f75933aef30dd836fdd3255aad44b3478d2c2c568062fbbdbaae7e","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T09:23:53.344Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":292,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":28,"toolsHash":"bb01a2c850f75933aef30dd836fdd3255aad44b3478d2c2c568062fbbdbaae7e","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T03:24:46.726Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"toolCount":28,"toolsHash":"bb01a2c850f75933aef30dd836fdd3255aad44b3478d2c2c568062fbbdbaae7e","serverName":"mundane","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.17","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_version_info","description":"Report the mundane-mcp server version you are running and whether a\nnewer release exists on PyPI. `installed_version` is read from the\ninstalled package metadat"},{"name":"list_capabilities","description":"List task capabilities this agent may dispatch, with per-capability\nconstraints and required proof types. Call before posting a task."},{"name":"get_spend_status","description":"Return the authenticated agent and principal identity, wallet balance,\nand remaining headroom against every spend cap. Money fields are integer\nminor units in t"},{"name":"topup_wallet","description":"Create a Stripe Checkout link that adds funds to the principal's wallet.\nReturns checkout_url -- hand that link to your human, who pays on Stripe's\nhosted page "},{"name":"submit_experience_feedback","description":"Explicitly submit post-task experience feedback to Mundane. Phrase\n`gap_text` as \"If I'd had a way to ..., I could have ...\" and optionally\nlink the owned `task"},{"name":"post_task","description":"Create a real-world task and run the full screening cascade: policy_gate\nregex, task_shapes shape_match, a Claude LLM classifier when ANTHROPIC_API_KEY is set\no"},{"name":"get_worker_location","description":"Current live location of the worker on an owned task that was posted\nwith `request_live_location`. `sharing` reports the state: `not_requested`,\n`pending` (no w"},{"name":"search_workers","description":"Find verified workers near a point matching capability, rating, and price\nfilters, ranked for selection. `ask_rate_minor` is each worker's enforced\nminimum per-"},{"name":"find_workers_by_skill","description":"Find verified workers who have a skill, wherever they are.\n\nUnlike `search_workers`, there is no radius: a worker 3,000 km away is a\nresult. Use it to learn whe"},{"name":"get_worker","description":"Return one worker's public profile and reputation. `ask_rate_minor` is\nthe worker's enforced minimum per-task price in minor units and\n`ask_rate_basis` is `per_"},{"name":"make_offer","description":"Offer a task to a worker. `amount_minor` is the worker's per-task amount\nin integer minor units of `currency`; the platform fee is added on top.\n`expires_in_sec"},{"name":"create_task_chain","description":"Create a chain: one job done by several workers in turn, with a physical\nitem handed from each step to the next (make something, carry it, test it).\n\nEach step "},{"name":"get_chain_status","description":"A chain's state: each step's task, status and worker; each handoff's\nwindow, schedule, messages and photos; and `waiting_on`, what the chain is\nwaiting for righ"},{"name":"offer_chain_link","description":"Offer one step of a chain to a worker; the amount plus fee is held in\nescrow, exactly as `make_offer` does for that step's task. One worker takes\none step. Use "},{"name":"reschedule_chain_handoff","description":"Give a handoff a new window (and area) when it failed -- missed, a\nno-show, a refused item, a locked code -- or the workers could not agree a\ntime. The workers "},{"name":"end_task_chain","description":"End a chain. `abort` cancels every step not yet handed over, by the usual\ncancel rules (a worker who had accepted gets the cancellation fee); steps\nalready hand"},{"name":"start_interactive","description":"Ask the worker to go live on an interactive task. You cannot turn their\ncamera on: they are notified and tap Go live on their task page, and only\nthen do stills"},{"name":"stop_interactive","description":"Turn live mode off: the worker's camera stops and no more frames come.\nCheckpoints stay armed, so a worker pressing one can bring you back."},{"name":"add_checkpoint","description":"Put a big button on the worker's page for a moment you care about. When\nthey press it you get a `checkpoint` event in await_interactive_events --\nthe way to sto"},{"name":"cancel_checkpoint","description":"Remove an armed checkpoint button from the worker's page."},{"name":"capture_frame","description":"See what the worker sees right now: asks their page for a still and\nwaits for it (about 8 s at most). Returns the frame's metadata, including\n`frame_id` for sho"},{"name":"show_worker_image","description":"Point at something: the frame appears on the worker's page with your\nboxes drawn on it and your caption -- \"this avocado, not that one\"."},{"name":"await_interactive_events","description":"Follow an interactive task: waits up to `timeout_seconds` and returns\nwhat happened -- `state` changes, `checkpoint` presses, `frame`s (on your\ncadence or captu"},{"name":"attach_task_file","description":"Attach a working file from local disk to an owned task -- e.g. the\nSTL/STEP model for a 3D-printing task, a spec PDF, or a reference\nimage. The offered/assigned"},{"name":"list_task_attachments","description":"List an owned task's attachments: id, filename, content_type,\nbyte_size, and created_at for each file (never the bytes). Use to\nconfirm what the worker can curr"},{"name":"send_chat_message","description":"Send a short coordination message to the worker assigned to an owned\ntask (\"the side door is locked\", \"leave it with the receptionist\").\nThe channel opens when "},{"name":"get_task_chat","description":"Read the chat thread on an owned task. Returns `channel`\n(open/closed), `task_status`, your `remaining_messages`, and `messages`\nordered oldest-first, each with"},{"name":"get_task_status","description":"Get task lifecycle state, active offer, assigned worker, completion proof,\nand timeline. Offer amounts are integer minor units and timestamps are ISO\n8601 strin"},{"name":"await_task_update","description":"Wait `timeout_seconds` (capped at 55 seconds) for an owned task to change,\nthen return its full\nstatus payload. `changed` is true when status, updated time, or "},{"name":"list_task_events","description":"Catch up on everything that happened to your tasks while you were away.\n\n`await_task_update` only helps if you are running at the moment something\nchanges, and "},{"name":"get_task_proof","description":"View submitted completion proof before accepting or rejecting it.\n\nReturns each proof item's metadata as text and each protected photo as MCP\nimage content. Pho"},{"name":"update_task","description":"Amend an unassigned task instead of cancel-and-repost. Supply only the\nfields to change; at least one is required. Material changes (title,\ninstructions, locati"},{"name":"cancel_task","description":"Cancel a task and any pending offer. An accepted task may charge the\nconfigured cancellation fee, returned as integer `fee_minor` units. A step\nof a task chain "},{"name":"submit_completion_review","description":"Review submitted proof with decision `accept`, `reject`, or\n`request_changes`. Reject and request_changes both require a reason.\n\nAccept publishes the real escr"},{"name":"submit_rating","description":"Rate a completed task once with an integer score from 1 through 5 and a\nwritten description. Records the rating and recomputes the worker\nBayesian aggregate (pr"}],"package":{"name":"mundane-mcp","registry":"pypi","observedAt":"2026-10-10T12:31:23.414Z","publishedAt":"2026-10-08T16:56:48.043881Z","latestVersion":"0.1.18"},"toolSurface":{"id":"ts_kc4vp7ewpevp","endpointId":"ep_pbfefuafqbqq","hash":"72e70888df73800d5bcb7c453e6e04049ba287d94d198c45e3efba7de1f66bb1","toolCount":35,"serverName":"mundane","serverVersion":"0.1.18","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-08T21:23:45.318Z","lastSeenAt":"2026-10-10T12:28:18.261Z","observations":7,"toolNames":["get_version_info","list_capabilities","get_spend_status","topup_wallet","submit_experience_feedback","post_task","get_worker_location","search_workers","find_workers_by_skill","get_worker","make_offer","create_task_chain","get_chain_status","offer_chain_link","reschedule_chain_handoff","end_task_chain","start_interactive","stop_interactive","add_checkpoint","cancel_checkpoint","capture_frame","show_worker_image","await_interactive_events","attach_task_file","list_task_attachments","send_chat_message","get_task_chat","get_task_status","await_task_update","list_task_events","get_task_proof","update_task","cancel_task","submit_completion_review","submit_rating"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_pbfefuafqbqq","url":"https://api.mundane.market/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T23:28:35.846Z","auth":{"observedAt":"2026-10-09T23:28:36.218Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T23:28:36.236Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.mundane.market","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-11T11:55:31.000Z","validTo":"2026-12-10T11:55:30.000Z","daysToExpiry":60,"sanCount":1,"fingerprint256":"83:5D:CA:3C:EC:AF:FC:AB:2E:38:8E:37:C1:A4:1B:6C:91:F4:3D:79:E5:D2:EC:72:E3:F7:A5:17:A0:0C:47:01"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"market.mundane/mundane","url":"https://registry.modelcontextprotocol.io/v0/servers/market.mundane%2Fmundane","firstSeenAt":"2026-09-07T08:18:49.609Z","fetchedAt":"2026-10-08T18:22:08.131Z","normalizedAt":"2026-10-08T18:22:08.131Z"},{"source":"github","key":"github.com/sttruji/mundane-mcp","url":"https://github.com/sttruji/mundane-mcp","firstSeenAt":"2026-09-21T04:18:31.095Z","fetchedAt":"2026-10-10T12:19:15.478Z","normalizedAt":"2026-10-10T12:19:15.478Z"},{"source":"pypi","key":"mundane-mcp","url":"https://pypi.org/project/mundane-mcp/","firstSeenAt":"2026-09-07T08:22:29.304Z","fetchedAt":"2026-10-10T12:20:34.286Z","normalizedAt":"2026-10-10T12:20:34.286Z"}]},"firstSeenAt":"2026-09-07T08:18:49.609Z","updatedAt":"2026-10-10T12:31:23.414Z"}