Upmind MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UPMIND_API_BASE | No | The base URL for the Upmind API. Defaults to https://api.upmind.io/api/admin. | https://api.upmind.io/api/admin |
| UPMIND_API_TOKEN | No | Your Upmind admin/staff API token. Required for live API tools, but documentation tools work without it. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_endpointsA | Search the Upmind API reference (1,270+ endpoints) by keyword. Supports multi-word queries; searches names, titles, descriptions, groups, and URLs. Use this to discover the right endpoint before calling live tools or building integrations. |
| get_endpoint_detailsA | Get full details for one API endpoint: parameters, response schema, headers, and permissions. Accepts the endpoint name (e.g. "GetAdminProducts") or an exact URL pattern. |
| list_api_groupsA | List all endpoint groups/categories in the Upmind API reference. |
| get_group_endpointsA | List every endpoint in one API group/category (e.g. "Contracts", "Admin_Products"). |
| list_brandsA | List all brands in the Upmind organisation with their IDs, domains, and currencies. |
| get_brandA | Get full details for one brand. |
| list_categoriesA | List product categories (with subcategories and product counts), optionally scoped to a brand. |
| create_categoryA | Create a new product category (or subcategory via parent_id) for a brand. |
| list_productsA | List products, filterable by brand, category, or exact name. |
| get_productA | Get full product details. Use "with" to include related data: prices, provision_field_values, allowed_migrations, options, products_attributes. |
| create_productA | Create a new product in a category. Sensible defaults: single product, single-option order type, monthly billing. Use "extra" for any additional Upmind product fields (see docs endpoint PostAdminProducts). PRODUCTION: creates a live product (hidden from clients unless clients_can_order is true). |
| update_productA | Update product fields (name, descriptions, category, visibility flags). Use "extra" for any other Upmind product field. PRODUCTION: changes are live. |
| duplicate_productA | Clone an existing product within the same brand. The copy is created as "{name} Copy". |
| copy_product_to_brandC | Copy a product into a different brand (multi-brand catalogue management). |
| reorder_productsA | Reorder products within a category. Pass ALL product UUIDs of the category in the desired display order. |
| list_pricelistsA | List all pricelists in the organisation. |
| get_product_pricesA | Get all prices for one product across all pricelists, currencies, and billing cycles. |
| sync_pricingA | Set/update prices for a product on a specific pricelist. Each entry needs currency_id, billing_cycle_months, and price. PRODUCTION: changes are live immediately. |
| list_currenciesA | List available currencies with their UUIDs, codes, and symbols. |
| list_provision_fieldsA | List the provision blueprint fields (names, types, labels) defined for a product. |
| get_provision_field_valuesA | Get the current provision field values configured on a product. |
| update_provision_field_valuesA | Update provision field values on a product (e.g. {"package_name": "Reseller Tier 2"}). PRODUCTION: affects how new services provision. |
| list_provision_configsA | List provision configurations (e.g. servers) for a provision category code such as "shared-hosting". Omit category_code to list the provision categories themselves. |
| list_provision_functionsA | List the provision functions available on a contract product (setup, suspend, terminate, getUsage, …). Use the returned function id with trigger_provision. |
| list_contractsA | List contract products (services) with filters: product, client, status code (e.g. "contract_active", "contract_suspended", "contract_cancelled"), brand. Returns a compact summary per service; set full=true for raw records. |
| get_contractA | Get a contract with its products and related data. Common "with" values: products, client, products.product, products.status. |
| count_active_servicesA | Count active contract products for a product. |
| cancel_contractA | Cancel a whole contract or specific products on it. DESTRUCTIVE: this cancels live services. Provide a cancellation_reason; optionally limit to specific contract product UUIDs. |
| cancel_contract_productA | Cancel a single service on a contract, with refund control. refund_mode: 0 = no refund, 1 = full refund, 2 = pro-rata refund. DESTRUCTIVE: cancels a live service. |
| activate_contract_productA | Activate a pending/inactive contract product (marks the service active). |
| set_contract_product_renewalA | Turn auto-renewal on or off for a contract product. Turning renewal off schedules the service to expire at the end of the paid period. |
| update_contract_product_datesA | Change suspend/cancel/close scheduling for a contract product: either intervals in days after next_due_date, or explicit hold-off dates (not_suspend_until / not_cancel_until / not_close_until, today or future). Useful to give clients extra time before suspension. |
| update_contract_product_priceA | Change the recurring selling price of a contract product (affects future invoices). |
| change_contract_productA | Upgrade or downgrade a contract product to a different product (with pro-rata invoice/credit note). Set dry_run=true first to preview the billing impact without changing anything. |
| trigger_provisionA | Run a provisioning function (setup, suspend, unsuspend, terminate, getUsage, …) on a contract product. Find function IDs with list_provision_functions. PRODUCTION: executes immediately on the hosting server. |
| list_clientsA | List or search clients by name, email, or company. Filter by brand. |
| get_clientA | Get client details. Common "with" values: emails, phones, addresses, accounts, tags, custom_fields. |
| create_clientB | Create a new client under a brand. Provide email + name; optionally create login credentials. Use "extra" for additional fields (language_code, currency_code, …). |
| update_clientB | Update client profile fields. Use "extra" for any other Upmind client field. |
| list_client_accountsA | List the billing accounts of a client (account IDs are needed for wallet operations; most clients have one). |
| reset_client_passwordA | Trigger a password-reset email for a client (admin-initiated). |
| resend_client_verificationB | Resend the account verification email to a client. |
| list_ordersA | List orders/baskets. Use "with" for relations like client, products. |
| get_orderA | Get one order with its products and totals. |
| create_orderA | Create an order for a client via the admin quick-order flow. By default converts straight to an invoice (convert=true). Each product needs product_id and billing_cycle_months; selling_price overrides list pricing. PRODUCTION: creates real billing documents. |
| cancel_orderA | Cancel a pending order. DESTRUCTIVE. |
| convert_order_to_invoiceA | Convert a draft order/basket into a real invoice. |
| list_invoicesA | List invoices with filters: client, status (e.g. "unpaid", "paid", "overdue"), brand. Compact summaries by default; full=true for raw records. |
| get_invoiceA | Get one invoice. Common "with" values: products, payments, client, credit_notes. |
| credit_invoiceA | Issue a credit note against an invoice. Omit amount to credit the full remaining amount, or set full_credit=true. refund_source: 0 = original payment source, 1 = wallet. DESTRUCTIVE: moves money / changes billing records. |
| apply_client_creditA | Pay (part of) an invoice using the client's wallet/credit balance. |
| refund_invoiceA | Record a manual (offline) refund against an invoice or pay out a credit note. Requires the gateway the refund was made through. DESTRUCTIVE: records money movement. |
| create_renewal_invoiceA | Generate the next recurring (renewal) invoice for a contract now, instead of waiting for the scheduler. Optionally scope to one contract product. |
| refresh_invoiceA | Regenerate invoice data and its PDF (e.g. after changing brand details or a template). |
| list_paymentsA | List payment transactions, filterable by client or invoice. |
| add_paymentA | Record a payment against an invoice — typically an offline/manual payment through an offline gateway (see list_gateways), or charge a stored payment method. amount must be in the invoice currency. DESTRUCTIVE: records money movement. |
| refund_paymentA | Refund a captured payment through its gateway, by transaction reference. Omit amount to refund the full overpaid amount. DESTRUCTIVE: moves real money. |
| list_gatewaysA | List configured payment gateways (IDs needed for refunds and manual payments). |
| get_wallet_balanceA | Get a client's wallet/credit balance. Pass client_id (default account is resolved automatically) or a specific account_id. |
| list_wallet_transactionsA | List a client's wallet transaction history (credits, debits, top-ups). |
| refund_from_walletA | Manually refund an amount from a client's wallet balance (e.g. paying out unused credit outside the system). DESTRUCTIVE: reduces the client's credit balance. |
| list_ticketsA | List support tickets with filters (client, status code, department, brand) or full-text search across subjects and message bodies. Status codes: ticket_in_progress, ticket_waiting_response, ticket_resolved, ticket_closed (short forms like "in_progress" also match). |
| get_ticketA | Get one ticket with its metadata (status, client, assignees). Use get_ticket_messages for the conversation. |
| get_ticket_messagesA | Get the message thread of a ticket with HTML stripped — readable conversation including private staff notes. |
| create_ticketA | Open a new support ticket on behalf of a client (e.g. to document a phone call or start an outbound conversation). |
| reply_ticketA | Post a reply on a ticket. Set is_private=true to add an internal staff note the client cannot see. PRODUCTION: public replies email the client. |
| update_ticketA | Update ticket properties: status (by code, e.g. "closed"), subject, department, priority, or linked service. |
| assign_ticketA | Assign a ticket to a staff user (see list_users), or unassign with user_id omitted. |
| list_ticket_departmentsA | List ticket departments (IDs needed for creating/moving tickets). |
| list_promotionsC | List promotions/coupon codes. |
| get_promotionA | Get full details of one promotion (products, restrictions, usage). |
| create_promotionA | Create a promotion code. type: 1 = fixed amount (needs currency_id), 2 = percentage. Applies to all products unless restricted via "extra" (products, pricelists, billing_cycles). |
| update_promotionB | Update fields of an existing promotion. |
| disable_promotionA | Disable a promotion so it can no longer be used. |
| list_leadsA | List sales leads/prospects, optionally searching by text. |
| create_leadB | Create a sales lead (prospect) — e.g. from an inbound enquiry. |
| update_leadB | Update fields on a lead. |
| convert_lead_to_clientC | Convert a lead into a real client record. |
| list_email_historyA | List emails the platform has sent, filterable by client or brand. Useful to confirm whether an invoice reminder, verification, or notification actually went out. |
| get_emailA | Get delivery details for one sent email: recipient, subject, sent/bounced state, and error/bounce data. (Upmind does not expose the rendered body via the API.) |
| resend_emailA | Resend a previously sent email (e.g. an invoice or verification email that never arrived). |
| list_webhooksA | List configured webhook endpoints and their subscriptions. |
| list_webhook_eventsA | List the event types that webhook endpoints can subscribe to. |
| create_webhookA | Create a webhook endpoint. Optionally pass subscription event codes to subscribe immediately. |
| update_webhookB | Update a webhook endpoint (URL, enabled state, name, secret). |
| delete_webhookB | Delete a webhook endpoint. DESTRUCTIVE. |
| list_usersA | List staff/admin users (IDs are needed for assign_ticket). |
| get_userA | Get details for one staff user. |
| get_upgrade_pathsA | Get the products a given product is allowed to upgrade/migrate to. |
| set_upgrade_pathsA | Set which products a product can be upgraded to. PRODUCTION: changes are live. |
| remove_upgrade_pathB | Remove one upgrade path from a product. |
| get_statsA | Quick operational overview: active services, total clients, open tickets, unpaid invoices, and pending orders — optionally scoped to a brand. |
| list_reportsA | List Upmind's built-in reports (revenue, churn, tax, transactions, …) that can be run with run_report. |
| run_reportA | Run a built-in Upmind report by its code/name with optional parameters (date ranges etc.). Check list_reports first; parameters vary per report. |
| list_whitelisted_ipsA | List whitelisted IPs for the organisation, or for one staff user when user_id is given. When a whitelist exists, admin access is only allowed from these addresses. |
| add_whitelisted_ipA | Whitelist an IP for the organisation (or one staff user). CAUTION: once a whitelist is active, access from other IPs is blocked — add your current IP first. |
| remove_whitelisted_ipA | Remove a whitelisted IP entry. DESTRUCTIVE: may lock out whoever uses that address. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/spidyhost-crm/upmind-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server