ProAbono MCP Installation
OfficialServer 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, 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 map cleanly to distinct resources and actions, and descriptions explicitly separate get_usages from list_subscriptions. However, create_customer and update_customer are both upserts on the same reference, making their boundary genuinely fuzzy, and search_documentation versus get_api_reference could be confused by an agent.
All tool names follow a lowercase snake_case verb_noun pattern, which is consistent and readable. Minor deviations exist: get_usages uses get for a plural collection where list would fit the pattern, and change_subscription uses change rather than the update verb used elsewhere.
At 16 tools, the surface is slightly above the typical well-scoped range, but the extra tools are justified by the server's dual purpose of subscription lifecycle management and installation/documentation support. No tool feels purely redundant, though the count is on the heavier side.
The core lifecycle is well covered: customers can be created, read, and updated; subscriptions can be listed, created, and changed; and offers, features, and usages are readable. Minor gaps remain, such as no list_customers or direct get_subscription-by-ID, and invoice/payment data is only referenced through the portal rather than exposed as tools.