@capivv/mcp-server 0.5.41 → 0.5.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,7 +33,7 @@ export function registerCreateExperimentTool(server, client) {
33
33
  config: z
34
34
  .record(z.string(), z.unknown())
35
35
  .optional()
36
- .describe('Variant-specific overrides. Two well-known conventions: (1) paywall template overrides — for entity_type=paywall experiments, any key here is deep-merged into the served paywall template (issue #16, v0.5.37). (2) pricing-A/B product override — set `product_override.external_id` (and optionally `product_override.product_id`) to a pre-created store SKU; the SDK helper `Capivv.getAssignedProductForExperiment` reads this to charge a different price per arm without paywall changes (#18 Primitive 1, v0.5.40). Any other custom keys flow through verbatim — the app reads them via `Capivv.getVariantForExperiment().config`.'),
36
+ .describe('Variant-specific overrides. Three well-known conventions: (1) paywall template overrides — for entity_type=paywall experiments, any key here is deep-merged into the served paywall template (issue #16, v0.5.37). (2) pricing-A/B product override — set `product_override.external_id` (and optionally `product_override.product_id`) to a pre-created store SKU; the SDK helper `Capivv.getAssignedProductForExperiment` reads this to charge a different price per arm without paywall changes (#18 Primitive 1, v0.5.40). (3) country-scoped product override — add `product_override.country_codes: ["BR", "PT", ...]` (ISO 3166-1 alpha-2) to restrict the override to specific countries; the SDK helper checks this against the storefront country when `countryCode` is passed (#18 Primitive 2, v0.5.42). Without country_codes, the override applies in every country. Any other custom keys flow through verbatim — the app reads them via `Capivv.getVariantForExperiment().config`.'),
37
37
  }))
38
38
  .describe('Variants to create with the experiment'),
39
39
  }, async (args) => {
@@ -29,7 +29,7 @@ export function registerUpdateVariantTool(server, client) {
29
29
  config: z
30
30
  .record(z.string(), z.unknown())
31
31
  .optional()
32
- .describe('New variant config JSON. Apps read this via Capivv.getVariantForExperiment to branch behavior. Two well-known conventions: paywall template overrides (deep-merged into the served template, v0.5.37) and pricing-A/B `product_override.external_id` (the SDK helper Capivv.getAssignedProductForExperiment reads this to charge a different SKU per arm, v0.5.40).'),
32
+ .describe('New variant config JSON. Apps read this via Capivv.getVariantForExperiment to branch behavior. Three well-known conventions: paywall template overrides (deep-merged into the served template, v0.5.37); pricing-A/B `product_override.external_id` (the SDK helper Capivv.getAssignedProductForExperiment reads this to charge a different SKU per arm, v0.5.40); country-scoped restriction `product_override.country_codes: ["BR"]` to limit the override to specific storefronts (v0.5.42).'),
33
33
  }, async ({ experiment_id, variant_id, ...updates }) => {
34
34
  const updated = await client.updateExperimentVariant(experiment_id, variant_id, updates);
35
35
  return { content: [{ type: 'text', text: JSON.stringify(updated, null, 2) }] };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capivv/mcp-server",
3
- "version": "0.5.41",
3
+ "version": "0.5.42",
4
4
  "description": "MCP server for managing Capivv subscription platform via AI assistants",
5
5
  "type": "module",
6
6
  "bin": {