MemberSpot MCP server
32 operations0 webhooks
Membership and course platform access with MemberSpot - read users, offers, courses, exams and course progress, and grant or revoke offers, course access and custom properties.
Try MemberSpot with your agent
Connect MemberSpot, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in MemberSpot on my account, then run one read-only example and show me the result.
MemberSpot tools and triggers
Tools are what your agent can do in MemberSpot through Corsair's MCP server. Triggers are the MemberSpot events a routine can start from.
Users
- Course ProgressRead-only
Lists every course progress record for a user by email, paginated
users.courseProgress
- Course Progress By UidRead-only
Lists every course progress record for a user by uid, paginated
users.courseProgressByUid
- Course Progress DetailRead-only
Returns one user’s progress in one course, by email
users.courseProgressDetail
- Course Progress Detail By UidRead-only
Returns one user’s progress in one course, by uid
users.courseProgressDetailByUid
- DeleteDestructive
Permanently deletes up to 10 users by email; deleted accounts and their progress cannot be restored
users.delete
- Delete By UidDestructive
Permanently deletes up to 10 users by uid; deleted accounts and their progress cannot be restored
users.deleteByUid
- Find By EmailRead-only
Returns one user by email; a member that does not exist answers 400 USER_NOT_FOUND rather than an empty result
users.findByEmail
- Find By UidRead-only
Returns one user by uid; a uid that does not exist answers an empty body, which fails the output schema rather than returning null
users.findByUid
- Grant OfferWrite
Creates or updates a user by email and optionally grants an offer in the same call; reports whether the user is new
users.grantOffer
- Grant Offer By UidWrite
Grants an offer to an existing user by uid
users.grantOfferByUid
- ListRead-only
Returns a page of users, optionally filtered by offer or course, with a cursor for the next page
users.list
- Login TokenWrite
Mints a token and login URL that signs a user in automatically, which is a credential; the token expires after one hour
users.loginToken
- OffersRead-only
Returns the offers granted to a user with their active state and expiry
users.offers
- Set Course Start DateWrite
Sets when a user’s access to a course starts
users.setCourseStartDate
- Set Custom PropertiesWrite
Sets several custom user properties at once by email; properties omitted from the map are left unchanged
users.setCustomProperties
- Set Custom Properties By UidWrite
Sets several custom user properties at once by uid
users.setCustomPropertiesByUid
- Set Custom PropertyWrite
Sets one custom user property by email; a null value blanks it
users.setCustomProperty
- Set Custom Property By UidWrite
Sets one custom user property by uid
users.setCustomPropertyByUid
- Set Offer ExpiresWrite
Sets or clears the expiry date of an offer for a user by uid
users.setOfferExpires
- Set Offer StateWrite
Activates or deactivates an offer for a user by email, which is how access is revoked
users.setOfferState
- Set Offer State By UidWrite
Activates or deactivates an offer for a user by uid
users.setOfferStateByUid
- Set Order StateWrite
Sets the state of an offer tied to an order for a user by email
users.setOrderState
- Set Order State By Order IdWrite
Sets the state of every offer carrying a given orderId, across all users
users.setOrderStateByOrderId
- Set Order State By UidWrite
Sets the state of an offer tied to an order for a user by uid
users.setOrderStateByUid
Chapters
- Enable AccessWrite
Grants a user access to one chapter by email
chapters.enableAccess
- Enable Access By UidWrite
Grants a user access to one chapter by uid
chapters.enableAccessByUid
Exams
- ListRead-only
Lists all exams of the school, including the examId used for results
exams.list
- ResultsRead-only
Lists the exam results of every user who took an exam, with each run and whether it passed
exams.results
Auth
- CheckRead-only
Returns the school the API key belongs to, which is the cheapest way to confirm a key works
auth.check
Courses
- ListRead-only
Lists all courses of the school with their ids and types
courses.list
Custom Properties
- ListRead-only
Lists the custom user properties defined for the school
customProperties.list
Offers
- ListRead-only
Lists the offers available in the school
offers.list
Connect MemberSpot to Claude, ChatGPT or Cursor
- 1
Connect MemberSpot in Corsair
Add your MemberSpot API key once in Corsair. Corsair stores the credential encrypted and makes the MemberSpot API calls for your agent, so it never goes into a prompt or a config file. Connect MemberSpot
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs MemberSpot. On a ChatGPT personal plan, connect MemberSpot here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, MemberSpot's read and write operations run right away and its 2 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/memberspot, add the MemberSpot plugin, and connect with an API key. Then call methods like corsair.memberspot.api.auth.check() from your app. Corsair keeps each tenant isolated.
Yes. MemberSpot requires an API key from your MemberSpot account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit MemberSpot, GitHub, Notion, Stripe, and the rest. Trigger MemberSpot from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for membership and course platform access with MemberSpot - read users, offers, courses, exams and course progress, and grant or revoke offers, course access and custom properties. Common builds include sync jobs, admin tooling, and agents that call MemberSpot APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per MemberSpot API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/memberspot in the open repo. When MemberSpot ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your MemberSpot data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store MemberSpot data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put MemberSpot on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 2 destructive MemberSpot operations. You can change a link's mode at hub.corsair.dev/me.