partner-center-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pc_list_scenariosA | List every Partner Center REST operation this server knows about, as a compact index of id, title, area, method, resolved url, and auth type. Start here to discover what is available and to find the scenario id that the other tools take; then call pc_get_scenario for the full record or pc_generate_call for code. This is a catalogue of documented operations, not a query against a live tenant — it returns no customer data. Read-only, offline, deterministic. Filtering by an area with no entries returns an empty list rather than an error. |
| pc_get_scenarioA | Return the complete verified record for one Partner Center REST operation: method, path, auth type, required headers, request and response shapes, per-field notes, working curl/C#/TypeScript examples, gotchas, and the doc link. Use this once you know the scenario id — get one from pc_list_scenarios, a pc_plan_* workflow, or pc_lookup_error. For runnable code in a specific language prefer pc_generate_call; for a request body skeleton prefer pc_build_request. Read-only. Offline and deterministic unless |
| pc_search_docsA | Search the live Microsoft Learn Partner Center developer documentation and return matching excerpts. Use this as the fallback when the curated pack has no answer: try pc_list_scenarios / pc_get_scenario / pc_lookup_error first, since those are verified and offline. Reaches the public internet, so results are not deterministic and the call can be slow or come back empty with a |
| pc_auth_guidanceA | Return how to authenticate against Partner Center for a given token flavour and national cloud: the token resource and authority to use, the ordered steps of the flow, Secure Application Model and MFA requirements, and what is deprecated. Use this when deciding or setting up how to get a token. To check whether existing code already uses a retired pattern, use pc_check_auth instead; to decode a 401/403 you already hit, use pc_decode_error. Read-only, offline, deterministic. Returns guidance only — it issues no tokens, contacts no identity provider, and handles no secrets. |
| pc_check_authA | Scan a Partner Center auth or client code snippet for retired and deprecated patterns — the graph.windows.net token audience, ADAL, the archived .NET SDK, and the AzureAD/MSOnline PowerShell modules — and return the severity, explanation, fix, and doc link for each hit. Use this to triage existing code before or after a 401. For guidance on what to build instead, use pc_auth_guidance; to translate archived SDK calls into REST, use pc_migrate_from_sdk. Read-only, offline, deterministic pattern matching: the snippet is not executed, nothing is sent anywhere, and no code is modified. A clean snippet returns findings: [] with clean: true. Detection is regex-based, so a clean result is not a guarantee of correctness. |
| pc_generate_callA | Emit ready-to-adapt code for one Partner Center scenario in the language you ask for, plus the Secure Application Model token exchange, 429 retry, 202 polling, and pagination boilerplate. Use this when you want code. For a structured method/url/headers/body object to send yourself, use pc_build_request; for the underlying facts and gotchas, use pc_get_scenario. Only current REST is emitted — never the archived .NET SDK. Read-only, offline, deterministic: the code is returned as text and is never executed, and the placeholder credentials it contains are read from environment variables at your end. An unknown id returns ok:false with |
| pc_migrate_from_sdkA | Find the archived Partner Center .NET SDK calls in a snippet and map each one to the current REST scenario that replaces it, with migration notes. Use this to port code off the SDK, which was archived in June 2023. Run pc_check_auth alongside it to catch retired auth in the same snippet, then pass each returned scenario id to pc_generate_call to emit the replacement code. Read-only, offline, deterministic pattern matching: the snippet is not executed and nothing is rewritten in place — you get the mapping, not modified code. Always returns ok:true; when nothing matched, |
| pc_lookup_errorA | Look up a Partner Center error by its numeric code or HTTP status and return what it means, its known causes, the remediation, the doc link, and the scenarios where it usually appears. Use this when you already have a clean code. If you have a raw error response, pc_decode_error is better — it extracts the code and correlation id for you first. For a symptom described in prose with no code at all, use pc_diagnose. Read-only, offline, deterministic. Exactly one of |
| pc_diagnoseA | Match a Partner Center problem described in plain language against the documented errors and return the likely candidates plus an ordered fix path. Use this when you have no error body and no code — just a description of what is going wrong. If you have the raw response use pc_decode_error, and if you have a clean code use pc_lookup_error; both are far more precise than this. Read-only, offline, deterministic keyword matching, so the candidate list is a heuristic shortlist and can be empty or noisy. Always returns ok:true; |
| pc_get_referenceA | Return the cross-cutting facts that apply to every Partner Center call rather than to one operation: base URLs, required headers, API versioning, the sandbox account, rate limits, and national cloud differences. Use this for questions about the API as a whole. For a specific endpoint use pc_get_scenario, and for authentication specifics use pc_auth_guidance. Read-only, offline, deterministic. |
| pc_validate_requestA | Check a Partner Center REST request you have already written against the documented operations and report what is wrong: unrecognised or mismatched method and path, missing Authorization or MS-RequestId, a retired token audience, app-only used where it is not supported, and sovereign-cloud host mismatches. Use this to catch mistakes before sending, or to explain a call that is failing. To build a correct request from scratch instead, use pc_build_request; to decode a response you already received, use pc_decode_error. Read-only, offline, deterministic: the request is analysed statically and never sent, so pass placeholder tokens rather than real ones. Findings are limited to what the bundled pack covers, so an empty list means no known problem — not a guarantee the call will succeed. |
| pc_plan_purchaseA | Return the ordered end-to-end New Commerce purchase workflow — find the product, get a fresh SKU availability, build the cart, check out, resolve the provisioned subscriptions — with the exact operation, resolved URL, and key gotchas for each step. Use this to buy new subscriptions for a customer. To move existing subscriptions between partners use pc_plan_transfer, and to link the customer to your account first use pc_plan_csp_onboarding. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code. |
| pc_get_enumsA | Return the accepted values for a Partner Center enum, each with a note on what it means — billingCycle, termDuration, targetView, segment, transitionType, subscriptionStatus, qualification, agreementType, billingType, provisioningStatus and more. Use this before sending a request body so you send a value the API will accept, rather than guessing a plausible-looking string. For the fields of a whole resource use pc_get_resource; for a pre-filled body skeleton use pc_build_request. Read-only, offline, deterministic. Omitting |
| pc_whats_newA | List the Partner Center API deprecations and retirement deadlines — MFA enforcement, the graph.windows.net retirement, DAP to GDAP, v1 to v2 reconciliation, and the SDK/ADAL/AzureAD retirements — each with its date, impact, and the action to take, newest deadline first. Use this before committing to an endpoint or auth mechanism, and to explain why something that used to work has stopped. To check whether specific code is affected, run pc_check_auth on it. Read-only, offline, deterministic — sourced from the bundled pack, so it is only as current as the pack's last refresh rather than a live feed. |
| pc_get_resourceA | Return the field dictionary for a Partner Center resource — Customer, Subscription, Order, Invoice, CartLineItem and others — listing each field's name, type, and usage note. Use this to understand a payload you received or to work out what a request body needs. For the accepted values of an individual field use pc_get_enums, and for a ready-to-fill body skeleton for a specific operation use pc_build_request. Read-only, offline, deterministic. Omitting |
| pc_explain_lifecycleA | Return the subscription lifecycle state machine: which operations (increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate, transfer) are legal from which state, the field to read off the live subscription before attempting each one, the scenario that performs it, and the error codes a failed precondition returns. Use this to answer "what can I do to this subscription right now" before reaching for an endpoint. For the endpoint itself use pc_get_scenario, for an ordered call sequence use pc_plan_subscription_change, and to decode a rejection use pc_lookup_error. Read-only, offline, deterministic. Omit |
| pc_build_requestA | Assemble one Partner Center REST request as structured data: the resolved URL with your params substituted into the path placeholders, concrete headers (Bearer plus a freshly generated MS-RequestId on writes), and a request-body skeleton derived from the operation's documented fields. Use this when you want an object to send from your own client. For a language-specific code snippet use pc_generate_call instead, and to lint a request you already wrote use pc_validate_request. Read-only and offline: the request is constructed and handed back, never sent, and the Authorization header is a |
| pc_decode_errorA | Take a raw Partner Center error response and decode it: extract the error code, HTTP status, and MS-CorrelationId, then return the documented causes, remediation, likely scenarios, and the exact wording to quote in a support request. This is the right first tool when something failed and you have the response in hand. Use pc_lookup_error instead when you have already isolated a clean code, and pc_diagnose when you only have a prose description with no response body. Read-only, offline, deterministic parsing — the input is never sent anywhere and no request is replayed. Always returns ok:true: an unrecognised code still yields the parsed fields, status-based candidates, and a |
| pc_plan_transferA | Return the ordered New Commerce transfer (billing-ownership change) workflow: create the transfer, poll it, verify the moved subscriptions. Use this when a customer is moving to a new partner of record. For a first-time customer link-up use pc_plan_csp_onboarding instead, and for buying new subscriptions use pc_plan_purchase. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_gdap_onboardingA | Return the ordered GDAP onboarding workflow — create the relationship, lock it for customer approval, poll until active, then bind access assignments. Use this when you need granular delegated admin rights over a customer tenant. Note these steps are Microsoft Graph calls, not Partner Center ones; for the commercial relationship (invitation + agreement) use pc_plan_csp_onboarding, which is the usual prerequisite. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_reconciliationA | Return the ordered invoice reconciliation workflow for a billing period: locate the invoice, read its totals, pull billed and unbilled line items, download the statement. Use this for billing and revenue reconciliation. Note the v1 line-item endpoints are being retired in favour of async Graph v2 exports — call pc_whats_new for the cutoff dates before building on them. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_csp_onboardingA | Return the ordered CSP customer onboarding workflow: send the reseller relationship invitation, confirm the customer accepted it, record the Microsoft Customer Agreement, then read their subscriptions. Use this to link an existing tenant to your CSP account before you can transact for them. For admin access on top of the relationship use pc_plan_gdap_onboarding; to move an already-linked customer between partners use pc_plan_transfer. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_user_onboardingA | Return the ordered workflow for onboarding a user inside a customer tenant: pick available SKUs, create the account, assign licenses, grant directory roles, verify. Use this for people-level provisioning. It is unrelated to buying subscriptions — for that use pc_plan_purchase — and the reverse direction is pc_plan_user_offboarding. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_user_offboardingA | Return the ordered workflow for removing a user from a customer tenant in the safe order: read their licenses, reclaim the seats, strip directory roles, then delete the account. Use this to decommission a person without stranding licenses. The inverse is pc_plan_user_onboarding; cancelling the subscriptions themselves is a different concern. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_subscription_changeA | Return the ordered call sequence for one subscription lifecycle change: increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate or transfer. Each plan reads the subscription first, states the precondition that decides whether the change is legal, performs it, and confirms it. Use pc_explain_lifecycle to find out WHICH operation is available; use this to find out HOW to run it. For a new purchase use pc_plan_purchase, and for the order side use pc_plan_order_lifecycle. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
| pc_plan_order_lifecycleA | Return the ordered workflow that takes a purchase from cart to confirmed, provisioned subscriptions: build the cart, check out, poll the order's provisioning status, resolve the subscriptions it created, and confirm each one provisioned. Use this when a purchase has to be verified rather than assumed. For choosing WHAT to buy use pc_plan_purchase; for changing a subscription afterwards use pc_plan_subscription_change. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| migrate-sdk | Translate archived Partner Center .NET SDK code into current REST calls. |
| diagnose-issue | Map an error code or symptom to causes, fixes, and relevant scenarios. |
| plan-purchase | Lay out the end-to-end NCE purchase workflow for a customer. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| pc-scenarios | All Partner Center REST scenarios |
| pc-errors | Partner Center error codes |
| pc-auth | Authentication guidance and deprecations |
| pc-reference | Base URLs, headers, versioning, clouds |
| pc-sdk-map | Archived .NET SDK -> REST mappings |
| pc-enums | Partner Center enum values |
| pc-deprecations | Deprecations & deadlines |
| pc-resources | Resource field dictionary |
| pc-lifecycle | Subscription lifecycle state machine |
| verify-mpn | Verify a partner by MPN id |
| list-customers | Get a list of customers |
| create-customer | Create a customer |
| get-customer-by-id | Get a customer by ID |
| delete-customer-sandbox | Delete a customer from the integration sandbox |
| create-user | Create a user account for a customer |
| get-customer-users | Get all user accounts for a customer |
| assign-licenses | Assign licenses to a user |
| get-products | Get a list of products |
| get-sku-availabilities | Get a list of availabilities for a SKU |
| create-cart | Create a cart |
| checkout-cart | Check out a cart |
| get-order-by-id | Get an order by ID |
| list-customer-orders | Get all of a customer's orders |
| list-customer-subscriptions | List a customer's subscriptions |
| get-subscription-by-id | Get a subscription by ID |
| update-subscription | Update a subscription (quantity, status, autorenew) |
| get-subscriptions-by-order | Get a list of subscriptions by order |
| migrate-to-new-commerce | Migrate a legacy subscription to New Commerce (NCE) |
| get-invoices | Get a collection of invoices |
| get-invoice-by-id | Get an invoice by ID |
| get-azure-utilization | Get a customer's Azure utilization records |
| get-partner-balance | Get the partner's current account balance |
| validate-address | Validate an address |
| check-domain-availability | Verify domain availability |
| get-audit-records | Get a record of Partner Center activity |
| list-service-requests | Get all service requests for a customer |
| get-mfa-status | Get per-request MFA compliance for App+User API calls |
| get-customer-analytics | Get customer licenses usage information |
| create-transfer | Create a New Commerce transfer (billing ownership) |
| get-transfer | Get a transfer by ID |
| get-reservation-orders | Get a customer's Azure reservations (entitlements) |
| get-agreements | Get customer agreements (MCA confirmation) |
| get-azure-rate-card | Get the Azure rate card (real-time prices) |
| get-gdap-relationships | List GDAP delegated admin relationships (Microsoft Graph) |
| get-subscription-transition-eligibilities | Get eligible subscription transitions (NCE) |
| create-subscription-transition | Create a subscription transition (NCE upgrade / trial-to-paid) |
| create-azure-plan-upgrade | Upgrade a customer to the Azure plan |
| get-invoice-billed-lineitems | Get invoice billed reconciliation line items |
| get-invoice-unbilled-lineitems | Get unbilled reconciliation line items |
| get-invoice-statement | Download an invoice statement (PDF) |
| get-promotions | Get available offer promotions |
| get-promotion-by-id | Get a promotion by ID |
| get-product-by-id | Get a product by ID |
| get-sku-by-id | Get a SKU by ID |
| create-agreement | Confirm customer acceptance of the MCA (create agreement) |
| get-agreement-template-document | Get a download link for the MCA template |
| get-customer-qualifications | Get a customer's qualifications |
| update-customer-qualification | Set a customer's qualification |
| check-inventory | Check inventory for catalog items before ordering |
| check-inventory-by-resource-type | Check inventory for catalog items filtered by resource type |
| update-order | Update an order (legacy billing cycle / cancel) |
| get-service-request-by-id | Get a service request by ID |
| update-service-request | Update a service request (add note / close) |
| create-device-batch | Upload devices as a new batch (Autopilot) |
| get-device-batches | Get a customer's device batches |
| update-devices | Add devices to an existing batch |
| get-configuration-policies | Get a customer's configuration policies (Autopilot) |
| create-gdap-relationship | Create a GDAP relationship (Microsoft Graph) |
| get-gdap-relationship-by-id | Get a GDAP relationship by ID (Microsoft Graph) |
| get-reseller-relationship-url | Get a reseller relationship request URL to send a customer |
| get-fraud-events | Get Azure fraud events |
| get-referrals | Get co-sell referrals / leads (Partner API) |
| create-referral | Create a referral / co-sell deal (Partner API) |
| get-azure-rate-card-shared | Get the Azure Partner Shared Services rate card |
| get-partner-usage-analytics | Get partner-level Azure usage analytics |
| assign-user-role | Assign a directory role to a customer user |
| reset-user-password | Reset a customer user's password |
| restore-user | Restore a deleted customer user |
| get-billing-profile | Get the partner billing profile |
| update-billing-profile | Update the partner billing profile |
| get-legal-business-profile | Get the partner legal business profile |
| get-support-profile | Get the partner support profile |
| get-organization-profile | Get the partner organization profile |
| get-service-health-overviews | Get Microsoft 365 service health overviews (Microsoft Graph) |
| get-service-health-issues | List Microsoft 365 service health issues (Microsoft Graph) |
| get-message-center-messages | List Message center posts (Microsoft Graph) |
| get-invoice-tax-receipt | Download an invoice receipt statement (Taiwan tax receipt) |
| get-billed-reconciliation-v2 | Export billed reconciliation line items (Microsoft Graph, async v2) |
| get-unbilled-reconciliation-v2 | Export unbilled reconciliation line items (Microsoft Graph, async v2) |
| create-gdap-access-assignment | Create a GDAP access assignment (Microsoft Graph) |
| list-gdap-access-assignments | List GDAP access assignments (Microsoft Graph) |
| update-gdap-access-assignment | Update a GDAP access assignment's roles (Microsoft Graph) |
| create-gdap-relationship-request | Lock/terminate a GDAP relationship via a request (Microsoft Graph) |
| list-delegated-admin-customers | List delegated admin customers (Microsoft Graph) |
| delete-gdap-relationship | Delete a GDAP relationship (Microsoft Graph) |
| get-azure-entitlements | Get a list of Azure entitlements for a subscription |
| register-subscription | Register a subscription for Azure reservations |
| get-subscription-registration-status | Get subscription registration status |
| get-indirect-resellers | Get the signed-in partner's indirect resellers or providers |
| get-customer-partners | Get the partners (indirect resellers/providers) of a customer |
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/tunahanaliozturk/partner-center-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server