Skip to content
Back to CommonTape

Card snapshot

commontape.com · 2026-10-13 05:49:59 UTC · b427607f7a23f6fa40ffa299c64d7c2cbc9c039bd709d03b76e441a57883550b

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "CommonTape",
  "description": "Quote, hold and book US house cleaning jobs on a customer's behalf, at each business's own prices. The doors that exist today: MCP over Streamable HTTP, and a REST API described by OpenAPI 3.1. No A2A binding yet; when one opens it is added here. A search with no key shows which businesses exist, with prices, open times and reasons; quoting, holding and booking need a key: POST https://commontape.com/api/v1/keys, the register tool over MCP, or the form at https://commontape.com/docs#get-a-key. The key is shown once. Word list version 6.",
  "version": "1.1.0",
  "provider": {
    "organization": "CommonTape",
    "url": "https://commontape.com"
  },
  "documentationUrl": "https://commontape.com/docs",
  "iconUrl": "https://commontape.com/favicon-32.png",
  "supportedInterfaces": [
    {
      "url": "https://commontape.com/api/mcp",
      "protocolBinding": "MCP",
      "protocolVersion": "2025-11-25"
    },
    {
      "url": "https://commontape.com/api/v1/openapi.json",
      "protocolBinding": "OPENAPI",
      "protocolVersion": "3.1.0"
    }
  ],
  "capabilities": {},
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "book",
      "name": "Book a job",
      "description": "Commits the customer to the job and sends their name, phone and address to the business. Ask the customer first. Needs a key. Over MCP as the book tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "sensitive_write",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "cancel",
      "name": "Cancel a job",
      "description": "Cancels a job. It cannot be undone. Ask the customer first. Needs a key. Over MCP as the cancel tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "sensitive_write",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "discover",
      "name": "Read one business",
      "description": "Reads one business's services, prices and rules. Changes nothing. Needs a key. Over MCP as the discover tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "read",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "hold",
      "name": "Hold a time",
      "description": "Holds one time slot for a few minutes. It runs out on its own if not booked. Needs a key. Over MCP as the hold tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "write",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "modify",
      "name": "Change a booked job",
      "description": "Changes a booked job (time, scope or price). Ask the customer first. Needs a key. Over MCP as the modify tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "sensitive_write",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "quote",
      "name": "Quote a job",
      "description": "Records a priced job (the quote) so it can be held and booked later. Takes no time slot. Needs a key. Over MCP as the quote tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "write",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "register",
      "name": "Get a key",
      "description": "Issues your own key (shown once) at trial limits and emails the link that raises them. Public, no key; 3 a day per address. Works with no key. Over MCP as the register tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "write",
        "no_key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search",
      "name": "Search businesses for a cleaning job",
      "description": "Finds the businesses that can do a job, with prices and open times. Changes nothing. Works with no key. Over MCP as the search tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "read",
        "no_key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "status",
      "name": "Job status",
      "description": "Reads a job's current state and receipt. With the demo key only, a demo job that waits is accepted on this read. Needs a key. Over MCP as the status tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "read",
        "key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "taxonomy",
      "name": "The word list",
      "description": "Reads the fixed word list. Public, no key. Works with no key. Over MCP as the taxonomy tool, over REST as described by the OpenAPI document. Word list version 6.",
      "tags": [
        "house_cleaning",
        "us",
        "read",
        "no_key",
        "word_list_v6"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "securitySchemes": {
    "agentKey": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "bearerFormat": "ct_live_... from POST /api/v1/keys",
        "description": "Authorization: Bearer <key>. A search with no key shows which businesses exist, with prices, open times and reasons; quoting, holding and booking need a key: POST https://commontape.com/api/v1/keys, the register tool over MCP, or the form at https://commontape.com/docs#get-a-key. The key is shown once."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "agentKey": {
          "list": []
        }
      }
    }
  ]
}