MCP Server
14 min
personizely exposes its public api to ai assistants via the model context protocol https //modelcontextprotocol io connect chatgpt, claude, cursor, or any mcp compatible client to your personizely account and ask questions in natural language "how is my homepage popup performing this month?", "stop campaign #12", "compare the goal conversion rate of variation a and b over the last 14 days" endpoint https //mcp personizely net oauth 2 1 with pkce each user signs in to their own personizely account; tokens are scoped to the account they pick during consent the server supports the streamable http transport https //modelcontextprotocol io/specification/2025 03 26/basic/transports#streamable http and dynamic client registration (rfc 7591) — most mcp clients can connect just by pointing at the url above permissions only personizely admins and owners can authorize an mcp client the oauth consent screen will reject the request if your role is member ask your account admin to either authorize the client themselves or grant you admin access first connecting claude desktop / claude code in your mcp settings, add { "mcpservers" { "personizely" { "url" "https //mcp personizely net" } } } restart the client the first call will pop up a browser window asking you to sign in to personizely and pick which account to grant access to chatgpt settings → connectors → add connector → enter name personizely url https //mcp personizely net chatgpt will discover oauth automatically and walk you through the sign in flow cursor settings → mcp → add new mcp server → paste https //mcp personizely net other clients any mcp client that supports oauth 2 1 with dynamic client registration point it at the url above; the rest is auto discovered what you can do the server exposes 16 tools across 5 areas the assistant chooses which tool to call based on what you ask — you don't need to know the names the list below is a reference if you want to know what's possible websites if your account has more than one website, every other tool needs a websiteid the assistant will list your websites and ask which one you mean tool what it does list websites lists every website under your account campaigns campaigns are personalization or a/b test rules that run alongside your site's normal content (theme overrides, shipping rules, full page experiments, etc ) tool what it does list campaigns list campaigns filter by active and type ( personalization , themeexperiment , productpersonalization , …) get campaign full details for a single campaign, including its variations start campaign activate a campaign stop campaign deactivate a campaign get campaign results per variation analytics views, reach, goal conversions, revenue per visitor, statistical significance, sample size progress optional dimension ( device / country / channel / referrer ) for breakdowns optional comparemetric ( goalconversionrate / valuepervisitor / profitpervisitor ) controls which metric drives significance + improvement widgets widgets are popups, callouts, bars, and embedded blocks that render on your site tool what it does list widgets list widgets filter by active and type ( popup , callout , bar , embedded ) get widget full details for a single widget, including its variations and any running experiments start widget activate a widget stop widget deactivate a widget get widget results aggregate analytics for a widget — views, conversions, completions, goal conversions, revenue get widget experiment results per variation analytics for a specific widget experiment same shape as get campaign results available comparemetric values conversionrate , completionrate , goalconversionrate , valuepervisitor , profitpervisitor , extravaluepervisitor the control variation in widget experiments represents visitors who weren't shown the widget — comparisons measure the lift the widget produces over no widget goalconversionrate measures conversion into goals defined on the widget (purchase, etc ); conversionrate measures interaction inside the widget itself (form submit, cta click) goals goals are the conversion events you track on your site (purchases, signups, custom events) tool what it does list goals list the goals configured for a website get goal details for a single goal targets targets are audience segments (e g "returning visitors from us on mobile") used by campaigns and widgets tool what it does list targets list the audience targets configured for a website get target details for a single target filters available on results endpoints both get campaign results and get widget results (and the experiment variant) accept a filters object scoping the analytics to a slice of traffic datefrom / dateto — iso 8601 timestamps device / browser / os — arrays of values country / region / city — arrays of values utmsource / utmmedium / utmcampaign / utmcontent / utmterm referrer visitortype — new or returning example "how did campaign 5 perform last week on mobile in the us?" — the assistant translates this into get campaign results with the appropriate filters scopes the server requests two oauth scopes read — read campaigns, widgets, goals, targets, and analytics write — start/stop campaigns and widgets you'll see both on the consent screen if you only want a read only assistant, the mcp client can request only read ; write tools then 403 if the assistant tries to call them troubleshooting "this mcp server doesn't implement oauth" — almost always a cors or discovery issue on the client side the server exposes / well known/oauth protected resource and a www authenticate challenge on unauthenticated requests; if your client fetches them but rejects the response, it's likely a transport issue specific to that client try a different mcp client to confirm "comparemetric not available for experiments with a control group" — conversionrate and completionrate measure interaction inside the widget, which a control visitor never sees they're rejected when the experiment has a control share use goalconversionrate or one of the per visitor revenue metrics instead tokens stop working after a long idle — refresh tokens are long lived, but if the connected app has been disconnected from your account (settings → connected apps), you'll need to re authorize disconnecting settings → connected apps in your personizely dashboard lists every mcp client (and any oauth integration) that has access to your account click disconnect to immediately revoke all tokens for that client
