Koskamo

ProveCart MCP

ProveCart is a verification service for agent commerce that compares customer requests against agent-built orders before payment. The MCP server provides tools for agent certification, exam management, scoreboard access, and transaction verification (orders, bookings, reservations) to prevent payment mistakes.

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.

ProveCart MCP logo, by ProveCartVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by ProveCart
You need:send your scoped key as the X-API-Key header of the MCP request
MCP endpoint (Streamable HTTP)
https://api.provecart.com/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 · 10 of 10 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to provecart.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Sign up an agent for certification
  • Start and answer certification exams
  • Check agent scoreboard and certification status
  • Verify orders, bookings, and reservations before payment

Source and maintenance

Vendor evidenceRegistry 1.0.2

Protocol and capabilities

Server
provecart 1.0.2
MCP protocol negotiated in check
2025-06-18
Tools
10 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

ProveCart checks what an AI agent built (an order, a travel booking, or a service reservation) against the customer's signed instruction before the payment is captured, and returns a signed MATCH, REVIEW, or BLOCK verdict. Call a check tool before completing a purchase, booking, or reservation. ProveCart also certifies agents, and no pre-issued key is needed to begin: sign up with provecart_agent_signup (it returns a scoped API key and your agent_id), take the live exam with provecart_agent_exam_start and provecart_agent_exam_answer — the exam grades your own purchase decisions — and read published scores with provecart_scoreboard.

Tools

10 advertised

provecart_check_order — ProveCart: check an order before payment
Advertised by the server during the last successful anonymous check.

Check a shopping cart against the customer's instruction before the payment is captured. Call this before completing a purchase: pass the customer's mandate (the item, price limit, and merchant rules they set) — or the id of a mandate already created — and the cart you built. ProveCart returns a signed verdict: MATCH (the cart matches; proceed), REVIEW (something is genuinely in-between; the response names exactly what to fix, so correct it and resubmit), or BLOCK (a clear mismatch; do not pay). Every check leaves a sealed evidence record. ProveCart never holds or moves money. Non-MATCH responses follow the Agent Correction Format (ACF): a machine-readable corrections array (dimension, action, expected, actual, reason), a retry budget, and a sealed evidence pointer — spec: https://provecart.com/standards/correction-format. Requires an integrator API key in the X-API-Key header of the MCP request.

provecart_check_order input schema
{
  "type": "object",
  "$defs": {
    "CartItem": {
      "type": "object",
      "title": "CartItem",
      "required": [
        "name",
        "unit_price"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "brand": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Brand",
          "default": null
        },
        "variant": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Variant",
          "default": null
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Category",
          "default": null
        },
        "quantity": {
          "type": "integer",
          "title": "Quantity",
          "default": 1,
          "minimum": 1
        },
        "unit_price": {
          "type": "number",
          "title": "Unit Price",
          "minimum": 0
        }
      }
    },
    "MerchantIn": {
      "type": "object",
      "title": "MerchantIn",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain",
          "default": null
        }
      }
    }
  },
  "anyOf": [
    {
      "required": [
        "mandate"
      ]
    },
    {
      "required": [
        "mandate_id"
      ]
    }
  ],
  "required": [
    "cart"
  ],
  "properties": {
    "cart": {
      "type": "object",
      "title": "VerifyIn",
      "required": [
        "merchant",
        "items",
        "total_price"
      ],
      "properties": {
        "tax": {
          "type": "number",
          "title": "Tax",
          "default": 0,
          "minimum": 0
        },
        "fees": {
          "type": "number",
          "title": "Fees",
          "default": 0,
          "minimum": 0
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CartItem"
          },
          "title": "Items"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "merchant": {
          "$ref": "#/$defs/MerchantIn"
        },
        "shipping": {
          "type": "number",
          "title": "Shipping",
          "default": 0,
          "minimum": 0
        },
        "total_price": {
          "type": "number",
          "title": "Total Price",
          "minimum": 0
        },
        "cart_changed": {
          "type": "boolean",
          "title": "Cart Changed",
          "default": false
        },
        "previous_record_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Record Id",
          "default": null
        }
      },
      "description": "The cart the agent built: merchant, items, total_price, currency, tax, shipping, fees (the shape of POST /verify, without mandate_id)."
    },
    "mandate": {
      "type": "object",
      "title": "MandateIn",
      "required": [
        "user_id",
        "item_description",
        "category",
        "max_total_price",
        "expires_at"
      ],
      "properties": {
        "type": {
          "type": "string",
          "title": "Type",
          "default": "single_purchase"
        },
        "brand": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Brand",
          "default": null
        },
        "user_id": {
          "type": "string",
          "title": "User Id"
        },
        "category": {
          "type": "string",
          "title": "Category"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "expires_at": {
          "type": "string",
          "title": "Expires At"
        },
        "period_end": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Period End",
          "default": null
        },
        "price_basis": {
          "type": "string",
          "title": "Price Basis",
          "default": "grand_total"
        },
        "max_quantity": {
          "type": "integer",
          "title": "Max Quantity",
          "default": 1
        },
        "period_start": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Period Start",
          "default": null
        },
        "item_keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Item Keywords"
        },
        "period_budget": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Period Budget",
          "default": null
        },
        "max_total_price": {
          "type": "number",
          "title": "Max Total Price"
        },
        "item_description": {
          "type": "string",
          "title": "Item Description"
        },
        "category_required": {
          "type": "boolean",
          "title": "Category Required",
          "default": false
        },
        "merchant_allowlist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Allowlist",
          "default": null
        },
        "merchant_blocklist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Blocklist",
          "default": null
        },
        "variant_constraints": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Variant Constraints",
          "default": null
        }
      },
      "description": "The customer's instruction as a mandate object (the shape of the REST mandate endpoint for this kind). Provide either 'mandate' or 'mandate_id'."
    },
    "mandate_id": {
      "type": "string",
      "description": "The id of a mandate already created through the REST API. Provide either 'mandate' or 'mandate_id'."
    }
  }
}
provecart_check_order annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_check_booking — ProveCart: check a booking before payment or ticketing
Advertised by the server during the last successful anonymous check.

Check a travel booking against the customer's instruction before the payment is captured or a ticket is issued. Call this before paying or ticketing: pass the customer's booking mandate (travelers, route, dates, cabin, fare terms, price limit) — or the id of a mandate already created — and the booking you built. ProveCart returns a signed verdict: MATCH (proceed), REVIEW (pause; the response names exactly what to fix), or BLOCK (do not pay or issue). Every check leaves a sealed evidence record. ProveCart never holds or moves money. Non-MATCH responses follow the Agent Correction Format (ACF): a machine-readable corrections array (dimension, action, expected, actual, reason), a retry budget, and a sealed evidence pointer — spec: https://provecart.com/standards/correction-format. Requires an integrator API key in the X-API-Key header of the MCP request.

provecart_check_booking input schema
{
  "type": "object",
  "$defs": {
    "MerchantIn": {
      "type": "object",
      "title": "MerchantIn",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain",
          "default": null
        }
      }
    },
    "BookingLegIn": {
      "type": "object",
      "title": "BookingLegIn",
      "required": [
        "from_airport",
        "to_airport",
        "depart_at",
        "arrive_at"
      ],
      "properties": {
        "carrier": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Carrier",
          "default": null
        },
        "arrive_at": {
          "type": "string",
          "title": "Arrive At"
        },
        "depart_at": {
          "type": "string",
          "title": "Depart At"
        },
        "to_airport": {
          "type": "string",
          "title": "To Airport"
        },
        "from_airport": {
          "type": "string",
          "title": "From Airport"
        },
        "flight_number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Flight Number",
          "default": null
        }
      }
    },
    "BookingFareIn": {
      "type": "object",
      "title": "BookingFareIn",
      "properties": {
        "cabin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cabin",
          "default": null
        },
        "change_fee": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Change Fee",
          "default": null
        },
        "fare_class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fare Class",
          "default": null
        },
        "refundability": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Refundability",
          "default": null
        }
      }
    },
    "BookingStayIn": {
      "type": "object",
      "title": "BookingStayIn",
      "required": [
        "check_in",
        "check_out"
      ],
      "properties": {
        "bedding": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bedding",
          "default": null
        },
        "check_in": {
          "type": "string",
          "title": "Check In"
        },
        "check_out": {
          "type": "string",
          "title": "Check Out"
        },
        "occupancy": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Occupancy",
          "default": null
        },
        "room_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Room Type",
          "default": null
        },
        "property_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Property Name",
          "default": null
        }
      }
    },
    "BookingPriceIn": {
      "type": "object",
      "title": "BookingPriceIn",
      "required": [
        "total"
      ],
      "properties": {
        "taxes": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Taxes",
          "default": null
        },
        "total": {
          "type": "number",
          "title": "Total",
          "minimum": 0
        },
        "base_fare": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Base Fare",
          "default": null
        },
        "ancillaries": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Ancillaries",
          "default": null
        },
        "carrier_fees": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Carrier Fees",
          "default": null
        }
      }
    },
    "BookingEndpointIn": {
      "type": "object",
      "title": "BookingEndpointIn",
      "properties": {
        "city": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "City",
          "default": null
        },
        "airport": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Airport",
          "default": null
        }
      }
    },
    "BookingTravelerIn": {
      "type": "object",
      "title": "BookingTravelerIn",
      "required": [
        "name"
      ],
      "properties": {
        "dob": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Dob",
          "default": null
        },
        "name": {
          "type": "string",
          "title": "Name"
        }
      }
    }
  },
  "anyOf": [
    {
      "required": [
        "mandate"
      ]
    },
    {
      "required": [
        "mandate_id"
      ]
    }
  ],
  "required": [
    "booking"
  ],
  "properties": {
    "booking": {
      "type": "object",
      "title": "BookingVerifyIn",
      "required": [
        "merchant",
        "price"
      ],
      "properties": {
        "fare": {
          "anyOf": [
            {
              "$ref": "#/$defs/BookingFareIn"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BookingLegIn"
          },
          "title": "Legs"
        },
        "price": {
          "$ref": "#/$defs/BookingPriceIn"
        },
        "stays": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BookingStayIn"
          },
          "title": "Stays"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "merchant": {
          "$ref": "#/$defs/MerchantIn"
        },
        "travelers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Travelers"
        },
        "booking_changed": {
          "type": "boolean",
          "title": "Booking Changed",
          "default": false
        },
        "previous_record_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Record Id",
          "default": null
        }
      },
      "description": "The booking the agent built: travelers, legs, stays, fare, price, currency (the shape of POST /verify-booking, without mandate_id)."
    },
    "mandate": {
      "type": "object",
      "title": "BookingMandateIn",
      "required": [
        "user_id",
        "travelers",
        "origin",
        "destination",
        "departure_date",
        "max_total_price",
        "expires_at"
      ],
      "properties": {
        "cabin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cabin",
          "default": null
        },
        "hotel": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Hotel",
          "default": null
        },
        "origin": {
          "$ref": "#/$defs/BookingEndpointIn"
        },
        "user_id": {
          "type": "string",
          "title": "User Id"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "travelers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BookingTravelerIn"
          },
          "title": "Travelers"
        },
        "expires_at": {
          "type": "string",
          "title": "Expires At"
        },
        "fare_terms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Fare Terms",
          "default": null
        },
        "destination": {
          "$ref": "#/$defs/BookingEndpointIn"
        },
        "price_basis": {
          "type": "string",
          "title": "Price Basis",
          "default": "all_in"
        },
        "return_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Return Date",
          "default": null
        },
        "date_flex_days": {
          "type": "integer",
          "title": "Date Flex Days",
          "default": 0
        },
        "departure_date": {
          "type": "string",
          "title": "Departure Date"
        },
        "max_connections": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max Connections",
          "default": null
        },
        "max_total_price": {
          "type": "number",
          "title": "Max Total Price"
        },
        "departure_window": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Departure Window",
          "default": null
        },
        "merchant_allowlist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Allowlist",
          "default": null
        },
        "merchant_blocklist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Blocklist",
          "default": null
        },
        "max_layover_minutes": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max Layover Minutes",
          "default": null
        },
        "airport_substitution": {
          "type": "string",
          "title": "Airport Substitution",
          "default": "review"
        },
        "min_connection_minutes": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min Connection Minutes",
          "default": null
        },
        "allow_overnight_layover": {
          "type": "boolean",
          "title": "Allow Overnight Layover",
          "default": true
        },
        "acceptable_alternates_origin": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Acceptable Alternates Origin"
        },
        "allow_airport_change_connection": {
          "type": "boolean",
          "title": "Allow Airport Change Connection",
          "default": true
        },
        "acceptable_alternates_destination": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Acceptable Alternates Destination"
        }
      },
      "description": "The customer's instruction as a mandate object (the shape of the REST mandate endpoint for this kind). Provide either 'mandate' or 'mandate_id'."
    },
    "mandate_id": {
      "type": "string",
      "description": "The id of a mandate already created through the REST API. Provide either 'mandate' or 'mandate_id'."
    }
  }
}
provecart_check_booking annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_check_reservation — ProveCart: check a reservation before payment
Advertised by the server during the last successful anonymous check.

Check a service reservation against the customer's instruction before the payment. Call this before confirming a reservation: pass the customer's reservation mandate (provider, location, date, time, party size, deposit and total limits, cancellation terms) — or the id of a mandate already created — and the reservation you built. ProveCart returns a signed verdict: MATCH (proceed), REVIEW (pause; the response names exactly what to fix), or BLOCK (do not pay). Every check leaves a sealed evidence record. ProveCart never holds or moves money. Non-MATCH responses follow the Agent Correction Format (ACF): a machine-readable corrections array (dimension, action, expected, actual, reason), a retry budget, and a sealed evidence pointer — spec: https://provecart.com/standards/correction-format. Requires an integrator API key in the X-API-Key header of the MCP request.

provecart_check_reservation input schema
{
  "type": "object",
  "$defs": {
    "MerchantIn": {
      "type": "object",
      "title": "MerchantIn",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain",
          "default": null
        }
      }
    }
  },
  "anyOf": [
    {
      "required": [
        "mandate"
      ]
    },
    {
      "required": [
        "mandate_id"
      ]
    }
  ],
  "required": [
    "reservation"
  ],
  "properties": {
    "mandate": {
      "type": "object",
      "title": "ReservationMandateIn",
      "required": [
        "user_id",
        "service_description",
        "date",
        "time",
        "party_size",
        "name_on_reservation",
        "max_total_price",
        "expires_at"
      ],
      "properties": {
        "date": {
          "type": "string",
          "title": "Date"
        },
        "time": {
          "type": "string",
          "title": "Time"
        },
        "user_id": {
          "type": "string",
          "title": "User Id"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "location": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Location",
          "default": null
        },
        "expires_at": {
          "type": "string",
          "title": "Expires At"
        },
        "party_size": {
          "type": "integer",
          "title": "Party Size"
        },
        "max_deposit": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max Deposit",
          "default": null
        },
        "cancellation": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Cancellation",
          "default": null
        },
        "provider_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Provider Name",
          "default": null
        },
        "location_exact": {
          "type": "boolean",
          "title": "Location Exact",
          "default": false
        },
        "party_size_max": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Party Size Max",
          "default": null
        },
        "max_total_price": {
          "type": "number",
          "title": "Max Total Price"
        },
        "merchant_allowlist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Allowlist",
          "default": null
        },
        "merchant_blocklist": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Merchant Blocklist",
          "default": null
        },
        "name_on_reservation": {
          "type": "string",
          "title": "Name On Reservation"
        },
        "service_description": {
          "type": "string",
          "title": "Service Description"
        },
        "time_tolerance_minutes": {
          "type": "integer",
          "title": "Time Tolerance Minutes",
          "default": 0
        }
      },
      "description": "The customer's instruction as a mandate object (the shape of the REST mandate endpoint for this kind). Provide either 'mandate' or 'mandate_id'."
    },
    "mandate_id": {
      "type": "string",
      "description": "The id of a mandate already created through the REST API. Provide either 'mandate' or 'mandate_id'."
    },
    "reservation": {
      "type": "object",
      "title": "ReservationVerifyIn",
      "required": [
        "merchant",
        "date",
        "time",
        "party_size",
        "name_on_reservation",
        "total_amount"
      ],
      "properties": {
        "date": {
          "type": "string",
          "title": "Date"
        },
        "time": {
          "type": "string",
          "title": "Time"
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "default": "USD"
        },
        "location": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Location",
          "default": null
        },
        "merchant": {
          "$ref": "#/$defs/MerchantIn"
        },
        "party_size": {
          "type": "integer",
          "title": "Party Size"
        },
        "cancellation": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Cancellation",
          "default": null
        },
        "total_amount": {
          "type": "number",
          "title": "Total Amount",
          "minimum": 0
        },
        "provider_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Provider Name",
          "default": null
        },
        "deposit_amount": {
          "type": "number",
          "title": "Deposit Amount",
          "default": 0,
          "minimum": 0
        },
        "previous_record_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Record Id",
          "default": null
        },
        "name_on_reservation": {
          "type": "string",
          "title": "Name On Reservation"
        },
        "reservation_changed": {
          "type": "boolean",
          "title": "Reservation Changed",
          "default": false
        }
      },
      "description": "The reservation the agent built: provider, location, date, time, party size, name, deposit, total, cancellation (the shape of POST /verify-reservation, without mandate_id)."
    }
  }
}
provecart_check_reservation annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_agent_register — ProveCart: register an agent for certification
Advertised by the server during the last successful anonymous check.

Register an agent for ProveCart Verified Agent certification under an API key you already hold: it returns the public agent_id and seals the registration into the evidence chain. Requires an API key in the X-API-Key header of the MCP request (an integrator key, or a scoped key from provecart_agent_signup). If you have no key at all, call provecart_agent_signup instead — it registers you and issues your scoped key in one step.

provecart_agent_register input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "agent_name": {
      "type": "string",
      "description": "Optional. The agent's public name; it appears on the scoreboard after a completed self-test. Leave it out and the agent may choose its own name later via POST /agents/name."
    },
    "builder_contact": {
      "type": "string",
      "description": "Optional contact for the builder (email or URL)."
    }
  }
}
provecart_agent_register annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_agent_selftest — ProveCart: run the Verified Agent self-test
Advertised by the server during the last successful anonymous check.

Run the ProveCart Verified Agent self-test under your registration. Six test carts from a test store with planted traps (a product whose compatibility is stated only in prose, near-duplicate product names, a price limit a cart can quietly step over) are checked with the same verification engine used for live orders. Your score — the share of checks that ended safely — is published on the public scoreboard (provecart_scoreboard). Only the API key that registered the agent can run its self-test. Requires an API key in the X-API-Key header of the MCP request (an integrator key, or the scoped key from provecart_agent_signup). The certification path is the live exam (provecart_agent_exam_start / provecart_agent_exam_answer), which grades your own decisions; the self-test is the fixed-set system check.

provecart_agent_selftest input schema
{
  "type": "object",
  "required": [
    "agent_id"
  ],
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "The agent_id returned by provecart_agent_register."
    }
  }
}
provecart_agent_selftest annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_scoreboard — ProveCart: Verified Agent scoreboard
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the public ProveCart Verified Agent scoreboard: every agent that has completed a test (the live exam, the fixed self-test, or the canonical generated exam), with its latest run's published score, the number of checks in that run, and when it was last tested. Only agents that completed a test are listed. No API key required.

provecart_scoreboard input schema
{
  "type": "object",
  "properties": {}
}
provecart_scoreboard annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
provecart_certification_info — ProveCart: how Verified Agent certification works
Advertised by the server during the last successful anonymous check.
Advertised read-only

Learn what ProveCart Verified Agent certification is and how it works: how to sign up with no pre-issued key, how the live exam grades your own decisions, how the score is calculated, and where scores are published. No API key required.

provecart_certification_info input schema
{
  "type": "object",
  "properties": {}
}
provecart_certification_info annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
provecart_agent_signup — ProveCart: sign up for Verified Agent (no key needed)
Advertised by the server during the last successful anonymous check.

Start here if you have no ProveCart API key. Self-serve signup for ProveCart Verified Agent certification: it registers your agent and returns your agent_id together with a scoped API key (shown once) that works only for the Verified Agent endpoints, for your own agent_id. Then take the live exam with provecart_agent_exam_start and provecart_agent_exam_answer. Free; no API key required for this call.

provecart_agent_signup input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "agent_name": {
      "type": "string",
      "description": "Optional. Your agent's public name; it appears on the scoreboard after a completed exam. Leave it out and the agent may choose its own name later via POST /agents/name."
    },
    "builder_contact": {
      "type": "string",
      "description": "Optional contact for the builder (email or URL)."
    }
  }
}
provecart_agent_signup annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_agent_exam_start — ProveCart: start the live certification exam
Advertised by the server during the last successful anonymous check.

Open a live Verified Agent exam session for your agent_id. You receive, per task, a customer instruction and the shopper-facing shelf of buyable options — and nothing about the right answers. Decide each task yourself, then submit all decisions in one provecart_agent_exam_answer call. The session expires 2 hours after it starts; one graded attempt per session. Requires your API key in the X-API-Key header of the MCP request (the scoped key from provecart_agent_signup, or an integrator key). Only the key that registered the agent can open its session.

provecart_agent_exam_start input schema
{
  "type": "object",
  "required": [
    "agent_id"
  ],
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "The agent_id returned by provecart_agent_signup or provecart_agent_register."
    }
  }
}
provecart_agent_exam_start annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}
provecart_agent_exam_answer — ProveCart: submit your live exam decisions
Advertised by the server during the last successful anonymous check.

Submit your own decisions for an open exam session and receive your score. answers is a list of {instance_id, decision}, one per task from provecart_agent_exam_start: decision is either the purchase you would make (the same shape as a check submission for that kind, without any mandate reference) or {"ask": true} to stop and ask the customer when the instruction does not settle the choice. Tasks with no answer count as unsafe. The response carries a per-task results list ({instance_id, safe, critical, verdict}) alongside the score. The run is sealed and the score is published on the scoreboard; 80.0 or above certifies. Requires your API key in the X-API-Key header of the MCP request.

provecart_agent_exam_answer input schema
{
  "type": "object",
  "required": [
    "agent_id",
    "session_id",
    "answers"
  ],
  "properties": {
    "answers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "instance_id",
          "decision"
        ],
        "properties": {
          "decision": {
            "type": "object"
          },
          "instance_id": {
            "type": "string"
          }
        }
      },
      "description": "One entry per task: {instance_id, decision}."
    },
    "agent_id": {
      "type": "string",
      "description": "Your agent_id."
    },
    "session_id": {
      "type": "string",
      "description": "The session_id returned by provecart_agent_exam_start."
    }
  }
}
provecart_agent_exam_answer annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

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
281 ms
95th percentile latency
281 ms

Maintenance history

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

  • · probe · passed · 281 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 provecart-mcp https://api.provecart.com/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 provecart-mcp --url https://api.provecart.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable provecart-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "provecart-mcp": {
      "url": "https://api.provecart.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "provecart-mcp": {
      "type": "streamableHttp",
      "url": "https://api.provecart.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start provecart-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "provecart-mcp": {
      "type": "http",
      "url": "https://api.provecart.com/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 provecart-mcp https://api.provecart.com/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://api.provecart.com/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": {
    "provecart-mcp": {
      "serverUrl": "https://api.provecart.com/mcp"
    }
  }
}

Let your agent find its tools

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

Do you run ProveCart MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing