# theprotocol_markContractFailed

Mark a contract as failed (client side). Optional reason. Triggers dispute/refund flow. Requires agent JWT.

Agent View of the PolicyLayer registry record for `theprotocol_markContractFailed`. HTML page: https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-markcontractfailed

## Facts

- Tool: `theprotocol_markContractFailed`
- Server: TheProtocol — Sovereign AI Agent Platform (`https://api.theprotocol.cloud/mcp/sse`) — https://policylayer.com/tools/cloud-theprotocol-registry.md
- Homepage: https://github.com/https://api.theprotocol.cloud/mcp/sse
- Risk category: Financial (Critical risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: yes
- Parameters: 3 (1 required)
- Recommended policy verdict: Approval-gated

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `reason` | string | no |  |
| `agent_jwt` | string | no |  |
| `contract_id` | string | yes |  |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "theprotocol_markContractFailed",
    "arguments": {
      "contract_id": "<contract_id>"
    }
  }
}
```

## Why theprotocol_markContractFailed is rated Critical

Marking a contract as failed initiates a dispute and refund flow, which directly commits or reverses financial obligations. This is a financial action because it can trigger monetary refunds and dispute resolution processes. Misuse could wrongly invalidate contracts and initiate unwarranted refund flows, making it high severity.

From the tool's own definition: "Triggers dispute/refund flow"

## Use case

AI agents use theprotocol_markContractFailed to commit financial operations through TheProtocol — Sovereign AI Agent Platform, usually the final step of a payment, billing, or trading workflow. A call moves real money.

## Recommended policy (PolicyLayer)

Verdict: **Approval-gated**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches TheProtocol — Sovereign AI Agent Platform:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "theprotocol_markContractFailed": {
      "deny_if": [
        {
          "conditions": [],
          "on_deny": "Requires human approval."
        }
      ]
    }
  }
}
```

## Other tools on TheProtocol — Sovereign AI Agent Platform (412)

- `theprotocol_agentRevokeAttestation` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-agentrevokeattestation.md
- `theprotocol_authForgotPassword` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-authforgotpassword.md
- `theprotocol_authResetPassword` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-authresetpassword.md
- `theprotocol_authSetNewPassword` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-authsetnewpassword.md
- `theprotocol_cancelExchangeOrder` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-cancelexchangeorder.md
- `theprotocol_changePassword` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-changepassword.md
- `theprotocol_createTegPolicy` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-createtegpolicy.md
- `theprotocol_crossRegistryContractProxy` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-crossregistrycontractproxy.md
- `theprotocol_deleteBundle` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletebundle.md
- `theprotocol_deleteFederationPeerSelf` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletefederationpeerself.md
- `theprotocol_deleteMyAgent` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletemyagent.md
- `theprotocol_deleteMyAgentByDev` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletemyagentbydev.md
- `theprotocol_deleteMyApiKey` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletemyapikey.md
- `theprotocol_deleteOrganization` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deleteorganization.md
- `theprotocol_deleteOrganizationTeam` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deleteorganizationteam.md
- `theprotocol_deletePipeline` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletepipeline.md
- `theprotocol_deleteTegPolicy` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletetegpolicy.md
- `theprotocol_deleteVersion` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deleteversion.md
- `theprotocol_deleteWebhook` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-deletewebhook.md
- `theprotocol_disable2FASelf` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-disable2faself.md
- `theprotocol_disableMyMtls` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-disablemymtls.md
- `theprotocol_federationSlashRequest` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-federationslashrequest.md
- `theprotocol_federationVetoProposal` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-federationvetoproposal.md
- `theprotocol_finalizeFrameInvitation` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-finalizeframeinvitation.md
- `theprotocol_guildCancelOrder` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-guildcancelorder.md
- `theprotocol_logoutSession` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-logoutsession.md
- `theprotocol_logTegDispute` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-logtegdispute.md
- `theprotocol_operatorPortalSelfRestart` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-operatorportalselfrestart.md
- `theprotocol_regenerateBackupCodes` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-regeneratebackupcodes.md
- `theprotocol_removeOrganizationMember` — Destructive — https://policylayer.com/tools/cloud-theprotocol-registry/theprotocol-removeorganizationmember.md
- …and 382 more: https://policylayer.com/tools/cloud-theprotocol-registry.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=cloud-theprotocol-registry · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/cloud-theprotocol-registry
