Skip to content

Members

For admins: every member of the Venture Network has a membership status and a role. This page covers both, and how to change them from the CLI and from an MCP client.

A member is in one of three states: pending, active, or suspended. A pending member cannot use the API, the web app, or the CLI beyond signing in and seeing a waiting page. An active member has the full run of the product. A suspended member is blocked the same way a pending one is.

A gatech.edu address goes straight to active once its email is verified. Everyone else starts pending and needs an admin to approve them, or signs up with a network invite code and becomes active immediately. See Inviting people for the invite side of this.

vn admin members --status pending lists who is waiting, one line per member with their email, name, status, role, and id. vn admin approve <email> approves one, by email or member id. Over MCP, an admin client calls list_members (optionally filtered by status) and approve_member for the same two things. There is no web screen for this yet, only the CLI and MCP.

Approving an organization application also activates the applicant’s membership if it was pending, see Organization applications.

A member’s role is member or admin. Admins are ordinary members who happen to have the admin role, nothing more. vn admin promote <email> sets it to admin, vn admin demote <email> sets it back to member, and the MCP tool set_member_role does either. Nobody can change their own role, promote or demote, through any of these, so the first admin has to come from somewhere else. Seeding the first organization is an operator runbook documented in the internal docs, not here.

A member who is suspended cannot be promoted or demoted directly. Approve them first, which is a deliberate step rather than a role change quietly reviving a suspended account.

Suspending is MCP only for now, there is no vn admin suspend command. An admin client calls suspend_member with a member’s id. An admin cannot suspend themselves.

A suspended member is treated the same as a pending one everywhere in the product: the API refuses their requests with a membership_suspended problem, and the web app sends them to a page telling them their membership is paused and to contact the E-Club team if that looks wrong. Approving a suspended member again, with vn admin approve <email> or approve_member, sets them back to active and lifts the suspension. There is no separate unsuspend action.

Every admin tool checks two things on the caller: the connection has to carry the admin scope, and the signed-in account has to have the admin role. Either one alone is not enough. The admin scope shows up on the consent screen as “Manage members and invites”, unchecked by default. A client connected before an admin accepted that scope, or before the account had the admin role, has to disconnect and reconnect to pick it up. See MCP tools for the full scope list and the reconnect steps.