Adobe VIP Marketplace Docs MCP Server
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vipmp_docsA | Return the full sitemap of Adobe VIP Marketplace API documentation. Use this to browse all available topics or to find exact page paths. |
| search_vipmp_docsA | Search the Adobe VIP Marketplace API documentation by keyword or topic. Ranks pages by title/tag matches plus content matches (for any page already in the local cache — call warm_vipmp_cache once to pre-fetch every page for the strongest results). Returns matching page titles, paths, and the most query-relevant sections from each page (not a blunt character cutoff). Args: query: Search terms, e.g. "create order", "oauth token", "3YC eligibility" max_results: Maximum number of pages to return (default 5, max 10) |
| get_vipmp_pageA | Fetch the full content of a specific Adobe VIP Marketplace documentation page. Args: path: The doc path, e.g. "/vipmp/docs/order_management/create_order/" Use list_vipmp_docs() or search_vipmp_docs() to find valid paths. |
| warm_vipmp_cacheA | Pre-fetch every page in the sitemap so subsequent searches can do content-level matching (not just title/tag matching). First run takes ~30 seconds over ~70 pages. Subsequent runs are near-instant because the disk cache + ETag revalidation handle unchanged pages with 304 responses. Returns a summary of fetches, cache hits, and any errors. |
| refresh_vipmp_sitemapA | Rebuild the sitemap from Adobe's published /sitemap.xml. Fetches every current /vipmp/docs/ page for its title, merges hand-curated search tags where paths still line up, and persists the result to sitemap.json so future server startups use the refreshed list. Run this if:
Takes about 30 seconds over ~80 pages. Safe to run repeatedly. |
| vipmp_cache_statsA | Return statistics about the on-disk docs cache — total entries, fresh/stale split, TTL, and the cache file path. Useful when debugging "why did it return stale content" or "is the cache being used at all". |
| vipmp_cache_clearA | Clear the docs cache. Pass a specific doc path to invalidate one entry, or omit to wipe the entire cache. Args: path: Optional docs path to invalidate (e.g. "/vipmp/docs/lga/create/"). If None, clears everything. |
| list_vipmp_endpointsA | Extract every HTTP endpoint (method + path) documented across the whole VIPMP docs. Returns a Markdown table grouped by resource area. Served from the pre-built index (milliseconds) when available. Falls
back to live extraction across the sitemap (~30s cold, ~5s warm) if
no index is present. Call |
| list_vipmp_error_codesA | Extract every error code documented across VIPMP docs — both numeric codes (e.g. 1117, 5117) and symbolic reason codes (e.g. INVALID_LM_MIGRATION_LEVEL). Args: query: Optional substring filter. Matches against code, reason, or endpoint. Case-insensitive. Served from the pre-built index when available, falling back to live
extraction if not. Call |
| get_vipmp_schemaA | Return structured field schemas (name, type, required, description) for VIPMP resources. Source: the Resources & Fields reference page. Args: resource_name: Optional case-insensitive substring to filter by resource name (e.g. "customer", "linkedMembership"). Omit to get every documented resource. |
| get_vipmp_code_examplesA | Extract code examples (JSON / curl / bash / python / etc.) from a specific docs page. Optionally filter by language. Args:
docs_path: Docs path (e.g. "/vipmp/docs/customer-account/create-customer-account").
language: Optional filter — "json", "python", "bash", etc. Matches
the |
| rebuild_vipmp_indexA | Rebuild the pre-extracted index of endpoints, error codes, and schemas
by walking every page in the current sitemap. Saves to
Run this if:
Takes ~60 seconds from cold cache, ~15-20 seconds from warm cache. |
| list_vipmp_releasesA | Return structured VIPMP release notes — the highest-signal information for developers tracking API changes. Served from the pre-built index (refreshed daily), so calls return in milliseconds. Each entry has a date, a section ("api_changes", "sandbox", "upcoming", or "earlier"), and one or more changes with titles and bodies. Covers both the main API changes and the Sandbox-specific changes at the bottom of the release-notes page — they're tracked separately. Args:
since: ISO date ("YYYY-MM-DD"). If provided, returns only releases
on or after this date. Example: "2026-01-01" for everything
since New Year. Entries without a date (catch-all "earlier
releases" buckets) are excluded when Examples: # What shipped in 2026? list_vipmp_releases(since="2026-01-01", section="api_changes") |
| get_vipmp_tipsA | Return SoftwareOne-authored operational tips for Topic matching is case-insensitive and punctuation-tolerant: "customer
lifecycle", "Customer Lifecycle", and "customer_lifecycle" all
resolve to the same section. Use Args: topic: The topic to fetch tips for (e.g. "customer lifecycle", "ordering flow", "3YC", "auth and sandbox"). Returns the raw tips markdown verbatim. Empty-topic and missing-topic cases return a short placeholder message rather than an error, so the assistant can explain gracefully when a topic has no tips yet. |
| list_vipmp_tip_topicsA | Return the list of topics for which SoftwareOne tips are available. Each entry maps to an H2 section in the tips file; call
|
| vipmp_server_infoA | Dump diagnostic info about the running server — useful as the first call when debugging "why is this not working" or "what version am I actually on". Returns package version, Python version, index age + counts, sitemap size, cache stats, and log file path. |
| describe_vipmp_endpointA | One-shot profile of a VIPMP endpoint. Returns schema, error codes, code examples, and any release-note mentions in one call — so Claude doesn't have to chain 4 separate tool invocations. Args: method: HTTP method (GET / POST / PATCH / PUT / DELETE). path: API path (e.g. "/v3/customers"). Example: describe_vipmp_endpoint(method="POST", path="/v3/customers") |
| validate_vipmp_requestA | Cross-check a JSON request body against the documented VIPMP schema. Finds the endpoint's schema in the pre-built index and checks every field against its documented type, required-ness, and constraints (character limits, numeric ranges). Flags unknown fields, missing required fields, type mismatches, constraint violations, and deprecated-field usage. Scope: top-level fields only. Nested objects are noted as
"not recursively validated" — check their schemas separately via
Args: endpoint: "METHOD /path" (e.g. "POST /v3/customers"). body_json: The request body to check, as a JSON string. Example: validate_vipmp_request( endpoint="POST /v3/customers", body_json='{"resellerId": "5556667778", "externalReferenceId": "342"}', ) |
| generate_vipmp_requestA | Emit a runnable code snippet for a VIPMP endpoint. Useful for "give me a starting point for calling POST /v3/customers". If you supply a body, it's used as-is. If not, we build a placeholder body from the schema, filling required fields with type-appropriate dummy values so the snippet shows the minimum valid shape. Args: endpoint: "METHOD /path" (e.g. "POST /v3/customers"). body_json: Optional JSON body to embed in the snippet. If omitted and the method is POST/PATCH/PUT, a placeholder body is constructed from the schema. language: Output language. One of: "curl" (default), "powershell", "python" (httpx), "csharp" (HttpClient). Example: generate_vipmp_request( endpoint="POST /v3/customers", language="python", ) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_request_body | Validate a JSON request body against the documented VIPMP schema for a given endpoint. Args: endpoint: The documented endpoint, e.g. "POST /v3/customers". body_json: The JSON body to check, as a string. |
| debug_error_code | Diagnose a VIPMP error code the user is hitting. Surfaces the docs for the code, what triggers it, and how to fix. Args: code: The error code (e.g. "1117", "5117", "INVALID_LM_MIGRATION_LEVEL"). endpoint: Optional endpoint it was triggered by (e.g. "POST /v3/customers") — tightens the diagnosis. |
| draft_order | Walk through creating a VIPMP order from scratch: prerequisites, schema, request body, and expected response. Args: customer_id: The existing customer's ID. offers: Comma-separated offer IDs (or a rough description — the model can look up actual IDs from the price list docs). market_segment: Market segment code (default "COM" for Commercial). |
| summarize_recent_changes | Summarise what's changed in the VIPMP API since a given date, optionally narrowed to a specific area of the docs. Args: since: ISO date ("YYYY-MM-DD"). Defaults to the last ~30 days if omitted — leave blank for "what's new recently". area: Optional topic filter — e.g. "orders", "3YC", "flexible discounts", "LGA", "subscriptions". Matches against release titles and bodies. |
| check_feature_status | Determine whether a VIPMP feature is live in production, shipping in Sandbox, upcoming, or not documented. Cross-references release notes with the docs index. Args: feature: A concise description of the feature (e.g. "Early Renewals", "Mid-term Upgrades", "LGA conversion", "Flexible Discounts for renewals"). |
| check_3yc_eligibility | Walk through the 3-Year Commit (3YC) eligibility and enrollment rules for a specific customer. Args: customer_id: The customer ID to evaluate. desired_commit_quantity: Optional target commit quantity the customer is considering. |
| start_vipmp_learning | Kick off a VIPMP learning session. Asks the learner's role and goal, then routes them to the right walkthrough prompt. Args: role: Which hat the learner is wearing. Default "either" — the curriculum serves both developers and technical PMs. goal: Free-text description of what they want to learn or build. Used to route to a specific walkthrough. |
| learn_customer_lifecycle | Walkthrough: VIPMP customer lifecycle. Covers the business states a customer passes through, the API transitions between them, and the gotchas that bite real implementations. Grounded in Adobe's live docs. |
| learn_ordering_flow | Walkthrough: VIPMP ordering flow end-to-end. Covers what an order means commercially, the API sequence to place one, and the failure modes that matter in production. Grounded in Adobe's live docs. |
| learn_3yc | Walkthrough: 3-Year Commit (3YC). Covers eligibility, commit-quantity math, enrollment flow, and the commercial consequences of under-consumption. Grounded in Adobe's live docs. |
| learn_subscriptions_and_renewals | Walkthrough: subscriptions and renewals. Covers cotermination, auto-renew, proration for mid-term changes, and the API surface that makes it all go. Grounded in Adobe's live docs. |
| learn_returns_and_refunds | Walkthrough: returns and refunds. Covers the return window, what qualifies as a return vs cancellation vs downgrade, refund mechanics, and the API sequence for each. Grounded in Adobe's live docs. |
| learn_auth_and_sandbox | Walkthrough: authentication, IMS credentials, and safe use of the Adobe VIPMP sandbox. Covers what a partner actually needs to start making API calls without breaking production. Grounded in Adobe's live docs. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- 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/softwareone-platform/swo-adobe-vipm-docs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server