# Supported Tools

Full reference for all 150 tools available through the Suger MCP Server.

---

The Suger MCP Server exposes 150 tools that cover the full Suger API — from listing products and managing entitlements to running the entire co-sell referral lifecycle across AWS, Azure, GCP and Suger partner companies, and managing partner relationships and invitations. Your AI assistant automatically discovers available tools and their parameters when it connects. You can combine multiple tools in a single conversation to accomplish complex, multi-step workflows.

:::info
Your AI assistant can only perform actions that your Suger account has permission to do.
:::

:::note
Deleting records is never exposed to AI. Every `DELETE` endpoint is excluded from the tool catalog,
so an assistant cannot delete a product, offer, wallet, entitlement term or usage record, and
cannot unlink a contact. Those actions remain available to people, in the Suger Console and through
the REST API directly. If an assistant is holding a cached tool list from before the exclusion and
calls one anyway, the server answers with a message telling it to use the Console instead.
:::

## Organization (2)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListOrganizations` | List organizations | "Show my organizations" |
| `GetOrganizationLicensesAndServices` | Get the organization's enabled services and quota limits | "What services and quotas does my org have?" |

## Product Management (13)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListProducts` | List products | "List all my products" |
| `ListProductsByPartner` | List products by cloud partner | "Show all AWS products" |
| `QueryProducts` | Query products with filters | "Find products with status PUBLISHED" |
| `GetProduct` | Get product details | "Get details for product prod-123" |
| `CreateProduct` | Create a new product | "Create a SaaS product for AWS Marketplace" |
| `CreateOrUpdateDraftProduct` | Save a draft product | "Save a draft product listing" |
| `UpdateProduct` | Update a product | "Update the description for my product" |
| `UpdateProductMetaInfo` | Update product metadata | "Update product metadata" |
| `UpdateProductPricing` | Update product pricing / terms | "Update pricing for product prod-123" |
| `UpdateProductPrice` | Update AWS or Azure product pricing in one unified request | "Update the unified pricing for product prod-123" |
| `UpdateProductFulfillmentUrl` | Set product fulfillment URL | "Set the fulfillment URL for prod-123" |
| `PublishProduct` | Publish a product to marketplace | "Publish prod-123 to the marketplace" |
| `ListProductMeteringDimensions` | List metering dimensions | "Show metering dimensions for prod-123" |

## Offer Management (14)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListOffers` | List offers | "List all my offers" |
| `QueryOffers` | Query offers with filters | "Show active offers on AWS" |
| `GetOffer` | Get offer details | "Get details for offer off-123" |
| `GetOfferByExternalId` | Look up offer by external ID | "Find offer by external ID ext-456" |
| `CreateOffer` | Create an offer | "Create a private offer for buyer xyz" |
| `CreateOrUpdateDraftOffer` | Save a draft offer | "Save a draft offer" |
| `UpdateOfferMetaInfo` | Update offer metadata | "Update metadata for off-123" |
| `UpdateOfferPrice` | Add a new usage dimension to a released private offer | "Add a new pricing dimension to offer off-123" |
| `CancelOffer` | Cancel an offer | "Cancel offer off-123" |
| `ExtendPrivateOfferExpiryDate` | Extend offer expiry | "Extend the expiry date of off-123 by 30 days" |
| `SyncOffer` | Sync offer from cloud partner | "Sync off-123 from AWS Marketplace" |
| `SendOfferNotifications` | Notify offer contacts | "Send notification to contacts of off-123" |
| `GetOfferEula` | Get offer EULA | "Show the EULA for off-123" |
| `GetOfferResellerEula` | Get reseller EULA | "Get the reseller EULA for off-123" |

## Offer Sets (3)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListOfferSets` | List offer sets | "Show all offer sets" |
| `CreateOfferSet` | Create an offer set | "Create a new offer set" |
| `GetOfferSet` | Get offer set details | "Get offer set details" |

## Entitlement Management (20)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListEntitlements` | List entitlements | "List all entitlements" |
| `QueryEntitlements` | Query entitlements with filters | "Show entitlements expiring this month" |
| `GetEntitlement` | Get entitlement details | "Get entitlement ent-123" |
| `CreateEntitlement` | Create an entitlement | "Create an entitlement for buyer xyz" |
| `ApproveEntitlement` | Approve a pending entitlement | "Approve entitlement ent-123" |
| `CancelEntitlement` | Cancel an entitlement | "Cancel entitlement ent-123" |
| `ListEntitlementCancellationRequests` | List cancellation requests for an entitlement | "Show pending cancellation requests for ent-123" |
| `WithdrawEntitlementCancellationRequest` | Withdraw a cancellation request | "Withdraw the cancellation request for ent-123" |
| `ScheduleEntitlementCancellation` | Schedule future cancellation | "Schedule cancellation for ent-123 at end of term" |
| `UnscheduleEntitlementCancellation` | Remove scheduled cancellation | "Remove the scheduled cancellation for ent-123" |
| `AddEntitlementCredit` | Add credit to entitlement | "Add $500 credit to ent-123" |
| `ApplyAddonToEntitlement` | Apply addon to entitlement | "Apply addon to ent-123" |
| `DivideEntitlementCommit` | Divide entitlement commit | "Divide the commit for ent-123" |
| `UpdateEntitlementName` | Rename an entitlement | "Rename entitlement ent-123" |
| `UpdateEntitlementMetaInfo` | Update entitlement metadata | "Update metadata for ent-123" |
| `UpdateEntitlementPriceModel` | Update pricing model | "Update pricing for ent-123" |
| `UpdateEntitlementSeat` | Update Azure subscription seats | "Update seat count for Azure entitlement" |
| `ListEntitlementTerms` | List entitlement terms | "Show terms for ent-123" |
| `GetEntitlementTerm` | Get entitlement term details | "Get term details for ent-123" |
| `GetEntitlementPdf` | Download agreement PDF | "Download the agreement PDF for ent-123" |

## Buyer Management (10)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListBuyers` | List buyers | "List all buyers" |
| `QueryBuyers` | Query buyers with filters | "Find buyers with company name Acme" |
| `GetBuyer` | Get buyer details | "Get buyer details for buyer-123" |
| `CreateBuyer` | Create a buyer | "Create a new buyer record" |
| `UpdateBuyer` | Update a buyer | "Update buyer information for buyer-123" |
| `ListBuyerWallets` | List buyer's credit wallets | "Show wallets for buyer-123" |
| `CreateCreditWallet` | Create a credit wallet | "Create a credit wallet for buyer-123" |
| `UpdateCreditWallet` | Update a credit wallet | "Update credit wallet details" |
| `CloseCreditWallet` | Close a credit wallet | "Close wallet for buyer-123" |
| `SetBuyerDefaultWallet` | Set default wallet | "Set default wallet for buyer-123" |

## Contact Management (9)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListContacts` | List contacts | "List all contacts" |
| `QueryContacts` | Query contacts with filters | "Find contacts with @acme.com email" |
| `GetContact` | Get contact details | "Get contact details for contact-123" |
| `CreateContact` | Create a contact | "Create a new contact" |
| `BatchCreateContacts` | Create multiple contacts | "Create contacts in batch" |
| `UpdateContact` | Update a contact | "Update email for contact-123" |
| `UpdateContactTags` | Update contact tags | "Add tags to contact-123" |
| `AddContactToBuyer` | Link contact to buyer | "Link contact-123 to buyer-456" |
| `AddContactToOffer` | Link contact to offer | "Link contact-123 to offer off-789" |

## Metering & Usage (14)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListBillableMetrics` | List billable metrics | "Show all billable metrics" |
| `GetBillableMetric` | Get billable metric details | "Get metric details for metric-123" |
| `CreateBillableMetric` | Create a billable metric | "Create a new billable metric" |
| `UpdateBillableMetric` | Update a billable metric | "Update metric definition" |
| `ReportUsageRecordGroup` | Report usage | "Report usage for entitlement ent-123" |
| `BatchReportUsageRecordGroups` | Report usage in batch | "Report usage in batch" |
| `BatchValidateUsageRecordGroups` | Validate usage records | "Validate usage records before reporting" |
| `ListUsageRecordGroups` | List usage records | "Show usage records for ent-123" |
| `AggregateUsageRecordGroups` | Aggregate usage data | "Aggregate usage data" |
| `RetryUsageRecordGroup` | Retry failed usage report | "Retry failed usage reporting" |
| `ListUsageRecordReports` | List usage reports | "Show usage reports" |
| `AggregateUsageRecordReports` | Aggregate usage reports | "Aggregate usage reports" |
| `GetUsageMeteringConfigInfo` | Get metering config | "Show metering configuration" |
| `UpdateUsageMeteringConfigInfo` | Update metering config | "Update metering config" |

## Revenue & Reports (16)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `GetRevenueReport` | Generate a revenue report | "Generate a revenue report for Q4" |
| `ListRevenueRecords` | List revenue records | "Show revenue records for this month" |
| `ListRevenueRecordDetails` | List revenue record details | "Show detailed revenue breakdown" |
| `ListDailyRevenueRecords` | List daily revenue records | "Show daily revenue for the past week" |
| `ListUsageMeteringDailyRecords` | List daily metering records | "Show daily metering records" |
| `QueryRevenueRecords` | Query revenue records with filters | "Find revenue records for AWS in March" |
| `AggregateRevenueRecords` | Aggregate revenue records | "Aggregate revenue by partner for last quarter" |
| `ListUnifiedRevenueRecords` | List unified revenue records across all channels | "Show unified revenue records for this quarter" |
| `GetUnifiedRevenueRecord` | Get one unified revenue record | "Get unified revenue record urr-123 for AWS" |
| `SummarizeUnifiedRevenueRecords` | Summarize unified revenue records | "Summarize unified revenue for the last 90 days" |
| `GetRevenueRecordEvents` | Get the provenance event chain for one unified revenue record | "How was revenue record urr-123 derived?" |
| `GetRevenueDashboardSummary` | Get the revenue dashboard summary | "Show my revenue dashboard summary" |
| `GetRevenueDashboardMetrics` | Get revenue SaaS metrics | "What's my current MRR and ARR?" |
| `ListRevenueConnections` | List revenue channel connections | "Which revenue channels are connected?" |
| `GetRevenueConnectionHealth` | Get the health of one revenue channel connection | "Is my AWS revenue connection healthy?" |
| `BackfillRevenueConnection` | Trigger a revenue backfill for one channel | "Backfill AWS revenue data" |

## Co-Sell (16)

Run the full co-sell referral lifecycle from chat — create, list, update status / stage, sync, and pull dashboard insights. `partner` selects the destination: `AWS`, `AZURE` and `GCP` share the opportunity with that cloud provider; `SUGER` shares it with another company you partner with through Suger.

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListCosellReferrals` | List co-sell referrals (inbound + outbound) with filters | "List my AWS referrals in Pending Acceptance status from last week" |
| `GetCosellReferral` | Get full details of a single co-sell referral by ID | "Show me referral ref-abc123" |
| `CreateCosellReferral` | Create an outbound co-sell referral to a cloud provider (AWS / AZURE / GCP) or to a partner company (SUGER) | "Create an AWS co-sell referral for Acme Corp, expected close date 2026-09-30" |
| `RegisterCosellOnBehalf` | File a Suger partner co-sell on a partner's behalf — for partners who send deals by email and expect you to register them | "Register the deal Acme Corp emailed us on their behalf" |
| `UpdateCosellReferral` | Update referral fields, status, or stage — and, for a referral a partner shared with you, accept or decline it | "Accept the referral Contoso shared with us" |
| `BatchCreateCosellReferrals` | Create multiple referrals in one call (recommended ≤ 20) | "Share these 10 opportunities to AWS as referrals" |
| `BatchPreviewCosellReferrals` | Preview the referrals that would be created from CRM records, before creating them | "Preview referrals for these 5 Salesforce opportunities" |
| `ValidateReferral` | Dry-run validate a referral against partner schema before creating | "Validate this referral before submitting to AWS" |
| `PredictReferralQualityScore` | Predict the AWS opportunity quality score for a referral | "Score this AWS opportunity before I submit it" |
| `SyncSingleReferral` | Sync a single referral with the cloud partner (AWS / Azure / GCP); on a SUGER referral this syncs the linked CRM record instead | "Sync referral ref-abc123 to AWS" |
| `AzureMicrosoftSolutionLookup` | Search Microsoft's first-party catalog (Azure, Microsoft 365, Dynamics) and return each match's solution id | "Find the Microsoft solution id for Azure Kubernetes Service" |
| `AzureThirdPartySolutionLookup` | Search solutions published by companies other than Microsoft — including your own listings — and return their ids | "Find the Partner Center solution id for our own listing" |
| `AzureInvitePartnerCollaboration` | Invite another partner to collaborate on an Azure referral (Azure only) | "Invite partner X to collaborate on this Azure referral" |
| `GetCosellDashboard` | Co-sell insights: pipeline KPIs, outstanding actions, activity logs | "Show my co-sell pipeline for the last 30 days" |
| `GetPartnerContacts` | List known partner contacts for a buyer company (by email domain) | "Who at AWS have we worked with for acme.com before?" |
| `SearchPartnerConnections` | Search the org's connected AWS partners by name | "Find AWS partner connections matching 'Snowflake'" |

:::note
`PredictReferralQualityScore` and `BatchPreviewCosellReferrals` call a language model and record AI
usage for your organization, so each call has a cost.
:::

:::warning
`RegisterCosellOnBehalf` is not a silent write. It emails the partner's champion contact a
confirmation request naming the deal, and the partnership only becomes active once they confirm.
It needs an existing partnership — ACTIVE, or PENDING with an invitation outstanding — that carries
a champion contact; the champion's email address is where the request is sent.

It also requires that **your organization is the seller** on that partnership. A partnership set to
"partner is the seller", or to both, is refused — the registration attributes the deal to the
partner as the referring side, so it only makes sense in one direction.
:::

An Azure referral needs at least one entry under `details.requirements.solutions`, and that entry's
id is a Microsoft catalog identifier that cannot be guessed or composed. Use
`AzureMicrosoftSolutionLookup` for Microsoft's own products and `AzureThirdPartySolutionLookup` for
everything published by someone else (including your own listings), then pass the id you picked to
`CreateCosellReferral`. Both read the catalog through your organization's Microsoft Partner Center
connection and change nothing, so an organization with no Azure connection cannot use them.

`ValidateReferral` also returns `duplicateOpenReferrals` — referrals already in your organization,
for the same partner, whose title matches the one being validated and whose status is not yet
concluded. It is a warning, not a block: it does not change `valid`, and two referrals can
legitimately share a title (a renewal, or a phased project). Your assistant should tell you which
referrals matched and ask before it goes ahead.

## Partner Relationship Management (12)

Manage the partner companies you work with and the invitations that bring them onboard. Start with `ListPrmPartners` to get the `partnerId` the other partner tools need, and with `ListPrmOrgInvitations` to get the `invitationId` the accept / decline / withdraw tools need.

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListPrmPartners` | List the partner companies this organization has a relationship with | "Who are our partners?" |
| `GetPrmPartnerDetail` | Get the full record for one partner relationship, including the partner-portal view | "Show me everything about our partnership with Contoso" |
| `GetPrmPartnerContacts` | List the people at one partner company | "Who should I contact at Contoso?" |
| `GetPartnerCommissions` | Get one partner's commission ledger — per closed-won deal, plus totals per currency | "What has Contoso earned from us this year?" |
| `UpdatePrmPartner` | Update the editable fields of one partner relationship (manager, status, types, profile) | "Assign Dana as the partner manager for Contoso" |
| `ListPrmOrgInvitations` | List every partner invitation this organization sent or received | "Which partner invitations are still outstanding?" |
| `ListPrmInvitations` | List the invitations attached to one partner relationship | "Show the invitation history with Contoso" |
| `CreatePrmInvitation` | Send a partner invitation for an existing partnership to a named recipient | "Invite dana@contoso.com to our Contoso partnership" |
| `AcceptPrmInAppInvitation` | Accept an invitation **another company sent to us**, establishing the partnership | "Accept the partnership invitation from Contoso" |
| `DeclinePrmInAppInvitation` | Decline an invitation **another company sent to us**; no partnership is created | "Decline the partnership invitation from Contoso" |
| `CancelPrmInvitation` | Withdraw an invitation **we sent**, invalidating its accept link | "Cancel the invitation we sent to dana@contoso.com" |
| `GeneratePrmInvitationEmail` | Draft the subject and body for a partnership invitation email — text only, sends nothing | "Draft an invitation email for Contoso" |

:::note
`CreatePrmInvitation` sends real email to someone outside your organization. Accepting or declining
an invitation is visible to the other company immediately and cannot be reopened.
`GeneratePrmInvitationEmail` calls a language model and records AI usage, so each draft has a cost.
:::

## Support Tickets (8)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListSupportTickets` | List support tickets | "Show all open support tickets" |
| `GetSupportTicket` | Get ticket details | "Get details for ticket-123" |
| `CreateSupportTicket` | Create a support ticket | "Create a ticket for a billing issue" |
| `UpdateSupportTicket` | Update a support ticket | "Set ticket-123 priority to high" |
| `CloseSupportTicket` | Close a ticket | "Close ticket-123" |
| `ReopenSupportTicket` | Reopen a ticket | "Reopen ticket-123" |
| `CreateSupportTicketComment` | Add a comment to a ticket | "Add a comment to ticket-123" |
| `CreateSupportTicketAttachment` | Attach a file to a ticket | "Attach a file to ticket-123" |

## Notifications (6)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListNotificationEvents` | List notification events | "Show recent notification events" |
| `ListNotificationEventsByEntity` | List notifications for an entity | "Show notifications for offer off-123" |
| `ListNotificationMessages` | List notification messages | "List notification messages" |
| `GetNotificationMessage` | Get notification message details | "Get notification message details" |
| `GetNotificationConfigInfo` | Get organization notification config | "Show my notification settings" |
| `UpdateNotificationConfigInfo` | Update organization notification config | "Update my notification settings" |

## Operations (3)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListOperationsV2` | List operations with filters | "Show recent operations" |
| `GetOperationV2` | Get operation details | "Get details for operation op-123" |
| `ListOperationHistoryV2` | Get operation history | "Show operation history" |

## API Management (2)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `ListApiClients` | List API clients | "Show all API clients" |
| `GetApiClient` | Get API client details | "Get API client details" |

## Knowledge Search (1)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `SearchKnowledge` | Search the marketplace knowledge index (AWS, Azure, GCP docs + Suger docs + support) | "How do I publish a private offer on Azure Marketplace?" |

## Auditing (1)

| Tool | Description | Example Prompt |
|------|-------------|----------------|
| `QueryAuditingEvents` | Query audit events | "Show audit events from the past 7 days" |

## Common Parameters

Most tools accept these standard parameters. Your AI assistant discovers the full schema for each tool automatically — you don't need to specify parameters manually.

| Parameter | Type | Description |
|-----------|------|-------------|
| `orgId` | string | Organization ID (required, path parameter) |
| `partner` | string | Cloud partner filter: `AWS`, `AZURE`, `GCP`. Co-sell referral tools also accept `SUGER`, meaning a partner company you work with through Suger rather than a cloud provider. |
| `limit` | number | Page size for list operations |
| `offset` | number | Pagination offset |
