Sherweb Platform MCP Server (Preview)

Sherweb Cumulus MCP server gives AI assistants secure access to Cumulus through the Model Context Protocol. Authorized MSP partners can use natural language to retrieve organizations, subscriptions, catalog, billing and audit data, combine it into useful answers, and perform supported operations such as placing orders and amending subscriptions, within their Cumulus permissions.

This connector is available in the following products and regions:

Service Class Regions
Copilot Studio Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Apps Premium All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Automate Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Sherweb Support
URL https://www.sherweb.com
Email support@sherweb.com
Connector Metadata
Publisher Sherweb's AI
Website https://www.sherweb.com
Privacy policy https://www.sherweb.com/legal/privacy-policy/
Categories IT Operations;Business Management

Sherweb Cumulus

Sherweb is a cloud solutions provider that empowers Managed Service Providers (MSPs) to manage their customers, subscriptions, billing, and catalog through the Cumulus platform. The Cumulus MCP (Model Context Protocol) connector exposes your Cumulus data directly to AI assistants—such as Microsoft Copilot Studio agents—so you can query and act on your MSP business in natural language.

With this connector, you can ask your AI assistant questions like:

  • "List all subscriptions up for renewal in the next 60 days."
  • "Which of my organizations don't have a backup product?"
  • "What are my top 10 organizations by recurring revenue?"
  • "Place an order for organization Contoso."

Prerequisites

  • An active Cumulus account with the Service Provider role.
  • A reseller-specific Cumulus API key with the mcp:tools and service-provider scopes.
  • A Microsoft Power Platform environment where the Sherweb Platform connector solution is installed.

Creating Reseller Credentials

Each reseller uses its own existing OAuth client credentials when creating a connector connection; this flow does not use Dynamic Client Registration (DCR) or a shared Client ID and Client Secret.

https://helpdesk.sherweb.com/en-us/knowledge-base/articles/KA-05021

  1. Log in to Cumulus.
  2. Navigate to Platform Settings → APIs.
  3. Create a separate API key for the reseller, or select that reseller's existing key.
  4. Ensure the key has the mcp:tools and service-provider scopes. Copy its Client ID and Client Secret; the secret is shown only when created.
  5. Add the redirect URI displayed for the installed Sherweb Platform connector to the API key.

OAuth Endpoints

Field Value
Authorization URL https://cumulus.sherweb.com/oidc/connect/authorize
Token URL https://cumulus.sherweb.com/oidc/connect/token
Refresh URL https://cumulus.sherweb.com/oidc/connect/token
Scopes mcp:tools service-provider

Creating a Connection

https://helpdesk.sherweb.com/en-us/knowledge-base/articles/KA-05021

  1. In Power Platform, select the installed Sherweb Platform connector and create a connection.
  2. Enter the reseller's Client ID and Client Secret when prompted. These credentials are stored securely by the connection and are used for that reseller's OAuth authorization and token refresh.
  3. Sign in to Cumulus with a user account authorized for that reseller.
  4. If the connection cannot complete authorization, verify that the connector redirect URI is registered on that reseller's API key and that both required scopes are enabled.

Create a separate connection for each reseller. The Client ID and Client Secret identify the reseller's OAuth application; the interactive sign-in determines the user account authorized to use the connection.

Token renewal uses the OAuth refresh-token grant and the credentials supplied for that connection, rather than repeating the authorization-code exchange.

For direct MCP clients (rather than the certified Power Platform connector), configure OAuth against https://mcp.sherweb.com using the endpoints and scopes above. The direct MCP client authentication setup is separate from the reseller-specific credential fields in the Power Platform connector.

Supported Operations

Read-Only Tools

Tool Description
QueryOrganizations Query organizations managed by the service provider using GraphQL.
QuerySubscriptions Query subscriptions across organizations using GraphQL.
QueryOrganizationConsumptions Query consumption data (usage and charges) for organizations using GraphQL.
QueryCatalog Query the product catalog available to the service provider using GraphQL.
QueryAuditLogs Query the audit log of actions performed on the platform using GraphQL.
GetGraphQLSchema Retrieve the full GraphQL schema to help construct valid queries.
GetCopilotSkus Get the list of Sherweb SKUs for Microsoft Copilot offers.

Write Tools

Note: Write operations require the appropriate permissions on the authenticated Cumulus account.

Tool Description
PlaceOrder Place a product order for a customer organization.
ValidateQuote Validate a proposed order and get pricing details without placing the order.
CreateSubscriptionsAmendment Amend the quantity of seats or licenses on one or more existing subscriptions.
CancelSubscriptions Cancel one or more subscriptions for a customer organization.
ConfigurePlatform Configure a platform (for example, Microsoft 365 tenant) for a customer.

Example Prompts

Below are examples of natural-language prompts you can use with an AI assistant connected to this MCP server:

Renewals and Billing

  • "List all subscriptions up for renewal in the next 60 days."
  • "Give me a breakdown of all charges for organization Contoso over the last 3 months."
  • "What subscriptions are expiring within 30 days across all organizations?"

Inventory and Portfolio

  • "Which of my organizations don't have a backup product?"
  • "What are my top 10 organizations by recurring revenue?"
  • "Show me all recently cancelled subscriptions."
  • "List all product offers that include a Copilot SKU."

Actions

  • "Place an order for 5 seats of Microsoft 365 Business Premium for organization Contoso."
  • "Validate a quote for 10 seats of Azure Plan for organization Fabrikam."
  • "Reduce the quantity of Exchange Online seats for organization Contoso from 20 to 15."

Known Issues and Limitations

  • GraphQL query depth: Very deeply nested GraphQL queries may time out. If a query times out, simplify it by reducing the nesting depth or number of requested fields.
  • Pagination required: List queries (QueryOrganizations, QuerySubscriptions, etc.) require pagination arguments (first/after or last/before). Queries without pagination will return an error.
  • Scopes: Ensure both mcp:tools and service-provider are included in the OAuth scopes when creating your API key; missing either scope will result in authentication errors.

Creating a connection

The connector supports the following authentication types:

Default Parameters for creating connection. All regions Not shareable

Default

Applicable: All regions

Parameters for creating connection.

This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.

Name Type Description Required
Reseller Client ID string Enter the Client ID issued for this reseller. True
Reseller Client Secret securestring Enter the Client Secret issued for this reseller. True

Actions

Amend subscription quantities

Amend subscription quantities.

Cancel subscriptions for an organization

Cancel subscriptions for an organization.

Configure a platform for a customer

Configure a platform for a customer.

Get Sherweb SKUs mapped to Microsoft Copilot offers

Get Sherweb SKUs mapped to Microsoft Copilot offers.

Get the GraphQL schema in SDL format

Get the GraphQL schema in SDL format.

Place an order for a customer

Place an order for a customer.

Query audit logs using GraphQL

Query audit logs using GraphQL.

Query catalog items using GraphQL

Query catalog items using GraphQL.

Query organization consumptions using GraphQL

Query organization consumptions using GraphQL.

Query organizations using GraphQL

Query organizations using GraphQL.

Query subscriptions using GraphQL

Query subscriptions using GraphQL.

Validate a quote without placing the order

Validate a quote without placing the order.

Amend subscription quantities

Amend subscription quantities.

Parameters

Name Key Required Type Description
organizationId
organizationId True uuid
subscriptionId
subscriptionId True uuid
newQuantity
newQuantity integer

Returns

Cancel subscriptions for an organization

Cancel subscriptions for an organization.

Parameters

Name Key Required Type Description
organizationId
organizationId True uuid
subscriptionIds
subscriptionIds True array of uuid

Returns

Configure a platform for a customer

Configure a platform for a customer.

Parameters

Name Key Required Type Description
customerId
customerId True uuid
platformId
platformId True uuid
identifier
identifier True string
value
value string

Returns

response
string

Get Sherweb SKUs mapped to Microsoft Copilot offers

Get Sherweb SKUs mapped to Microsoft Copilot offers.

Returns

Get the GraphQL schema in SDL format

Get the GraphQL schema in SDL format.

Returns

response
string

Place an order for a customer

Place an order for a customer.

Parameters

Name Key Required Type Description
customerId
customerId True uuid
sku
sku True string
quantity
quantity integer
purchaseOrderNumber
purchaseOrderNumber string
orderedBy
orderedBy True string

Returns

Query audit logs using GraphQL

Query audit logs using GraphQL.

Parameters

Name Key Required Type Description
graphqlQuery
graphqlQuery True string

Returns

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Query catalog items using GraphQL

Query catalog items using GraphQL.

Parameters

Name Key Required Type Description
graphqlQuery
graphqlQuery True string

Returns

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Query organization consumptions using GraphQL

Query organization consumptions using GraphQL.

Parameters

Name Key Required Type Description
graphqlQuery
graphqlQuery True string

Returns

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Query organizations using GraphQL

Query organizations using GraphQL.

Parameters

Name Key Required Type Description
graphqlQuery
graphqlQuery True string

Returns

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Query subscriptions using GraphQL

Query subscriptions using GraphQL.

Parameters

Name Key Required Type Description
graphqlQuery
graphqlQuery True string

Returns

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Validate a quote without placing the order

Validate a quote without placing the order.

Parameters

Name Key Required Type Description
customerId
customerId True uuid
sku
sku True string
quantity
quantity integer
purchaseOrderNumber
purchaseOrderNumber string
orderedBy
orderedBy True string

Returns

Definitions

Choice

Name Path Type Description
parameterChoiceValue
parameterChoiceValue string
parameterChoiceDisplayName
parameterChoiceDisplayName string

ConnectionOfProjectedAuditLog

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Name Path Type Description
edges
edges array of EdgeOfProjectedAuditLog

The list of edges in this page. Each edge contains the node and its cursor.

nodes
nodes array of ProjectedAuditLog

A flattened list of the nodes in this page (without cursor metadata).

totalCount
totalCount integer

Total count of items across all pages (when requested)

pageInfo
pageInfo PageInfo

Pagination metadata for cursor-based navigation.

ConnectionOfProjectedCatalogItem

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Name Path Type Description
edges
edges array of EdgeOfProjectedCatalogItem

The list of edges in this page. Each edge contains the node and its cursor.

nodes
nodes array of ProjectedCatalogItem

A flattened list of the nodes in this page (without cursor metadata).

totalCount
totalCount integer

Total count of items across all pages (when requested)

pageInfo
pageInfo PageInfo

Pagination metadata for cursor-based navigation.

ConnectionOfProjectedConsumptionItem

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Name Path Type Description
edges
edges array of EdgeOfProjectedConsumptionItem

The list of edges in this page. Each edge contains the node and its cursor.

nodes
nodes array of ProjectedConsumptionItem

A flattened list of the nodes in this page (without cursor metadata).

totalCount
totalCount integer

Total count of items across all pages (when requested)

pageInfo
pageInfo PageInfo

Pagination metadata for cursor-based navigation.

ConnectionOfProjectedOrganization

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Name Path Type Description
edges
edges array of EdgeOfProjectedOrganization

The list of edges in this page. Each edge contains the node and its cursor.

nodes
nodes array of ProjectedOrganization

A flattened list of the nodes in this page (without cursor metadata).

totalCount
totalCount integer

Total count of items across all pages (when requested)

pageInfo
pageInfo PageInfo

Pagination metadata for cursor-based navigation.

ConnectionOfProjectedSubscription

Generic connection type for cursor-based pagination, "T"The type of items in the connection

Name Path Type Description
edges
edges array of EdgeOfProjectedSubscription

The list of edges in this page. Each edge contains the node and its cursor.

nodes
nodes array of ProjectedSubscription

A flattened list of the nodes in this page (without cursor metadata).

totalCount
totalCount integer

Total count of items across all pages (when requested)

pageInfo
pageInfo PageInfo

Pagination metadata for cursor-based navigation.

EdgeOfProjectedAuditLog

An edge in a cursor-based paginated connection, containing the node and its cursor.

Name Path Type Description
node
node ProjectedAuditLog
cursor
cursor string

The cursor for this edge, used for cursor-based pagination.

EdgeOfProjectedCatalogItem

An edge in a cursor-based paginated connection, containing the node and its cursor.

Name Path Type Description
node
node ProjectedCatalogItem
cursor
cursor string

The cursor for this edge, used for cursor-based pagination.

EdgeOfProjectedConsumptionItem

An edge in a cursor-based paginated connection, containing the node and its cursor.

Name Path Type Description
node
node ProjectedConsumptionItem
cursor
cursor string

The cursor for this edge, used for cursor-based pagination.

EdgeOfProjectedOrganization

An edge in a cursor-based paginated connection, containing the node and its cursor.

Name Path Type Description
node
node ProjectedOrganization
cursor
cursor string

The cursor for this edge, used for cursor-based pagination.

EdgeOfProjectedSubscription

An edge in a cursor-based paginated connection, containing the node and its cursor.

Name Path Type Description
node
node ProjectedSubscription
cursor
cursor string

The cursor for this edge, used for cursor-based pagination.

EventSource

InvoiceMetrics

Name Path Type Description
periodRange
periodRange InvoicePeriodRange
accumulatedRecurringCost
accumulatedRecurringCost double

O(1)

invoiceCount
invoiceCount integer

O(1)

compoundMonthlyCostGrowthRate
compoundMonthlyCostGrowthRate double

O(1)

costConcentrationRatio
costConcentrationRatio double

O(1)

costVolatility
costVolatility double

O(1)

InvoicePeriodRange

Name Path Type Description
from
from date

O(1)

to
to date

O(1)

PageInfo

Pagination metadata for cursor-based navigation.

Name Path Type Description
hasNextPage
hasNextPage boolean
hasPreviousPage
hasPreviousPage boolean
startCursor
startCursor string
endCursor
endCursor string

PlaceOrderResponse

Name Path Type Description
requestTrackingId
requestTrackingId uuid
subscriptionIds
subscriptionIds array of uuid

PlatformRequiredParameter

Name Path Type Description
parameterDescription
parameterDescription string
parameterIdentifier
parameterIdentifier string
parameterDefaultValue
parameterDefaultValue string
parameterFormatType
parameterFormatType string
parameterFormatPattern
parameterFormatPattern string
parameterFormatChoices
parameterFormatChoices array of Choice

ProjectedAuditLog

Name Path Type Description
id
id integer
targetName
targetName string
action
action string
date
date date-time
userDisplayName
userDisplayName string
categoryName
categoryName string
description
description string
details
details array of ProjectedAuditLogDetail

ProjectedAuditLogDetail

Name Path Type Description
propertyName
propertyName string
oldValue
oldValue string
newValue
newValue string

ProjectedCatalogItem

Name Path Type Description
sku
sku string

O(1)

name
name string

O(1)

description
description string

O(1)

billingCycle
billingCycle string

O(1)

commitmentTerm
commitmentTerm string

O(1)

pricingInformation
pricingInformation ProjectedPricingInformation
platforms
platforms array of ProjectedPlatforms

O(1) extra call

ProjectedCommitmentTerm

Name Path Type Description
type
type ProjectedCommitmentTermType
endDate
endDate date-time
renewalConfiguration
renewalConfiguration ProjectedRenewalConfiguration

ProjectedCommitmentTermType

ProjectedConsumptionItem

Name Path Type Description
product
product string

O(1)

vendorName
vendorName string

O(1)

totalQuantities
totalQuantities integer

O(1)

consumedQuantities
consumedQuantities integer

O(1)

availableQuantities
availableQuantities integer

O(1)

ProjectedCurrency

ProjectedFeesDto

Name Path Type Description
recurringFee
recurringFee ProjectedMoney
setupFee
setupFee ProjectedMoney
costRecurringFee
costRecurringFee ProjectedMoney
billingCycle
billingCycle string

ProjectedMoney

Name Path Type Description
value
value double
currency
currency ProjectedCurrency
rounding
rounding integer

ProjectedOrganization

Name Path Type Description
id
id uuid

O(1)

name
name string

O(1)

uniqueName
uniqueName string

O(1)

parentId
parentId uuid

O(1)

parentName
parentName string

O(1)

suspendedOn
suspendedOn date-time

O(n)

isSuspended
isSuspended boolean

O(1)

isDeleted
isDeleted boolean

O(1)

isActive
isActive boolean

O(n)

daysSinceSuspension
daysSinceSuspension integer

O(n)

totalSubscriptionCount
totalSubscriptionCount integer

O(n)

uniqueSkus
uniqueSkus array of string

O(n)

totalMonthlyRecurringFee
totalMonthlyRecurringFee double

O(n)

totalMonthlyCostRecurringFee
totalMonthlyCostRecurringFee double

O(n)

totalYearlyRecurringFee
totalYearlyRecurringFee double

O(n)

totalYearlyCostRecurringFee
totalYearlyCostRecurringFee double

O(n)

totalOtherRecurringFee
totalOtherRecurringFee double

O(n), Aggregation of recurring fees with a billingCycle other than monthly or yearly

totalOtherCostRecurringFee
totalOtherCostRecurringFee double

O(n), Aggregation of recurring cost fees with a billingCycle other than monthly or yearly

invoiceMetrics
invoiceMetrics InvoiceMetrics

ProjectedPlatforms

Name Path Type Description
platformId
platformId uuid
requiredParameters
requiredParameters array of PlatformRequiredParameter

O(1) extra call

ProjectedPricingInformation

Name Path Type Description
recurringFee
recurringFee double
setupFee
setupFee double
currency
currency ProjectedCurrency
billingCycle
billingCycle string

ProjectedRenewalConfiguration

Name Path Type Description
isConfigurable
isConfigurable boolean
renewSettings
renewSettings ProjectedRenewSettings

ProjectedRenewSettings

Name Path Type Description
renewalDate
renewalDate date-time
scheduledQuantity
scheduledQuantity integer
coTerminationEndDate
coTerminationEndDate date-time

ProjectedSubscription

Name Path Type Description
subscriptionId
subscriptionId uuid

O(1)

organizationId
organizationId uuid

O(1)

cancelledOn
cancelledOn date-time

O(n)

isActive
isActive boolean

O(n)

daysSinceCreation
daysSinceCreation integer

O(n)

createdOn
createdOn date-time

O(1)

quantity
quantity integer

O(1)

commitmentTerm
commitmentTerm ProjectedCommitmentTerm
daysUntilRenewal
daysUntilRenewal integer

O(n)

sherwebSku
sherwebSku string

O(1)

microsoftSkus
microsoftSkus array of string

O(n)

description
description string

O(1)

expirationDate
expirationDate date-time

O(1)

lastRenewalDate
lastRenewalDate date-time

O(n)

fees
fees ProjectedFeesDto
productName
productName string

O(1)

isCoterminated
isCoterminated boolean

O(n)

history
history array of SubscriptionHistoryEvent

O(n)

RenewedTermEndDateDetail

Name Path Type Description
previousDate
previousDate date
newDate
newDate date

RenewedTermStartDateDetail

Name Path Type Description
previousDate
previousDate date
newDate
newDate date

SkuDetail

Name Path Type Description
sku
sku string
skuName
skuName string

SubscriptionHistoryEvent

Name Path Type Description
createdOn
createdOn date-time
licenseCount
licenseCount integer
sku
sku string
offerName
offerName string
user
user string
coTerminationDate
coTerminationDate string
eventSource
eventSource EventSource
termEndDateDetail
termEndDateDetail RenewedTermEndDateDetail
termStartDateDetail
termStartDateDetail RenewedTermStartDateDetail

SubscriptionsAmendment

Name Path Type Description
subscriptionsAmendmentId
subscriptionsAmendmentId uuid
trackingId
trackingId TrackingId

SubscriptionsCancellation

Name Path Type Description
subscriptionsCancellationId
subscriptionsCancellationId uuid
trackingId
trackingId TrackingId

TrackingId

Name Path Type Description
requestTrackingId
requestTrackingId uuid

ValidateOrderLineItem

Name Path Type Description
lineNumber
lineNumber integer
sku
sku string
name
name string
billingCycle
billingCycle string
commitmentTerm
commitmentTerm string
quantity
quantity integer
unitPrice
unitPrice double
extendedPrice
extendedPrice double
currency
currency string

ValidateOrderResult

Name Path Type Description
message
message string
lineItems
lineItems array of ValidateOrderLineItem
subtotal
subtotal double
currency
currency string

string

This is the basic data type 'string'.