{
  "info": {
    "name": "Memberspot — mcp.ai",
    "description": "REST API for the Memberspot MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/memberspot",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "memberspot_create_login_token",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/login/token",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "login",
            "token"
          ]
        },
        "description": "Tool to generate a one-hour login token for a user. Use when you need to auto-login a user by their UID (token expires after one hour).",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"uid\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_delete_users",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/users",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "users"
          ]
        },
        "description": "Tool to delete one or more users from the platform. Use when you need to remove specified users by their email addresses. Only existing school users are removed; invalid or out-of-school emails are ig",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"emails\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_delete_users_post",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/users/post",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "users",
            "post"
          ]
        },
        "description": "Tool to delete multiple users by email using POST method. Use this if your client does not support DELETE with body. Only existing school users are removed; invalid or out-of-school emails are ignored",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"emails\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_find_user_by_mail",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/find/user/by/mail",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "find",
            "user",
            "by",
            "mail"
          ]
        },
        "description": "Tool to retrieve a user's details by their email address. Use when you need to look up a user after obtaining their email.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_get_user_course_progress",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/user/course/progress",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "user",
            "course",
            "progress"
          ]
        },
        "description": "Tool to retrieve user course progress for a specific course and email. Use when you need to check how far a user has progressed through a particular course. Returns details including active posts, com",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"\",\n  \"courseId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_grant_user_offer_by_mail",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/grant/user/offer/by/mail",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "grant",
            "user",
            "offer",
            "by",
            "mail"
          ]
        },
        "description": "Tool to grant a user access to an offer by email. If the user does not exist, a new user is created automatically.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"email\": \"\",\n  \"orderId\": \"\",\n  \"firstname\": \"\",\n  \"grantOffer\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_list_custom_user_properties",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/custom/user/properties",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "custom",
            "user",
            "properties"
          ]
        },
        "description": "Tool to list all defined custom user properties. Use when you need to retrieve metadata of custom user properties after authentication.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_list_offers",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/offers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "offers"
          ]
        },
        "description": "Retrieves all available offers (products/course bundles) from the Memberspot school. Use this to discover offer IDs before granting or revoking user access. Each offer contains course IDs it grants ac",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_list_user_course_progress",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/user/course/progress",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "user",
            "course",
            "progress"
          ]
        },
        "description": "Retrieves paginated list of all course progress for a specific user by email. Use to track user progress across all enrolled courses, including active and completed posts. Rate limited to 4 requests p",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"\",\n  \"pageLength\": 0,\n  \"lastLoadedCourseId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_list_users",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/users",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "users"
          ]
        },
        "description": "List all users in your Memberspot school with optional filtering and pagination. Use this tool to: - Retrieve all users in your membership platform - Filter users by offer access, course enrollment, o",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"active\": false,\n  \"offerId\": \"\",\n  \"courseId\": \"\",\n  \"pageLength\": 0,\n  \"lastLoadedId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_set_offer_expires",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/set/offer/expires",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "set",
            "offer",
            "expires"
          ]
        },
        "description": "Tool to set or remove the expiration date for an offer for a user. Use when you need to grant time-limited access to an offer or remove time limits from an existing offer. When no value is provided fo",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"uid\": \"\",\n  \"offerId\": \"\",\n  \"expiresAt\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_set_order_state",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/set/order/state",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "set",
            "order",
            "state"
          ]
        },
        "description": "Manages order-based offer access for a user in Memberspot. Use this to activate (grant access), deactivate (revoke access), or delete an order-based offer association. Order IDs typically come from pa",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"\",\n  \"active\": false,\n  \"orderId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "memberspot_set_user_offer_state",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/set/user/offer/state",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "set",
            "user",
            "offer",
            "state"
          ]
        },
        "description": "Tool to revoke or set the state of a specific offer for a user. Use after confirming whether the user should gain or lose access.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"\",\n  \"active\": false,\n  \"offerId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}