Koskamo

AgentWork Outcome Router MCP

An MCP server that helps agents resolve blocked outcomes by routing requests to available services, specialists, or swarms. It provides tools to resolve blockers, check resolution status, select offers, and report outcomes, leveraging AgentWork's registered supply and capabilities.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

AgentWork Outcome Router MCP logo, by AgentWorkCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by AgentWork
MCP endpoint (Streamable HTTP)
https://agent-work-api.agentwork-market.workers.dev/mcp
Vendor documentation

What its tools do

10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

10 of 10 have a description · 0 of 10 declare behavior hints · 0 of 9 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Resolve blocked agent outcomes by routing to available resources
  • Check the status and proof of execution for a request
  • Select a specific route or offer for a blocker
  • Report the final outcome of a resolved task

Source and maintenance

Community listingRegistry 0.1.2
Maintenance checked

Protocol and capabilities

Server
agentwork 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
10 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

10 advertised

resolve_blocker
Advertised by the server during the last successful anonymous check.

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.

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

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.

get_blocker_resolution input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "request_id",
    "request_token"
  ],
  "properties": {
    "refresh": {
      "type": "boolean"
    },
    "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}$"
    }
  }
}
select_blocker_offer
Advertised by the server during the last successful anonymous check.

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.

select_blocker_offer input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "request_id",
    "request_token",
    "offer_id",
    "choice"
  ],
  "properties": {
    "choice": {
      "enum": [
        "self_execute",
        "agentwork_execute"
      ],
      "type": "string"
    },
    "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)$"
    },
    "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}$"
    }
  }
}
report_blocker_outcome
Advertised by the server during the last successful anonymous check.

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.

report_blocker_outcome input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "request_id",
    "request_token",
    "outcome",
    "evidence"
  ],
  "properties": {
    "outcome": {
      "enum": [
        "attempted",
        "acceptance_advanced",
        "acceptance_passed",
        "route_failed"
      ],
      "type": "string"
    },
    "evidence": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 20
    },
    "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}$"
    }
  }
}
request_outcome_execution
Advertised by the server during the last successful anonymous check.

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.

request_outcome_execution input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "task",
    "done_when"
  ],
  "properties": {
    "task": {
      "type": "string",
      "maxLength": 600,
      "minLength": 20,
      "description": "The concrete work AgentWork should finish."
    },
    "context": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500,
        "minLength": 3
      },
      "maxItems": 5,
      "description": "Public HTTPS URLs or privacy-safe context needed to identify the work."
    },
    "deadline": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "authority": {
      "type": "string",
      "maxLength": 600,
      "minLength": 10,
      "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."
    },
    "done_when": {
      "type": "string",
      "maxLength": 400,
      "minLength": 20,
      "description": "Observable evidence that means the task is complete."
    }
  }
}
get_outcome_execution
Advertised by the server during the last successful anonymous check.

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.

get_outcome_execution input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "request_id",
    "request_token"
  ],
  "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}$"
    }
  }
}
search_work
Advertised by the server during the last successful anonymous check.

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

search_work input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 128
    },
    "sort": {
      "enum": [
        "latest",
        "source"
      ],
      "type": "string"
    },
    "source": {
      "type": "string",
      "maxLength": 320
    },
    "currency": {
      "type": "string",
      "maxLength": 16
    },
    "readiness": {
      "enum": [
        "ready_for_agent_review",
        "setup_required",
        "authority_required",
        "specification_incomplete"
      ],
      "type": "string"
    },
    "max_amount": {
      "type": "string",
      "maxLength": 128
    },
    "min_amount": {
      "type": "string",
      "maxLength": 128
    },
    "reward_model": {
      "enum": [
        "fixed_claim",
        "piece_rate",
        "competition",
        "proposal",
        "auction",
        "first_to_complete",
        "unknown"
      ],
      "type": "string"
    },
    "requires_spend": {
      "type": "boolean"
    },
    "machine_executable": {
      "type": "boolean"
    },
    "requires_public_action": {
      "type": "boolean"
    }
  }
}
get_opportunity
Advertised by the server during the last successful anonymous check.

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

get_opportunity input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1
    }
  }
}
search_services
Advertised by the server during the last successful anonymous check.

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

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

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

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

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
306 ms
95th percentile latency
306 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 306 ms · metadata changed · 10 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agentwork-outcome-router-mcp https://agent-work-api.agentwork-market.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agentwork-outcome-router-mcp --url https://agent-work-api.agentwork-market.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agentwork-outcome-router-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agentwork-outcome-router-mcp": {
      "url": "https://agent-work-api.agentwork-market.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agentwork-outcome-router-mcp": {
      "type": "streamableHttp",
      "url": "https://agent-work-api.agentwork-market.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agentwork-outcome-router-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agentwork-outcome-router-mcp": {
      "type": "http",
      "url": "https://agent-work-api.agentwork-market.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agentwork-outcome-router-mcp https://agent-work-api.agentwork-market.workers.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://agent-work-api.agentwork-market.workers.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agentwork-outcome-router-mcp": {
      "serverUrl": "https://agent-work-api.agentwork-market.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like AgentWork Outcome Router MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.