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.
Membership states
Section titled “Membership states”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.
Approving
Section titled “Approving”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
Section titled “Suspending”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.
The admin scope over MCP
Section titled “The admin scope over MCP”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.