Memberstack MCP server for AI agents

Live

OAUTH 2.1

MEMBERSHIP

Customer Support

The Memberstack MCP connector lets AI agents manage members, plans, gated content, and permissions for membership-based applications. Agents can create and configure apps, switch environments, and manage members, plans, data tables, and gated content on behalf of the authenticated dashboard user.

  • Acts as the user: Member management operations and app configurations are tied to the dashboard user who authorized the agent, keeping every action fully auditable.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: Permissions enforced per-user. 90-day audit trail.
Memberstack MCP
agent · Acme Q3
Run
Which Memberstack apps do I have access to and what environment are they running in?
S
memberstackmcp_listapps
85ms
Memberstack MCP agent
You have access to 3 Memberstack apps — your production app is running in LIVE mode and your two staging apps are in SANDBOX mode.
Sources: 3 apps retrieved
memberstackmcpmcp
3 apps
18:29
Message Claude...

Tools your developer agent reaches for on Memberstack MCP, scoped per user.

CALL ANY TOOL
71 tools covering members, plans, gated content, data tables, custom fields, app creation, and environment switching.
memberstackmcp_addfreeplan
Addfreeplan
Attaches a free plan to a member. Granting complimentary access, trial memberships, or promotional access. Free plans provide content/feature access without payment. Immediate access granted. Environment-specific (SANDBOX or LIVE). Member ID and Plan ID. Updated Member with plan connection.
Parameters
Name
Type
Required
Description
context
string
Required
Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
input
object
Required
No description.
memberstackmcp_createcustomcontent
Createcustomcontent
memberstackmcp_createdatarecord
Createdatarecord
memberstackmcp_creatememberemailpassword
Creatememberemailpassword
memberstackmcp_createprice
Createprice
memberstackmcp_createrestrictedurlgroup
Createrestrictedurlgroup
memberstackmcp_currentuser
Currentuser
memberstackmcp_deletecustomfield
Deletecustomfield
memberstackmcp_deletedatatable
Deletedatatable
memberstackmcp_deleteplan
Deleteplan
memberstackmcp_deleterestrictedurlgroup
Deleterestrictedurlgroup
memberstackmcp_exportmembers
Exportmembers
memberstackmcp_getcontentgroup
Getcontentgroup
memberstackmcp_getcustomfields
Getcustomfields
memberstackmcp_getdatatable
Getdatatable
memberstackmcp_getdatatables
Getdatatables
memberstackmcp_getmember
Getmember
memberstackmcp_getmemberscount
Getmemberscount
memberstackmcp_getplan
Getplan
memberstackmcp_getsentemails
Getsentemails
memberstackmcp_importmembers
Importmembers
memberstackmcp_linkplanstorestrictedurlgroup
Linkplanstorestrictedurlgroup
memberstackmcp_regenerateteaminvitetoken
Regenerateteaminvitetoken
memberstackmcp_removeonetimeplan
Removeonetimeplan
memberstackmcp_switchapp
Switchapp
memberstackmcp_updatecustomfield
Updatecustomfield
memberstackmcp_updatedatatable
Updatedatatable
memberstackmcp_updatemember
Updatemember
memberstackmcp_updateplan
Updateplan
memberstackmcp_updateprice
Updateprice

For more tools, view docs.

Build your Agent
Same auth pattern across every framework.
Python · LlamaIndex
from langchain_mcp_adapters.client import MultiServerMCPClient
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="memberstackmcp")

mcp = MultiServerMCPClient({
"memberstackmcp": {
"url": "https://mcp.scalekit.com/memberstackmcp",
"headers": {"Authorization": "Bearer " + token}
}
})
tools = await mcp.get_tools()
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "memberstackmcp" });

const openai = new OpenAI();
// Connect to MCP at https://mcp.scalekit.com/memberstackmcp
// Pass: Authorization: Bearer + token
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "memberstackmcp" });

const anthropic = new Anthropic();
// Connect to MCP at https://mcp.scalekit.com/memberstackmcp
// Pass: Authorization: Bearer + token
from google.adk.agents import LlmAgent
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="memberstackmcp")
# Connect to MCP at https://mcp.scalekit.com/memberstackmcp
# Pass: Authorization: Bearer + token
Try these prompts
Paste any prompt into your agent to get started.
Discover & inspect
Copy the prompt
Copied
List all my Memberstack apps and tell me which environment each one is currently using.
Copy the prompt
Copied
List the members who signed up this week and show the plan each one has.
Configure & switch
Copy the prompt
Copied
Switch my active app to the staging app and then switch the environment to SANDBOX so I can safely test.
Copy the prompt
Copied
Create a new Memberstack app called 'Community Portal' on the Webflow stack and confirm it switched to that app automatically.
SEE HOW AUTH WORKS
User authorises once. Every agent call after uses their token with scope enforcement.
1
Authorize
Your user connects
Memberstack MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Memberstack MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Memberstack MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Memberstack MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other connectors.
Engineering Teams
DevOps assistant agent
Polls GitHub for failing checks and stale PRs, opens Linear issues for the ones that need work, and posts a daily digest to Slack. It acts as the engineer, not a shared service account.
Engineering Teams
Engineering standup agent
Pulls commits from GitHub and GitLab, tracks issue movement in Jira, and posts a per-engineer standup brief to Slack. Each engineer's activity is read on their own delegated OAuth.
Engineering Teams
Auto release notes agent
Reads merged GitHub PRs, groups them into structured release notes, publishes the page to Notion, and announces the release in Slack. Every call runs on the engineer's own delegated OAuth.
Engineering Teams
Slack triage
Polls Slack for new messages, classifies bugs and support requests with a LangGraph router, files GitHub issues or Zendesk tickets, and confirms in the thread.
Test other agents
See the same per-user auth pattern across other connectors.
ENGINEERING
DevOps assistant agent
Poll GitHub for failing checks and stale pull requests, open Linear issues for the ones that need work, and digest to Slack.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs into structured release notes, publish the page to Notion, and announce the release in Slack.
ENGINEERING
Engineering standup agent
Pull commits from GitHub and GitLab, track Jira issue movement, and post a per-engineer standup brief to Slack.
ENGINEERING
Slack triage agent
Classify new Slack messages as bugs or support requests, file the GitHub issue or Zendesk ticket, and reply in the thread.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared token looks fine in a demo. In production every call looks like a service account. Scalekit resolves the real user credential.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Memberstack today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Memberstack MCP as the user or as a shared key?
Scalekit resolves a per-user credential for each call. The Memberstack MCP audit log shows the real user identity, not a shared service account.
Where is the Memberstack OAuth token stored?
In Scalekit's AES-256 encrypted vault, isolated per tenant. Tokens are auto-refreshed before expiry and revocable from a single dashboard without code changes.
Can I limit what the agent is allowed to do in Memberstack MCP?
Pass a toolNames filter to listScopedTools. Scalekit enforces the allowed set before every API call — the agent cannot invoke tools outside the approved list.
What happens when a user revokes Memberstack MCP access?
The token is invalidated at the next tool call. The agent fails closed rather than falling back to a shared key. Other users are unaffected and the revocation event is logged with a timestamp.
Can the agent switch a Memberstack app to LIVE mode and make writes against production member data?
Yes, if the tool is in the approved list and the user's credential has LIVE access. To prevent unintended production writes, pass a toolNames filter that excludes switchMemberstackEnvironment or restrict the allowed environment values at the application layer. Scalekit logs every tool call with the resolved user identity, so any environment switch is traceable.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""memberstackmcp"": {
""url"": ""https://mcp.scalekit.com/memberstackmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.memberstackmcp]
url = ""https://mcp.scalekit.com/memberstackmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""memberstackmcp"": {
""url"": ""https://mcp.scalekit.com/memberstackmcp"",
""type"": ""http""
}
}
}