Skip to main content
Glama
This connector has been deprecated

This connector has been taken down for the time being

Server Details

Ready for a new way to bill pay? Pay any US bill in a snap, right from your AI assistant. Describe or snap a photo of your bill (electric, water, gas, internet, phone, medical, credit card, rent, parking tickets, traffic violations and more) and Papaya reads it, then hands you a secure link to pay by card. Fast, secure, and no juggling twelve logins, with full or partial payments and status updates. Available in the US only. Powered by Papaya (papayapay.com).

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
91.0% over 71 days
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct phase of the bill-payment lifecycle: analyze/create, optional card check, final confirmation, status lookup, auth refresh, and cancellation. The descriptions clearly delineate optional versus mandatory steps, so an agent can reliably select the right tool. No two tools share overlapping purposes.

Naming Consistency5/5

All six tools follow a consistent snake_case verb_noun pattern (analyze_bill, check_payment_method, confirm_payment_intent, fetch_bill_status, get_new_auth_token, request_bill_cancellation). The verbs are distinct yet uniform in style, with no mixing of camelCase or other conventions.

Tool Count5/5

With 6 tools, the set is well-scoped for a bill-payment server: it covers creation, verification, submission, status checking, cancellation, and authentication without extraneous operations. Each tool earns its place in the workflow.

Completeness4/5

The core lifecycle from bill analysis through payment, status check, and cancellation is covered, including an auth-refresh fallback. Minor gaps exist, such as no dedicated tool for listing/querying past bills or updating a user profile, but these can be worked around by re-running analyze_bill or using returned identifiers.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedanalyze_bill10 fields changed
      • removedInput schema / properties / bill_description / properties / amountDue / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / bill_description / properties / amountDue / default
        Removed value: -null
      • changedInput schema / properties / bill_description / properties / amountDue / description
        Previous value: -"Total balance due on the bill (the full amount owed), as read from the bill. This is NOT necessarily what the user will pay - see amount_to_pay."New value: +"Required. Total balance due on the bill (the full amount owed), as read from the bill. This is NOT necessarily what the user will pay - see amount_to_pay."
      • addedInput schema / properties / bill_description / properties / amountDue / type
        Added value: +"number"
      • removedInput schema / properties / bill_description / properties / amount_to_pay / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / bill_description / properties / amount_to_pay / default
        Removed value: -null
      • changedInput schema / properties / bill_description / properties / amount_to_pay / description
        Previous value: -"The amount the user wants to pay now. May be a partial payment, distinct from amountDue (the bill total). Ask the user how much they want to pay before calling; set equal to amountDue to pay in full. Passing it previews any fee for that amount in the result."New value: +"Required. The amount to pay now (used to preview fees here; the charge happens at confirm_payment_intent). May be a partial payment, distinct from amountDue. Ask the user how much to pay - never invent it."
      • addedInput schema / properties / bill_description / properties / amount_to_pay / type
        Added value: +"number"
      • removedInput schema / properties / bill_description / properties / user_amount_statement
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "maxLength": 200,
        -      "minLength": 3,
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Required proof that you asked the user how much to pay and they answered: quote what the user actually said (e.g. 'pay the full 150' or 'just 50 this month'). You MUST have asked the user before setting amount_to_pay - never invent the amount or this quote.",
        -  "title": "User Amount Statement"
        -}
      • changedInput schema / properties / bill_description / required
        Previous value: -[
        -  "remitAddress",
        -  "billerName"
        -]New value: +[
        +  "remitAddress",
        +  "amountDue",
        +  "amount_to_pay",
        +  "billerName"
        +]
    • Changedconfirm_payment_intent2 fields changed
      • removedInput schema / properties / confirm_input / properties / fee_approved
        Removed value: -{
        -  "description": "True if any fees on the payment have been disclosed to the user and they accepted them",
        -  "title": "Fee Approved",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / confirm_input / required
        Previous value: -[
        -  "user_id",
        -  "bill_id",
        -  "auth_token",
        -  "refresh_token",
        -  "amount_to_pay",
        -  "user_amount_statement",
        -  "email",
        -  "fee_approved"
        -]New value: +[
        +  "user_id",
        +  "bill_id",
        +  "auth_token",
        +  "refresh_token",
        +  "amount_to_pay",
        +  "user_amount_statement",
        +  "email"
        +]
  2. 1 tool update
    • Changedanalyze_bill8 fields changed
      • removedInput schema / properties / bill_description / properties / remitAddress / anyOf
        Removed value: -[
        -  {
        -    "properties": {
        -      "address": {
        -        "maxLength": 100,
        -        "minLength": 5,
        -        "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        -        "title": "Address",
        -        "type": "string"
        -      },
        -      "city": {
        -        "maxLength": 50,
        -        "minLength": 2,
        -        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -        "title": "City",
        -        "type": "string"
        -      },
        -      "name": {
        -        "maxLength": 50,
        -        "minLength": 2,
        -        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -        "title": "Name",
        -        "type": "string"
        -      },
        -      "stateCode": {
        -        "pattern": "^[A-Z]{2}$",
        -        "title": "Statecode",
        -        "type": "string"
        -      },
        -      "zip": {
        -        "pattern": "^\\d{5}(-\\d{4})?$",
        -        "title": "Zip",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "address",
        -      "city",
        -      "stateCode",
        -      "zip"
        -    ],
        -    "title": "BillingAddress",
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / bill_description / properties / remitAddress / default
        Removed value: -null
      • changedInput schema / properties / bill_description / properties / remitAddress / description
        Previous value: -"Biller remit-to address (where payment is sent). This is the key field for identifying the correct biller - an incorrect or missing remit-to address can cause the bill to be matched to the wrong biller, delaying or failing the payment. Always provide it from the bill. If the bill does not show a remit-to address, research the biller's official remit-to/payment address online and use that rather than leaving it empty."New value: +"Biller remit-to address (where payment is sent). REQUIRED - a bill cannot be analyzed without it. It is the key signal for safely identifying the biller; without a remit-to address (or another strong identifier) the biller may not be identifiable and the bill will be unpayable. Always provide it: take it from the bill, or if the bill does not show one, identify the biller and research their official remit-to / payment address online. Never omit it or invent a placeholder - if you cannot determine a real remit-to address, ask the user for it."
      • addedInput schema / properties / bill_description / properties / remitAddress / properties
        Added value: +{
        +  "address": {
        +    "maxLength": 100,
        +    "minLength": 5,
        +    "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        +    "title": "Address",
        +    "type": "string"
        +  },
        +  "city": {
        +    "maxLength": 50,
        +    "minLength": 2,
        +    "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +    "title": "City",
        +    "type": "string"
        +  },
        +  "name": {
        +    "maxLength": 50,
        +    "minLength": 2,
        +    "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +    "title": "Name",
        +    "type": "string"
        +  },
        +  "stateCode": {
        +    "pattern": "^[A-Z]{2}$",
        +    "title": "Statecode",
        +    "type": "string"
        +  },
        +  "zip": {
        +    "pattern": "^\\d{5}(-\\d{4})?$",
        +    "title": "Zip",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / bill_description / properties / remitAddress / required
        Added value: +[
        +  "name",
        +  "address",
        +  "city",
        +  "stateCode",
        +  "zip"
        +]
      • addedInput schema / properties / bill_description / properties / remitAddress / title
        Added value: +"BillingAddress"
      • addedInput schema / properties / bill_description / properties / remitAddress / type
        Added value: +"object"
      • changedInput schema / properties / bill_description / required
        Previous value: -[
        -  "billerName"
        -]New value: +[
        +  "remitAddress",
        +  "billerName"
        +]
  3. 1 tool update
    • Changedanalyze_bill3 fields changed
      • changedInput schema / properties / bill_description / properties / account / description
        Previous value: -"User Account on the bill, if none ticket number"New value: +"The user's account or customer number on the bill (the biller's identifier for the user's account). Capture it whenever the bill shows one. Put any invoice, ticket, or reference number in otherInfo (in addition to the account number - some billers need both), not here."
      • changedInput schema / properties / bill_description / properties / otherInfo / description
        Previous value: -"Other information extracted from the bill that helps identify the provider or complete the payment (like code, pin, pass ...). If the bill shows a payment phone number, include it here (e.g. 'pay_by_phone': '1-800-555-1234') - like the remit-to address it helps identify the correct biller. For a web-payment URL use the payUrl field instead, not this map."New value: +"Other information extracted from the bill that helps identify the provider or complete the payment (like code, pin, pass ...). Also capture the user's charge identifiers here - invoice number, ticket number, or reference number (e.g. 'invoice_number': '12345', 'reference_number': 'A1B2C3') - whenever the bill shows them, even if it also has an account number: some billers' payment automation needs the account number plus one of these. If the bill shows a payment phone number, include it here too (e.g. 'pay_by_phone': '1-800-555-1234') - like the remit-to address it helps identify the correct biller. For a web-payment URL use the payUrl field instead, not this map."
      • changedInput schema / properties / bill_description / properties / userAddress / description
        Previous value: -"User address"New value: +"The payer's identity: the user's name and billing address (who is paying). Billers use this to attribute the payment to the right person, so a missing or wrong payer identity can cause the payment to be rejected or misapplied. Take it from the bill's account-holder / addressee section if shown; otherwise ask the user for their name and billing address rather than leaving it empty."
  4. 6 tool updates
    • Changedanalyze_bill6 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "BillDescription": {
        -    "properties": {
        -      "account": {
        -        "anyOf": [
        -          {
        -            "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "User Account on the bill, if none ticket number",
        -        "title": "Account"
        -      },
        -      "amountDue": {
        -        "anyOf": [
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "Total balance due on the bill (the full amount owed), as read from the bill. This is NOT necessarily what the user will pay - see amount_to_pay.",
        -        "title": "Amountdue"
        -      },
        -      "amount_to_pay": {
        -        "anyOf": [
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "The amount the user wants to pay now. May be a partial payment, distinct from amountDue (the bill total). Ask the user how much they want to pay before calling; set equal to amountDue to pay in full. Passing it previews any fee for that amount in the result.",
        -        "title": "Amount To Pay"
        -      },
        -      "auth_token": {
        -        "anyOf": [
        -          {
        -            "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "authorization token attached to the user (if a user already exists from a previous bill payment). MUST be the most recent/current auth_token (check latest call with the same user id, possibly in a previous session). Depending how long ago the previous payment was made, may first need to obtain a new token.",
        -        "title": "Auth Token"
        -      },
        -      "billerName": {
        -        "description": "Name of the biller",
        -        "maxLength": 50,
        -        "minLength": 2,
        -        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -        "title": "Billername",
        -        "type": "string"
        -      },
        -      "correspondenceAddress": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/BillingAddress"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "Biller correspondence address"
        -      },
        -      "dueDate": {
        -        "anyOf": [
        -          {
        -            "pattern": "\\d{1,2}\\s?(/|-)\\s?\\d{1,2}\\s?(/|-)\\s?(\\d{4}|\\d{2})",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "Due date for the bill in MM/DD/YYYY format MM/DD/YY is acceptable",
        -        "title": "Duedate"
        -      },
        -      "otherInfo": {
        -        "default": {},
        -        "description": "Other information extracted from the bill that helps identify the provider or complete the payment (like code, pin, pass ...). If the bill shows a payment phone number, include it here (e.g. 'pay_by_phone': '1-800-555-1234') - like the remit-to address it helps identify the correct biller. For a web-payment URL use the payUrl field instead, not this map.",
        -        "patternProperties": {
        -          "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$": {
        -            "anyOf": [
        -              {
        -                "type": "number"
        -              },
        -              {
        -                "type": "integer"
        -              },
        -              {
        -                "maxLength": 75,
        -                "minLength": 2,
        -                "pattern": "^[a-zA-Z0-9 \\-\\./,'&@*#:?=+()]+$",
        -                "type": "string"
        -              }
        -            ]
        -          }
        -        },
        -        "propertyNames": {
        -          "maxLength": 50,
        -          "minLength": 2
        -        },
        -        "title": "Otherinfo",
        -        "type": "object"
        -      },
        -      "payUrl": {
        -        "anyOf": [
        -          {
        -            "maxLength": 120,
        -            "minLength": 4,
        -            "pattern": "^[a-zA-Z0-9\\-._~:/?#\\[\\]@!$&'()*+,;=%]+$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "The web address where the bill can be paid online (the 'pay at' / 'pay online' URL printed on the bill), e.g. https://www.biller.com/pay. Like the remit-to address it strongly identifies the correct biller, so include it whenever the bill shows one to reduce the risk of a misidentified, failed, or delayed payment. Must be a single URL of at most 120 characters (just the base 'pay online' address, no extra text); omit it rather than sending anything longer.",
        -        "title": "Payurl"
        -      },
        -      "remitAddress": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/BillingAddress"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "Biller remit-to address (where payment is sent). This is the key field for identifying the correct biller - an incorrect or missing remit-to address can cause the bill to be matched to the wrong biller, delaying or failing the payment. Always provide it from the bill. If the bill does not show a remit-to address, research the biller's official remit-to/payment address online and use that rather than leaving it empty."
        -      },
        -      "userAddress": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/BillingAddress"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "User address"
        -      },
        -      "user_amount_statement": {
        -        "anyOf": [
        -          {
        -            "maxLength": 200,
        -            "minLength": 3,
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "Required proof that you asked the user how much to pay and they answered: quote what the user actually said (e.g. 'pay the full 150' or 'just 50 this month'). You MUST have asked the user before setting amount_to_pay - never invent the amount or this quote.",
        -        "title": "User Amount Statement"
        -      },
        -      "user_id": {
        -        "anyOf": [
        -          {
        -            "pattern": "^[a-zA-Z0-9]{10}$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "identifier for the user if a user already exists from a previous bill payment",
        -        "title": "User Id"
        -      }
        -    },
        -    "required": [
        -      "billerName"
        -    ],
        -    "title": "BillDescription",
        -    "type": "object"
        -  },
        -  "BillingAddress": {
        -    "properties": {
        -      "address": {
        -        "maxLength": 100,
        -        "minLength": 5,
        -        "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        -        "title": "Address",
        -        "type": "string"
        -      },
        -      "city": {
        -        "maxLength": 50,
        -        "minLength": 2,
        -        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -        "title": "City",
        -        "type": "string"
        -      },
        -      "name": {
        -        "maxLength": 50,
        -        "minLength": 2,
        -        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -        "title": "Name",
        -        "type": "string"
        -      },
        -      "stateCode": {
        -        "pattern": "^[A-Z]{2}$",
        -        "title": "Statecode",
        -        "type": "string"
        -      },
        -      "zip": {
        -        "pattern": "^\\d{5}(-\\d{4})?$",
        -        "title": "Zip",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "address",
        -      "city",
        -      "stateCode",
        -      "zip"
        -    ],
        -    "title": "BillingAddress",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / bill_description / $ref
        Removed value: -"#/$defs/BillDescription"
      • addedInput schema / properties / bill_description / properties
        Added value: +{
        +  "account": {
        +    "anyOf": [
        +      {
        +        "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "User Account on the bill, if none ticket number",
        +    "title": "Account"
        +  },
        +  "amountDue": {
        +    "anyOf": [
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "Total balance due on the bill (the full amount owed), as read from the bill. This is NOT necessarily what the user will pay - see amount_to_pay.",
        +    "title": "Amountdue"
        +  },
        +  "amount_to_pay": {
        +    "anyOf": [
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "The amount the user wants to pay now. May be a partial payment, distinct from amountDue (the bill total). Ask the user how much they want to pay before calling; set equal to amountDue to pay in full. Passing it previews any fee for that amount in the result.",
        +    "title": "Amount To Pay"
        +  },
        +  "auth_token": {
        +    "anyOf": [
        +      {
        +        "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "authorization token attached to the user (if a user already exists from a previous bill payment). MUST be the most recent/current auth_token (check latest call with the same user id, possibly in a previous session). Depending how long ago the previous payment was made, may first need to obtain a new token.",
        +    "title": "Auth Token"
        +  },
        +  "billerName": {
        +    "description": "Name of the biller",
        +    "maxLength": 50,
        +    "minLength": 2,
        +    "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +    "title": "Billername",
        +    "type": "string"
        +  },
        +  "correspondenceAddress": {
        +    "anyOf": [
        +      {
        +        "properties": {
        +          "address": {
        +            "maxLength": 100,
        +            "minLength": 5,
        +            "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        +            "title": "Address",
        +            "type": "string"
        +          },
        +          "city": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "City",
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "Name",
        +            "type": "string"
        +          },
        +          "stateCode": {
        +            "pattern": "^[A-Z]{2}$",
        +            "title": "Statecode",
        +            "type": "string"
        +          },
        +          "zip": {
        +            "pattern": "^\\d{5}(-\\d{4})?$",
        +            "title": "Zip",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "address",
        +          "city",
        +          "stateCode",
        +          "zip"
        +        ],
        +        "title": "BillingAddress",
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "Biller correspondence address"
        +  },
        +  "dueDate": {
        +    "anyOf": [
        +      {
        +        "pattern": "\\d{1,2}\\s?(/|-)\\s?\\d{1,2}\\s?(/|-)\\s?(\\d{4}|\\d{2})",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "Due date for the bill in MM/DD/YYYY format MM/DD/YY is acceptable",
        +    "title": "Duedate"
        +  },
        +  "otherInfo": {
        +    "default": {},
        +    "description": "Other information extracted from the bill that helps identify the provider or complete the payment (like code, pin, pass ...). If the bill shows a payment phone number, include it here (e.g. 'pay_by_phone': '1-800-555-1234') - like the remit-to address it helps identify the correct biller. For a web-payment URL use the payUrl field instead, not this map.",
        +    "patternProperties": {
        +      "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$": {
        +        "anyOf": [
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "maxLength": 75,
        +            "minLength": 2,
        +            "pattern": "^[a-zA-Z0-9 \\-\\./,'&@*#:?=+()]+$",
        +            "type": "string"
        +          }
        +        ]
        +      }
        +    },
        +    "propertyNames": {
        +      "maxLength": 50,
        +      "minLength": 2
        +    },
        +    "title": "Otherinfo",
        +    "type": "object"
        +  },
        +  "payUrl": {
        +    "anyOf": [
        +      {
        +        "maxLength": 120,
        +        "minLength": 4,
        +        "pattern": "^[a-zA-Z0-9\\-._~:/?#\\[\\]@!$&'()*+,;=%]+$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "The web address where the bill can be paid online (the 'pay at' / 'pay online' URL printed on the bill), e.g. https://www.biller.com/pay. Like the remit-to address it strongly identifies the correct biller, so include it whenever the bill shows one to reduce the risk of a misidentified, failed, or delayed payment. Must be a single URL of at most 120 characters (just the base 'pay online' address, no extra text); omit it rather than sending anything longer.",
        +    "title": "Payurl"
        +  },
        +  "remitAddress": {
        +    "anyOf": [
        +      {
        +        "properties": {
        +          "address": {
        +            "maxLength": 100,
        +            "minLength": 5,
        +            "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        +            "title": "Address",
        +            "type": "string"
        +          },
        +          "city": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "City",
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "Name",
        +            "type": "string"
        +          },
        +          "stateCode": {
        +            "pattern": "^[A-Z]{2}$",
        +            "title": "Statecode",
        +            "type": "string"
        +          },
        +          "zip": {
        +            "pattern": "^\\d{5}(-\\d{4})?$",
        +            "title": "Zip",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "address",
        +          "city",
        +          "stateCode",
        +          "zip"
        +        ],
        +        "title": "BillingAddress",
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "Biller remit-to address (where payment is sent). This is the key field for identifying the correct biller - an incorrect or missing remit-to address can cause the bill to be matched to the wrong biller, delaying or failing the payment. Always provide it from the bill. If the bill does not show a remit-to address, research the biller's official remit-to/payment address online and use that rather than leaving it empty."
        +  },
        +  "userAddress": {
        +    "anyOf": [
        +      {
        +        "properties": {
        +          "address": {
        +            "maxLength": 100,
        +            "minLength": 5,
        +            "pattern": "^[a-zA-Z0-9\\s\\-\\.',#]+$",
        +            "title": "Address",
        +            "type": "string"
        +          },
        +          "city": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "City",
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "title": "Name",
        +            "type": "string"
        +          },
        +          "stateCode": {
        +            "pattern": "^[A-Z]{2}$",
        +            "title": "Statecode",
        +            "type": "string"
        +          },
        +          "zip": {
        +            "pattern": "^\\d{5}(-\\d{4})?$",
        +            "title": "Zip",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "address",
        +          "city",
        +          "stateCode",
        +          "zip"
        +        ],
        +        "title": "BillingAddress",
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "User address"
        +  },
        +  "user_amount_statement": {
        +    "anyOf": [
        +      {
        +        "maxLength": 200,
        +        "minLength": 3,
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "Required proof that you asked the user how much to pay and they answered: quote what the user actually said (e.g. 'pay the full 150' or 'just 50 this month'). You MUST have asked the user before setting amount_to_pay - never invent the amount or this quote.",
        +    "title": "User Amount Statement"
        +  },
        +  "user_id": {
        +    "anyOf": [
        +      {
        +        "pattern": "^[a-zA-Z0-9]{10}$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "identifier for the user if a user already exists from a previous bill payment",
        +    "title": "User Id"
        +  }
        +}
      • addedInput schema / properties / bill_description / required
        Added value: +[
        +  "billerName"
        +]
      • addedInput schema / properties / bill_description / title
        Added value: +"BillDescription"
      • addedInput schema / properties / bill_description / type
        Added value: +"object"
    • Changedcheck_payment_method7 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "PaymentMethodCheckInput": {
        -    "description": "Identifiers to look up whether a card has been set on a bill yet.",
        -    "properties": {
        -      "bill_id": {
        -        "description": "identifier for the bill",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "Bill Id",
        -        "type": "string"
        -      },
        -      "user_id": {
        -        "description": "identifier for the user the bill belongs to",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "User Id",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "user_id",
        -      "bill_id"
        -    ],
        -    "title": "PaymentMethodCheckInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / check_input / $ref
        Removed value: -"#/$defs/PaymentMethodCheckInput"
      • addedInput schema / properties / check_input / description
        Added value: +"Identifiers to look up whether a card has been set on a bill yet."
      • addedInput schema / properties / check_input / properties
        Added value: +{
        +  "bill_id": {
        +    "description": "identifier for the bill",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "Bill Id",
        +    "type": "string"
        +  },
        +  "user_id": {
        +    "description": "identifier for the user the bill belongs to",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "User Id",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / check_input / required
        Added value: +[
        +  "user_id",
        +  "bill_id"
        +]
      • addedInput schema / properties / check_input / title
        Added value: +"PaymentMethodCheckInput"
      • addedInput schema / properties / check_input / type
        Added value: +"object"
    • Changedconfirm_payment_intent6 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "ConfirmInput": {
        -    "properties": {
        -      "amount_to_pay": {
        -        "description": "The amount the user has chosen to pay - this is what gets charged. May be a partial payment (less than the bill's full balance). Use the amount the user agreed to when the bill was analyzed, unless they have since changed it.",
        -        "title": "Amount To Pay",
        -        "type": "number"
        -      },
        -      "auth_token": {
        -        "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        -        "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        -        "title": "Auth Token",
        -        "type": "string"
        -      },
        -      "bill_id": {
        -        "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "Bill Id",
        -        "type": "string"
        -      },
        -      "email": {
        -        "description": "The user's real email, used to send them payment-status updates. You MUST ask the user for it (or reuse an email they gave earlier in this conversation) and confirm the spelling. NEVER invent, guess, or derive it from their name or the bill - a made-up email means the user gets no updates and could send their payment notifications to a stranger.",
        -        "maxLength": 254,
        -        "pattern": "^[a-zA-Z0-9]+([a-zA-Z0-9._%+-]*[a-zA-Z0-9])?@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
        -        "title": "Email",
        -        "type": "string"
        -      },
        -      "entered_account": {
        -        "anyOf": [
        -          {
        -            "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "(optional) if the user wishes to change the value extracted for the account by the bill analysis or provided during maual creation, provide the new value here",
        -        "title": "Entered Account"
        -      },
        -      "entered_provider": {
        -        "anyOf": [
        -          {
        -            "maxLength": 50,
        -            "minLength": 2,
        -            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "description": "(optional) if the user wishes to change the provider name extracted by bill analysis or use during manual bill creation provide the new value here",
        -        "title": "Entered Provider"
        -      },
        -      "extra_infos": {
        -        "default": {},
        -        "description": "dictionary of information provided by the user as {<fieldname1>:<value1> , <fieldname2>:<value2> ,...}",
        -        "patternProperties": {
        -          "^[a-zA-Z0-9_]{2,20}$": {
        -            "anyOf": [
        -              {
        -                "maxLength": 50,
        -                "minLength": 2,
        -                "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        -                "type": "string"
        -              },
        -              {
        -                "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        -                "type": "string"
        -              },
        -              {
        -                "pattern": "\\d{1,2}\\s?(/|-)\\s?\\d{1,2}\\s?(/|-)\\s?\\d{4}",
        -                "type": "string"
        -              }
        -            ]
        -          }
        -        },
        -        "title": "Extra Infos",
        -        "type": "object"
        -      },
        -      "fee_approved": {
        -        "description": "True if any fees on the payment have been disclosed to the user and they accepted them",
        -        "title": "Fee Approved",
        -        "type": "boolean"
        -      },
        -      "phone": {
        -        "default": "2223334444",
        -        "description": "phone number for the user (use the default if you do not have a real one)",
        -        "pattern": "^(\\+?1[\\s.\\-]?)?(\\([2-9]\\d{2}\\)|[2-9]\\d{2})[\\s.\\-\\\\\\/]?\\d{3}[\\s.\\-\\\\\\/]?\\d{4}$",
        -        "title": "Phone",
        -        "type": "string"
        -      },
        -      "refresh_token": {
        -        "description": "Refresh token obtained when the user was created during a bill analysis or as input to a previous confirm_payment_intent tool call in previous bill payment sessions",
        -        "pattern": "^r:[a-z0-9]{32}$",
        -        "title": "Refresh Token",
        -        "type": "string"
        -      },
        -      "user_amount_statement": {
        -        "description": "Required proof that you asked the user and they confirmed the amount: quote what the user actually said about how much to pay (e.g. 'pay the full 150' or 'just pay 50 this month'). You MUST have confirmed amount_to_pay with the user before calling this - never invent this.",
        -        "maxLength": 200,
        -        "minLength": 3,
        -        "title": "User Amount Statement",
        -        "type": "string"
        -      },
        -      "user_id": {
        -        "description": "identifier for the user that was provided as a result of bill extraction",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "User Id",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "user_id",
        -      "bill_id",
        -      "auth_token",
        -      "refresh_token",
        -      "amount_to_pay",
        -      "user_amount_statement",
        -      "email",
        -      "fee_approved"
        -    ],
        -    "title": "ConfirmInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / confirm_input / $ref
        Removed value: -"#/$defs/ConfirmInput"
      • addedInput schema / properties / confirm_input / properties
        Added value: +{
        +  "amount_to_pay": {
        +    "description": "The amount the user has chosen to pay - this is what gets charged. May be a partial payment (less than the bill's full balance). Use the amount the user agreed to when the bill was analyzed, unless they have since changed it.",
        +    "title": "Amount To Pay",
        +    "type": "number"
        +  },
        +  "auth_token": {
        +    "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        +    "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        +    "title": "Auth Token",
        +    "type": "string"
        +  },
        +  "bill_id": {
        +    "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "Bill Id",
        +    "type": "string"
        +  },
        +  "email": {
        +    "description": "The user's real email, used to send them payment-status updates. You MUST ask the user for it (or reuse an email they gave earlier in this conversation) and confirm the spelling. NEVER invent, guess, or derive it from their name or the bill - a made-up email means the user gets no updates and could send their payment notifications to a stranger.",
        +    "maxLength": 254,
        +    "pattern": "^[a-zA-Z0-9]+([a-zA-Z0-9._%+-]*[a-zA-Z0-9])?@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
        +    "title": "Email",
        +    "type": "string"
        +  },
        +  "entered_account": {
        +    "anyOf": [
        +      {
        +        "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "(optional) if the user wishes to change the value extracted for the account by the bill analysis or provided during maual creation, provide the new value here",
        +    "title": "Entered Account"
        +  },
        +  "entered_provider": {
        +    "anyOf": [
        +      {
        +        "maxLength": 50,
        +        "minLength": 2,
        +        "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "description": "(optional) if the user wishes to change the provider name extracted by bill analysis or use during manual bill creation provide the new value here",
        +    "title": "Entered Provider"
        +  },
        +  "extra_infos": {
        +    "default": {},
        +    "description": "dictionary of information provided by the user as {<fieldname1>:<value1> , <fieldname2>:<value2> ,...}",
        +    "patternProperties": {
        +      "^[a-zA-Z0-9_]{2,20}$": {
        +        "anyOf": [
        +          {
        +            "maxLength": 50,
        +            "minLength": 2,
        +            "pattern": "^(([a-zA-Z0-9 \\-\\_.,'&]+)|(N/A))$",
        +            "type": "string"
        +          },
        +          {
        +            "pattern": "^(([A-Za-z0-9\\s\\*\\.\\-#]{1,20})|(N/A))$",
        +            "type": "string"
        +          },
        +          {
        +            "pattern": "\\d{1,2}\\s?(/|-)\\s?\\d{1,2}\\s?(/|-)\\s?\\d{4}",
        +            "type": "string"
        +          }
        +        ]
        +      }
        +    },
        +    "title": "Extra Infos",
        +    "type": "object"
        +  },
        +  "fee_approved": {
        +    "description": "True if any fees on the payment have been disclosed to the user and they accepted them",
        +    "title": "Fee Approved",
        +    "type": "boolean"
        +  },
        +  "phone": {
        +    "default": "2223334444",
        +    "description": "phone number for the user (use the default if you do not have a real one)",
        +    "pattern": "^(\\+?1[\\s.\\-]?)?(\\([2-9]\\d{2}\\)|[2-9]\\d{2})[\\s.\\-\\\\\\/]?\\d{3}[\\s.\\-\\\\\\/]?\\d{4}$",
        +    "title": "Phone",
        +    "type": "string"
        +  },
        +  "refresh_token": {
        +    "description": "Refresh token obtained when the user was created during a bill analysis or as input to a previous confirm_payment_intent tool call in previous bill payment sessions",
        +    "pattern": "^r:[a-z0-9]{32}$",
        +    "title": "Refresh Token",
        +    "type": "string"
        +  },
        +  "user_amount_statement": {
        +    "description": "Required proof that you asked the user and they confirmed the amount: quote what the user actually said about how much to pay (e.g. 'pay the full 150' or 'just pay 50 this month'). You MUST have confirmed amount_to_pay with the user before calling this - never invent this.",
        +    "maxLength": 200,
        +    "minLength": 3,
        +    "title": "User Amount Statement",
        +    "type": "string"
        +  },
        +  "user_id": {
        +    "description": "identifier for the user that was provided as a result of bill extraction",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "User Id",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / confirm_input / required
        Added value: +[
        +  "user_id",
        +  "bill_id",
        +  "auth_token",
        +  "refresh_token",
        +  "amount_to_pay",
        +  "user_amount_statement",
        +  "email",
        +  "fee_approved"
        +]
      • addedInput schema / properties / confirm_input / title
        Added value: +"ConfirmInput"
      • addedInput schema / properties / confirm_input / type
        Added value: +"object"
    • Changedfetch_bill_status6 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "BillStatusInput": {
        -    "properties": {
        -      "auth_token": {
        -        "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        -        "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        -        "title": "Auth Token",
        -        "type": "string"
        -      },
        -      "bill_id": {
        -        "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "Bill Id",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "bill_id",
        -      "auth_token"
        -    ],
        -    "title": "BillStatusInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / bill_status_input / $ref
        Removed value: -"#/$defs/BillStatusInput"
      • addedInput schema / properties / bill_status_input / properties
        Added value: +{
        +  "auth_token": {
        +    "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        +    "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        +    "title": "Auth Token",
        +    "type": "string"
        +  },
        +  "bill_id": {
        +    "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "Bill Id",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / bill_status_input / required
        Added value: +[
        +  "bill_id",
        +  "auth_token"
        +]
      • addedInput schema / properties / bill_status_input / title
        Added value: +"BillStatusInput"
      • addedInput schema / properties / bill_status_input / type
        Added value: +"object"
    • Changedget_new_auth_token6 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "NewTokenInput": {
        -    "properties": {
        -      "refresh_token": {
        -        "description": "a  token used to refresh expired auth token provided by previous calls to analyze_bill or create_manual_bills",
        -        "pattern": "^r:[a-z0-9]{32}$",
        -        "title": "Refresh Token",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "refresh_token"
        -    ],
        -    "title": "NewTokenInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / new_token_input / $ref
        Removed value: -"#/$defs/NewTokenInput"
      • addedInput schema / properties / new_token_input / properties
        Added value: +{
        +  "refresh_token": {
        +    "description": "a  token used to refresh expired auth token provided by previous calls to analyze_bill or create_manual_bills",
        +    "pattern": "^r:[a-z0-9]{32}$",
        +    "title": "Refresh Token",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / new_token_input / required
        Added value: +[
        +  "refresh_token"
        +]
      • addedInput schema / properties / new_token_input / title
        Added value: +"NewTokenInput"
      • addedInput schema / properties / new_token_input / type
        Added value: +"object"
    • Changedrequest_bill_cancellation6 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "BillStatusInput": {
        -    "properties": {
        -      "auth_token": {
        -        "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        -        "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        -        "title": "Auth Token",
        -        "type": "string"
        -      },
        -      "bill_id": {
        -        "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        -        "pattern": "^[a-zA-Z0-9]{10}$",
        -        "title": "Bill Id",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "bill_id",
        -      "auth_token"
        -    ],
        -    "title": "BillStatusInput",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / bill_cancel_input / $ref
        Removed value: -"#/$defs/BillStatusInput"
      • addedInput schema / properties / bill_cancel_input / properties
        Added value: +{
        +  "auth_token": {
        +    "description": "authorization token attached to the user as obtained when submitting the bill, searching for a biller or getting a new auth token",
        +    "pattern": "^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$",
        +    "title": "Auth Token",
        +    "type": "string"
        +  },
        +  "bill_id": {
        +    "description": "identifier for the specific bill that was provided as a result of a bill extraction",
        +    "pattern": "^[a-zA-Z0-9]{10}$",
        +    "title": "Bill Id",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / bill_cancel_input / required
        Added value: +[
        +  "bill_id",
        +  "auth_token"
        +]
      • addedInput schema / properties / bill_cancel_input / title
        Added value: +"BillStatusInput"
      • addedInput schema / properties / bill_cancel_input / type
        Added value: +"object"
  5. 6 tool updates
    • First observedanalyze_bill
    • First observedcheck_payment_method
    • First observedconfirm_payment_intent
    • First observedfetch_bill_status
    • First observedget_new_auth_token
    • First observedrequest_bill_cancellation

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to pay PIX bills and transfers using USDT on Polygon or Solana, without a conventional account or mandatory KYC. Provides local encrypted wallet management, on-chain balance checks, natural-language and document-based payment parsing, contacts, coupons, quotes, scheduled and recurring payments, receipts, and unresolved-operation alerts.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables integration with Abacate Pay API for managing payments, customers, and billing through AI assistants. Supports multi-tenancy, PIX QR codes, discount coupons, and payment simulation with secure per-request API key authentication.
    15 npm
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to pay for online purchases and subscriptions using one-time prepaid USD Visa cards drawn from the user's own wallet. Every charge requires explicit user approval, and each card is loaded with only the needed amount and freezes after a single payment.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents to manage SplitBill bills and friends through natural language: create bills from receipts, list and filter bills, update payment statuses, search users, and view dashboard stats.
    7
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources