proabono
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROABONO_API_KEY | Yes | Basic auth password | |
| PROABONO_API_BASE | Yes | The API endpoint, e.g. https://api-{business_id}.proabono.com | |
| PROABONO_AGENT_KEY | Yes | Basic auth username | |
| PROABONO_BUSINESS_ID | Yes | Your numeric business identifier | |
| PROABONO_SEGMENT_REF | Yes | The Segment your customers and offers belong to | |
| PROABONO_PORTAL_SECRET | Yes | HMAC key for the portal security hash | |
| PROABONO_WEBHOOK_SECRET | Yes | Secret for the notification signature |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_infoA | Reports the version of the ProAbono MCP Installation server and confirms that its ProAbono configuration is complete. Returns variable names only -- never a key, a secret or an account identifier. Use it to check the server is reachable and configured before running an installation. |
| search_documentationA | Answers a natural-language question about integrating ProAbono from the official installation documentation: hosted pages, the security hash, subscription workflows, rights and usage, webhooks, testing and troubleshooting. Use it before writing any ProAbono integration code, and prefer it over recalling ProAbono behaviour. Returns the matching documentation sections with their source file. |
| get_api_referenceA | Returns the exact contract of a ProAbono Live API endpoint (parameters, whether each is required, request body schema, responses) or of a named object such as Customer, Subscription, Offer, Feature or Usage. Use it before calling or generating a call to the ProAbono API, so parameter names and shapes come from the contract rather than from memory. |
| list_offersA | Lists the ProAbono offers the configured Segment exposes, with the Features each one carries and its pricing. Read-only. Use it to show a catalogue, to pick the offer a subscription or a pricing table targets, or to check the prerequisite that at least one offer exists and carries at least one Feature. Reads every page, not just the first. |
| get_offerA | Retrieves a single ProAbono offer by its reference, with its Features, pricing and the Links it exposes. Read-only. Use it when the offer reference is already known. |
| list_featuresA | Lists the ProAbono Features of the account: the definitions the business owns, each with its type (OnOff, Limitation or Consumption). Read-only. These are what an application can gate access on. A Feature is the definition; a customer's value for it is a Usage, read with get_usages. Reads every page. |
| get_customerA | Retrieves a ProAbono customer by the reference shared with the merchant's application (ReferenceCustomer), with the Links its hosted pages are opened from. Read-only. Use it to check whether a logged-in user already exists as a ProAbono customer. |
| list_subscriptionsA | Lists ProAbono subscriptions, optionally those of one customer, with their state and the Features they carry. Read-only. Use it to see what a customer is actually subscribed to, or to explain why a customer has no rights. Reads every page. |
| get_usagesA | Reads a customer's Usages: what that customer may do right now, as ProAbono sees it, one entry per Feature carried by their running subscriptions. Read-only. This is the source an application gates access on -- never the offer reference. An empty result is ambiguous: check the customer's subscriptions with list_subscriptions before concluding they have no rights. |
| create_customerA | WRITE. Creates a ProAbono customer in the configured Segment, keyed by the reference the merchant's application uses for the logged-in user. The endpoint is an upsert on that reference: if a customer with it already exists, this updates them instead of failing. Provisioning the customer early -- at sign-up or first login -- is the recommended path, because the hosted pages and the rights read both need the customer to exist. |
| update_customerA | WRITE. Updates a ProAbono customer identified by its shared reference. The endpoint is an upsert: if no customer carries that reference, one is created rather than an error raised. Only the fields passed are changed. Do not pass a field the merchant's application is not the authority for -- the hosted pages let the customer edit their own name and language, and this overwrites what they set. |
| update_billing_addressC | WRITE. Updates the billing address of a ProAbono customer. Only the fields passed are changed. The address is what invoices are issued against, and the tax identifier is what VAT treatment is derived from, so it must be the customer's own data -- never a placeholder. |
| create_subscriptionA | WRITE. Creates a ProAbono subscription linking an existing customer to an offer. This is the API path; a customer choosing a plan themselves goes through a hosted subscription workflow instead. The subscription is created as a copy of the offer -- pass an override only where the merchant genuinely departs from their own catalogue. Set start_now to activate it immediately; a subscription left in Draft grants no rights. |
| change_subscriptionA | WRITE. Moves an existing ProAbono subscription: upgrade or downgrade it to another offer, start a draft one, suspend it, or terminate it. Identify the subscription by its internal identifier, which list_subscriptions returns. Terminating is not an immediate loss of access unless immediate is set -- by default it takes effect at the end of the current term. An upgrade terminates the current subscription and creates a new one on the target offer, so the customer's rights change: re-read them afterwards with get_usages. |
| install_customer_portalA | Generates the code that embeds the ProAbono Customer Portal inside a page of the merchant's own site -- current plan, invoices, payment method, billing address, usage -- for the signed-in customer. This is step 1 of the In-Site installation. Returns the server-side security hash computation, the route that renders the page, and the snippet to place in the template. Requires an authenticated customer area: the hosted pages always render for an identified customer. |
| generate_pricing_tableA | Generates the embed that renders the ProAbono pricing table inside a page of the merchant's site. Two flavours: anonymous for a public pricing page, or identified for a signed-in customer, who can then subscribe in place -- which needs the customer reference and the security hash. What happens when a plan is chosen is configured in the BackOffice, not in this code. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools target distinct resources and actions, but create_customer and update_customer are both documented as upserts, making it genuinely ambiguous which to call. get_usages and list_subscriptions are related enough to require careful description reading, though the descriptions do clarify their difference.
All tool names follow a consistent verb_noun snake_case pattern, such as list_, get_, create_, update_, change_, install_, and generate_. There are no mixed naming conventions or vague single-word tool names.
At 16 tools, the set is slightly above the typical well-scoped range, but each tool addresses a real aspect of the ProAbono domain: customers, subscriptions, offers, features, usage, documentation, and embed generation. The count feels justified rather than bloated.
The server covers the core workflows: customer provisioning, subscription creation and changes, offer/feature lookup, rights checking, documentation search, API contract retrieval, and portal/pricing embed generation. Minor gaps exist around direct invoice/payment or offer administration tools, but those may be intentionally handled outside this MCP surface.