Memberstack
Memberstack API
MCP server
Checked on 2026-10-10 in the developer documentation.
How to use Memberstack
This guide gets you to a working membership layer on top of a site you already own: real accounts, gated content, paid plans, and the logged-in experience that turns a marketing site into a product. It is for founders and operators who build on Webflow (or plain HTML, or a custom front end) and want authentication, gating, and billing without standing up a back end. If you are a developer who wants full control of your own auth tables and Stripe webhooks, Memberstack is probably more than you need. If you want memberships live this week and you want to keep editing your site visually, it earns its place.
Getting set up
The first decision is where Memberstack sits in your stack, because it is a front-end layer, not a website builder. You bring the site (Webflow is the common pairing, but it works on any HTML front end), and Memberstack adds the membership brain on top: accounts, login state, gated pages, and plans. Get that mental model right first, because everything else follows from it.
Connect your site and install the single script Memberstack gives you. That script is what reads the logged-in state on every page, so it belongs site-wide, not on one template. Then connect your Stripe account early, before you design a single pricing page, because your plans live in Memberstack but the money flows through Stripe, and you want that link proven before you build around it.
Read the full guideShow less
The decision that matters most at setup is your plan structure. Define plans as the thing a member belongs to, free and paid, and treat them as the unit of access. A clean structure (one free plan, one or two paid tiers) is far easier to gate against than a sprawl of overlapping plans you invented in case you needed them. Decide your custom member fields here too: what you want to capture at signup and store on the member, because adding a field later means going back and backfilling. Set up your core pages last: a signup page, a login page, a member dashboard or account area, and the password reset flow. Build the auth pages before the gated content, because you cannot test a gate without an account to test it with.
How to actually use it
The core of Memberstack is attributes: you mark elements on your page with data attributes, and Memberstack acts on them when the page loads. This is the workflow that delivers most of the value, so learn it first. You add an attribute to a form to turn it into a real signup or login form, you add an attribute to a button to make it log a member out, and you add gating attributes to content so it shows or hides based on whether someone is logged in and which plan they hold.
Work in this order. Build and test signup and login first, with a real test account, so you know accounts are being created and sessions persist across pages. Then build the logged-in experience: the dashboard, the account page where a member updates their details, the logout button. Only once login genuinely works do you gate content, because gating is meaningless until the login state underneath it is solid. Gate by logged-in-versus-not first, then layer plan-specific gating on top (this section for the paid tier, that section for everyone with an account).
Add paid plans once free membership works end to end. Connect a paid plan to its Stripe price, put a checkout button on your pricing page, and walk the full path yourself: sign up, pay through Stripe test mode, land back as a member who now holds the paid plan, and confirm the paid-only content actually unlocks. Drive the cancel path too, not just the buy path, because a member who downgrades or cancels should lose access, and the only way you know that works is to make it happen and watch the gated content disappear.
Power moves
The attributes only cover the common cases. The real flexibility is the front-end API: a JavaScript layer that lets you read the current member, react to login and logout events, and trigger flows from your own code. The moment you want behaviour the attributes do not express ("when this member logs in, fetch their data from another tool and render it"), the front-end API is the answer, and it separates someone who configured Memberstack from someone who actually builds on it.
Use member metadata as a lightweight store. You can hold structured JSON against a member, which means you can keep small bits of app state (preferences, progress, flags) without a database of your own. It is not a substitute for a real back end at scale, but for an early product it removes a whole layer of infrastructure.
Lean on Stripe's customer portal rather than rebuilding billing management yourself. Let members manage their own card, invoices, and cancellations through the portal Stripe already provides, and keep your own surface thin. And use the test mode discipline seriously: run every paid flow in Stripe test mode until it is boringly reliable, because a broken checkout is the one failure that costs you money and trust at the same time.
Where it fits your stack
Memberstack pairs most naturally with Webflow: Webflow owns the design and content, Memberstack owns the accounts and access. Stripe is non-optional for anything paid, and it is the system of record for the money even though plans live in Memberstack. From there, webhooks and an automation layer (Make, Zapier, or n8n) connect membership events to the rest of your operation: a new paid member can trigger a welcome sequence in your email tool, a row in your CRM, or a message in Slack. For an analytics and growth view, fire signup and upgrade events into your tracking so membership conversions sit in the same funnel as the rest of your acquisition.
The honest boundary: Memberstack is the front-of-house membership layer, not your data warehouse. If a member's data needs to live somewhere queryable and owned, push it out to your own store through webhooks rather than treating Memberstack as the permanent home.
Pitfalls to avoid
The most common mistake is gating content client-side and assuming it is secure. Hidden content can still be present in the page for anyone who looks, so never put genuinely sensitive material (paid downloads, private data) behind a hide-attribute alone and call it protected. Gate the access to the asset, not just the visibility of a link to it.
Two more catch people repeatedly. First, building the gates before login is solid: you end up debugging two layers at once and cannot tell which is broken, so prove auth first, always. Second, testing only the happy path: people verify that buying works and never check that cancelling revokes access, so they ship a product where churned members keep everything. Drive both sides. And keep your plan structure lean from day one, because a tangle of plans you created speculatively becomes a gating nightmare you maintain forever.
How to automate Memberstack
API and webhooks
Memberstack has a client package for the browser, a Node package for server-side member and plan management, and an Admin REST API with bearer-token authentication. It also sends webhooks, and the Node package can verify their signatures. An idea: when a member signs up for a paid plan, a webhook creates the contact in your CRM and starts onboarding.
MCP server
Memberstack has an official MCP server, currently in beta, at mcp.memberstack.com/mcp. It lets an AI tool search and manage members, plans, data tables and gated content, in both sandbox and live environments. An idea: ask your assistant to set up a new plan and gate a folder of pages in sandbox mode first, then check it before going live.
No-code automation
Check whether Memberstack has an app for Zapier or Make before you plan a flow around it. If not, a webhook can feed either tool, for example to post new paying members into Slack.