Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.tunahanaliozturk/partner-center-mcp

NPM · PARTNER-CENTER-MCP · SCANNED AUG 3

Unofficial Partner Center REST API knowledge & codegen assistant (scenarios, auth, errors).

Available components

+51 this week 81 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to tunahanaliozturk/partner-center-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability88
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 8914 tokens (~51/item across 172 items; 26 tools + 146 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · partner-center-mcp

# add to Claude Code
claude mcp add tunahanaliozturk-partner-center-mcp -- npx -y partner-center-mcp
# add to Codex CLI
codex mcp add tunahanaliozturk-partner-center-mcp -- npx -y partner-center-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tunahanaliozturk-partner-center-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "partner-center-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tunahanaliozturk-partner-center-mcp --command npx --arg -y --arg partner-center-mcp
# ~/.hermes/config.yaml
mcp_servers:
  tunahanaliozturk-partner-center-mcp:
    command: "npx"
    args: ["-y", "partner-center-mcp"]
// mcp.json
{
  "mcpServers": {
    "tunahanaliozturk-partner-center-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "partner-center-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +55
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • Malware scan: unverified → pass security
    • The attested source repository moved: tunahanaliozturk/partner-center-mcp security
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Stability: unverified → 0.20 functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • Licence: MIT functional
  • 1 Aug 26 +21
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Schema quality: 21 → 51 functional
    • Schema quality: fair → unverified functional
    • Tool coverage: 0% → 100% functional
    • Schema quality: unverified → 100 functional
    • Tool coverage: unverified → 100 functional
    • First check of Tool coverage: 100 functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Package version: 0.12.0 → 0.13.0 functional
  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −61
    • Provenance: pass → unverified security
    • Install scripts: pass → unverified security
    • Known CVEs: partial → unverified security
    • The attested source repository moved: tunahanaliozturk/partner-center-mcp security
    • Maintenance: pass → unverified functional
    • Dependency health: partial → unverified functional
    • Schema quality: 100 → unverified functional
    • Tool coverage: 100 → unverified functional
    • License: pass → unverified functional
    • Licence: MIT functional
    • Package version: 0.11.0 → 0.12.0 functional
  • 28 Jul 26 +37
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • The attested source repository moved: tunahanaliozturk/partner-center-mcp security
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Schema quality: unverified → fair functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 27 Jul 26 30

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
tunahanaliozturk/partner-center-mcp
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/tunahanaliozturk/partner-center-mcp/.github/workflows/publish.yml@refs/tags/v0.13.0
Rekor log index:
2309498789
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:6341bd20fd3915b55dc2e371933b4a77a3958bf6cadd543e98d1a2cac6977d2a6e6680a3a8b517ba58487094d339eb9b69fde3ce6495c62e2cc650397
Discovery method:
attestation_endpoint
Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 26 exposed · ~6,673 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
pc_auth_guidance ~240

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.

NameTypeReqDescription
authTypestringyesWhich token flavour to describe. "app+user" is the Secure Application Model refresh-token flow required by most Partner Center operations; "app-only" is application permissions, which only a subset o…
cloudstringSovereign cloud whose endpoints and authority to return. Defaults to "commercial". Choose "china-21vianet" or "us-gov" only for tenants in those clouds — their authorities and feature availability di…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_build_request ~343

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 `<access-token>` placeholder — no credentials are read or required. Not idempotent in one respect: a random MS-RequestId is minted on each call for write operations, so reuse the returned value across retries rather than calling again. Unsupplied placeholders are reported in `missingParams` rather than failing, and an unknown id returns ok:false with `suggestions`.

NameTypeReqDescription
idstringyesExact scenario id in kebab-case, e.g. "create-cart". Case-sensitive; discover ids with pc_list_scenarios or any pc_plan_* tool.
paramsobjectValues for the {placeholder} segments in the operation's path, as a flat string-to-string map — e.g. { "customer-id": "c7f6e4b1-...", "subscription-id": "..." }. Keys are matched loosely, so "custome…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_check_auth ~234

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.

NameTypeReqDescription
codestringyesThe code to lint, pasted as-is. Any language — C#, TypeScript, PowerShell, or a raw token request URL. A partial snippet is fine: only the auth-related lines matter, and matching is case-insensitive.…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_decode_error ~227

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 `note` on what to try next.

NameTypeReqDescription
errorstringyesThe error response pasted verbatim — a JSON body such as {"code":"900400","description":"..."}, or unstructured log text containing the failure. Include the response headers if you have them so the M…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_diagnose ~208

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; `nextSteps` is a fixed checklist and is returned even when nothing matched.

NameTypeReqDescription
symptomstringyesWhat is going wrong, in plain language — e.g. "checkout returns 400 for NCE carts in Germany" or "token works for Graph but Partner Center says unauthorized". Matching is keyword-based and case-insen…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_explain_lifecycle ~194

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 `operation` for the whole machine.

NameTypeReqDescription
operationstringNarrow the answer to one operation: increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate, or transfer. Omit to get every operation.
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_generate_call ~301

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 `suggestions` listing every valid id.

NameTypeReqDescription
idstringyesExact scenario id in kebab-case, e.g. "create-cart". Case-sensitive; discover ids with pc_list_scenarios or any pc_plan_* tool.
includeHelpersbooleanWhether to append the reusable boilerplate — token exchange, 429/Retry-After handling, 202 polling, pagination — as a separate `helpers` field. Defaults to true. Set false when you already have that…
languagestringyesTarget language for the snippet. Required — there is no default. "curl", "csharp", and "typescript" come from curated per-scenario examples; "powershell" is generated from the endpoint definition and…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_get_enums ~203

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 `name` returns the index of every enum instead of one enum's values. An unknown name returns ok:false with `suggestions` listing all valid enum names.

NameTypeReqDescription
namestringEnum to expand, e.g. "billingCycle" or "subscriptionStatus". Matched case-insensitively. Omit it to list every available enum with its description and value count, then call again with the one you wa…
NameTypeReqDescription
dataThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_get_reference ~186

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. `topic` is required and the payload shape differs per topic.

NameTypeReqDescription
topicstringyesWhich reference topic to return. "base-urls": host per API surface. "headers": the headers every request should carry and why. "versioning": how API versions are selected. "sandbox": integration sand…
NameTypeReqDescription
dataThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_get_resource ~190

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 `name` returns the index of every resource instead of one resource's fields. An unknown name returns ok:false with `suggestions` listing all valid resource names.

NameTypeReqDescription
namestringResource to expand, e.g. "Subscription" or "CartLineItem". Matched case-insensitively. Omit it to list every documented resource with its description and field count, then call again with the one you…
NameTypeReqDescription
dataThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_get_scenario ~267

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 `enrich` is set, which adds a live Microsoft Learn fetch. An unknown id returns ok:false with `suggestions` listing close or valid ids.

NameTypeReqDescription
enrichbooleanSet true to also fetch live Microsoft Learn excerpts for this operation and attach them as `liveDocs`. Defaults to false. Turning it on adds a network round-trip and makes the result non-deterministi…
idstringyesExact scenario id in kebab-case, e.g. "create-cart", "get-invoices", "list-customer-subscriptions". Case-sensitive; call pc_list_scenarios to discover valid ids. A near miss comes back as `suggestion…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_list_scenarios ~182

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.

NameTypeReqDescription
areastringRestrict the list to one functional area. One of: customers, subscriptions, orders, licenses, invoicing, profiles, auth, catalog, utilities, audit, support, security, analytics, devices, referrals. O…
NameTypeReqDescription
dataarrayThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_lookup_error ~264

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 `code` or `httpStatus` must be supplied; supplying neither returns ok:false. An unknown code returns ok:false with `suggestions` listing every code in the pack.

NameTypeReqDescription
codestringPartner Center error code as a string, e.g. "900400" or "20002". Matched exactly, so strip surrounding text first. Takes precedence when both this and `httpStatus` are given. Supply this or `httpStat…
httpStatusintegerHTTP status code to list errors for, e.g. 400 or 403. Use this when you have no Partner Center code — it returns every documented error with that status, so expect several. Ignored when `code` is sup…
NameTypeReqDescription
dataThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.
suggestionsarrayValid values to retry with, returned alongside `error` when the requested identifier was not found.

No examples provided.

pc_migrate_from_sdk ~203

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, `matches` is empty and `unmatched` is true.

NameTypeReqDescription
codestringyesC# code that calls the archived SDK, pasted as-is — e.g. a block using IAggregatePartner or PartnerService.Instance. A fragment is enough; matching is on the SDK call chain and is case-insensitive. M…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_csp_onboarding ~279

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_gdap_onboarding ~279

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_order_lifecycle ~278

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_purchase ~322

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.

NameTypeReqDescription
countrystringOptional two-letter ISO 3166-1 country code for the customer's market, e.g. "TR", "DE", "US". Substituted for the {country} placeholder in the catalog steps, since product availability and pricing ar…
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). Substituted for the {customer-id} placeholder in every step's path and url so the plan comes back ready…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_reconciliation ~272

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_subscription_change ~373

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
operationstringyesWhich lifecycle change to plan. One of: increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate, transfer. Required — there is no default. Use pc_explain_lifecycle…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_transfer ~264

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_user_offboarding ~264

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_plan_user_onboarding ~263

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.

NameTypeReqDescription
customerIdstringOptional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_search_docs ~221

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 `note` when the fetch fails. Read-only and safe to retry; no Partner Center credentials are involved. Returns { excerpts[] with title/url/text, note }.

NameTypeReqDescription
querystringyesWhat to look up, in plain language or as keywords — e.g. "cart line item promotion eligibility" or "MS-CorrelationId header". "Partner Center" is prepended automatically, so do not repeat it. An erro…
topKintegerMaximum number of excerpts to return, 1-10. Omit to get everything the fetcher found (usually a handful). Lower it to keep the response small.
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_validate_request ~421

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.

NameTypeReqDescription
authTypestringThe token flavour you intend to use. Supply it to be told when the endpoint does not accept app-only. Omit to skip that check.
cloudstringSovereign cloud the request targets. Defaults to "commercial". Supply a non-commercial value to get the correct base URL and login authority reported as an info finding.
headersobjectRequest headers as a flat string-to-string map, e.g. { "Authorization": "Bearer <token>", "MS-RequestId": "..." }. Names are compared case-insensitively. Omit to skip the header checks entirely — whi…
methodstringyesHTTP verb of the request you are checking. Required — a verb that does not match the endpoint is one of the things this reports.
urlstringyesThe request URL. A full URL or a bare path both work; the scheme and host are stripped before matching. Concrete ids in place of {placeholder} segments are expected and matched positionally, e.g. "ht…
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.

pc_whats_new ~195

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.

NameTypeReqDescription
statusstringFilter by lifecycle stage. "upcoming": announced, deadline not reached. "in-progress": rolling out now. "enforced": deadline passed and being applied. "retired": fully removed. Omit to get every item.
NameTypeReqDescription
dataobjectThe result payload. Present only when `ok` is true.
errorstringHuman-readable reason the call failed. Present only when `ok` is false.
okbooleanyesTrue when the call succeeded and `data` is populated; false when `error` explains why not.

No examples provided.