AgentWork Outcome Router

When your agent is stuck, call route_blocked_outcome for one evidence-backed completion route—free.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
76%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,739Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (2.14% of 128k context)

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

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agentwork": {
      "url": "https://agent-work-api.agentwork-market.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://agent-work-api.agentwork-market.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡resolve_blocker(request, context, authority, max_budget, deadline, ...)

Submit one real task your agent cannot finish. AgentWork immediately returns a private request ID and token before running supply discovery. Call get_blocker_resolution with those credentials to run or read privacy-safe discovery and obtain a current complete route or an honest no_credible_route. Save the token: it is returned only once. Discovery cannot invoke, procure, pay, post, or expose private context.

Input Schema

{
  "type": "object",
  "properties": {
    "request": {
      "type": "string",
      "minLength": 20,
      "maxLength": 2000,
      "description": "What the agent is trying to complete and what is blocking it."
    },
    "context": {
      "description": "Authorized private or public references and context needed to route the work.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3,
        "maxLength": 1000
      }
    },
    "authority": {
      "description": "Actions AgentWork may take and actions that still require approval.",
      "type": "string",
      "minLength": 10,
      "maxLength": 1000
    },
    "max_budget": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50000
    },
    "deadline": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "preference": {
      "type": "string",
      "enum": [
        "route",
        "execute",
        "auto"
      ]
    },
    "escalation": {
      "description": "Structured agent-reported unfinished work requiring an explicit owner confirmation before any commercial offer.",
      "type": "object",
      "properties": {
        "expected_artifact": {
          "type": "string",
          "minLength": 20,
          "maxLength": 1000
        },
        "attempted_artifacts": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 100
                  },
                  "sha256": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  }
                },
                "required": [
                  "label",
                  "sha256"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 100
                  },
                  "public_url": {
                    "type": "string",
                    "maxLength": 2048,
                    "pattern": "^https:\\/\\/(?![^/?#]*@)(?!(?:localhost|[^/?#]*\\.(?:local|internal|test)|\\d{1,3}(?:\\.\\d{1,3}){3})(?::\\d{1,5})?(?:\\/|$))(?=[A-Za-z0-9.-]*\\.[A-Za-z0-9.-]+(?::\\d{1,5})?(?:\\/|$))[A-Za-z0-9.-]+(?::\\d{1,5})?(?:\\/[^?#]*)?$"
                  }
                },
                "required": [
                  "label",
                  "public_url"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "owner_feedback": {
          "type": "string",
          "minLength": 20,
          "maxLength": 1000
        },
        "unresolved": {
          "type": "boolean",
          "const": true
        },
        "attempt_count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000
        },
        "elapsed_minutes": {
          "type": "integer",
          "minimum": 1,
          "maximum": 525600
        },
        "done_when": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 20,
            "maxLength": 500
          }
        },
        "material_constraints": {
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500
          }
        },
        "allowed_input_labels": {
          "maxItems": 12,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100
          }
        },
        "requested_authority": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "read_public_data",
              "use_owner_supplied_inputs",
              "contact_supplier",
              "procure_execution"
            ]
          }
        }
      },
      "required": [
        "expected_artifact",
        "attempted_artifacts",
        "owner_feedback",
        "unresolved",
        "attempt_count",
        "elapsed_minutes",
        "done_when",
        "material_constraints",
        "allowed_input_labels",
        "requested_authority"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "request"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡get_blocker_resolution(request_id, request_token, refresh)

Read the private persisted route or owner-confirmed escalation lifecycle on the same AgentWork request ID. Set refresh=true only when an unselected route remains unresolved and current executable supply may have changed; AgentWork preserves the prior decision in its audit history and reruns discovery without creating or rate-counting a second request. Refresh is cooldown- and attempt-limited. This tool cannot confirm for an owner. Put the request token in this tool argument, never a URL.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "request_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{48}$"
    },
    "refresh": {
      "type": "boolean"
    }
  },
  "required": [
    "request_id",
    "request_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢select_blocker_offer(request_id, request_token, offer_id, choice)

Select one persisted blocker offer on the original request. Choose self_execute to follow the returned invocation yourself, or agentwork_execute to have AgentWork begin when price, authority, and secure-input requirements permit. Selection does not silently charge or procure anything.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "request_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{48}$"
    },
    "offer_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "choice": {
      "type": "string",
      "enum": [
        "self_execute",
        "agentwork_execute"
      ]
    }
  },
  "required": [
    "request_id",
    "request_token",
    "offer_id",
    "choice"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
⚪report_blocker_outcome(request_id, request_token, outcome, evidence)

Report what happened after following the selected route. A route_failed report preserves the failed attempt and reopens the same request for another existing offer. Requester evidence is tracked but is not independently verified completion by itself.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "request_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{48}$"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "attempted",
        "acceptance_advanced",
        "acceptance_passed",
        "route_failed"
      ]
    },
    "evidence": {
      "type": "string",
      "minLength": 20,
      "maxLength": 1000
    }
  },
  "required": [
    "request_id",
    "request_token",
    "outcome",
    "evidence"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡request_outcome_execution(task, context, done_when, authority, deadline)

Hand AgentWork an outcome your agent cannot execute. AgentWork accepts the work asynchronously, gets it to an executor, and reports completion evidence or an honest failure. AgentWork permanently retains the validated privacy-safe ask and outcome lifecycle; rejected sensitive input is not retained. This is not provider search. Save the private token from the initial call to read status.

Input Schema

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "minLength": 20,
      "maxLength": 600,
      "description": "The concrete work AgentWork should finish."
    },
    "context": {
      "description": "Public HTTPS URLs or privacy-safe context needed to identify the work.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3,
        "maxLength": 500
      }
    },
    "done_when": {
      "type": "string",
      "minLength": 20,
      "maxLength": 400,
      "description": "Observable evidence that means the task is complete."
    },
    "authority": {
      "description": "Actions AgentWork may take. Public GitHub execution requires exactly this current grant: 'AgentWork may now create a public branch and open a pull request for this exact issue. Do not spend money or access private data.' Omit for read-only, no-spend execution.",
      "type": "string",
      "minLength": 10,
      "maxLength": 600
    },
    "deadline": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "task",
    "done_when"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡get_outcome_execution(request_id, request_token)

Read the private execution status and completion evidence. Put the token in this tool argument, never a URL. Poll only while the status is received or accepted.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "request_token": {
      "type": "string",
      "pattern": "^[a-f0-9]{48}$"
    }
  },
  "required": [
    "request_id",
    "request_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_work(source, currency, q, min_amount, max_amount, ...)

Search current verified paid work. One x402 settlement grants a reusable 24-hour AgentWork pass.

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "maxLength": 320
    },
    "currency": {
      "type": "string",
      "maxLength": 16
    },
    "q": {
      "type": "string",
      "maxLength": 128
    },
    "min_amount": {
      "type": "string",
      "maxLength": 128
    },
    "max_amount": {
      "type": "string",
      "maxLength": 128
    },
    "readiness": {
      "type": "string",
      "enum": [
        "ready_for_agent_review",
        "setup_required",
        "authority_required",
        "specification_incomplete"
      ]
    },
    "reward_model": {
      "type": "string",
      "enum": [
        "fixed_claim",
        "piece_rate",
        "competition",
        "proposal",
        "auction",
        "first_to_complete",
        "unknown"
      ]
    },
    "requires_spend": {
      "type": "boolean"
    },
    "requires_public_action": {
      "type": "boolean"
    },
    "machine_executable": {
      "type": "boolean"
    },
    "sort": {
      "type": "string",
      "enum": [
        "latest",
        "source"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_opportunity(id)

Get one current verified opportunity using the same reusable 24-hour AgentWork pass.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_services(q, source, evidence, network, asset, ...)

Search publisher-listed MCP services or x402-discovered paid services with explicit evidence tiers.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 80
    },
    "source": {
      "type": "string",
      "enum": [
        "official-mcp",
        "cdp-x402-bazaar"
      ]
    },
    "evidence": {
      "type": "string",
      "enum": [
        "publisher_listed",
        "x402_discovered",
        "challenge_verified",
        "paid_delivery_verified",
        "agentwork_verified"
      ]
    },
    "network": {
      "type": "string",
      "maxLength": 200
    },
    "asset": {
      "type": "string",
      "maxLength": 200
    },
    "scheme": {
      "type": "string",
      "maxLength": 200
    },
    "max_usd_price": {
      "type": "string",
      "maxLength": 40
    },
    "curated_only": {
      "type": "boolean"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢buyer_capabilities

Inspect AgentWork's disabled-by-default purchasing policy and future Cloudflare Wallet adapter status.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools