MCP tools
For users and admins: the Venture Network MCP server lets an AI client (Claude Code, claude.ai, Cursor, or anything that speaks MCP over Streamable HTTP) read and write the network on your behalf. It runs at https://venturenetwork.ai/mcp, authenticates with OAuth 2.1 through the same sign-in the web app uses, and every tool calls the same service the REST API and the CLI call, so there is one permission model. The tool list below is generated on every build by building the server in memory and probing each tool with every scope.
Connect
Section titled “Connect”Claude Code. One command registers the server, then the first tool call opens the consent screen in your browser:
claude mcp add --transport http venture-network https://venturenetwork.ai/mcpclaude.ai. Open Settings, then Connectors, choose “Add custom connector”, and enter https://venturenetwork.ai/mcp as the URL. Leave the client id and secret empty, the server registers the client itself. Finish the sign-in and consent in the window that opens.
Cursor. Add the server to ~/.cursor/mcp.json (or the project’s .cursor/mcp.json) and Cursor will prompt you to sign in the first time it connects:
{ "mcpServers": { "venture-network": { "url": "https://venturenetwork.ai/mcp" } }}Anything else. The discovery documents are at https://venturenetwork.ai/.well-known/oauth-protected-resource and https://venturenetwork.ai/.well-known/oauth-authorization-server. The access token’s audience is https://venturenetwork.ai/mcp. Connect to the web origin, not to api.venturenetwork.ai.
The consent screen
Section titled “The consent screen”The first connection sends you to https://venturenetwork.ai/oauth/consent, which lists the scopes the client asked for in plain language. openid is always on, its checkbox disabled, because the flow needs it to identify you. profile, network:read, network:write, offline_access, and admin are checkboxes, all checked by default except admin, and you can uncheck any of them. Accept only what the client needs. The admin scope only does anything for an account that already has the admin role, and an admin who connects without it gets no admin tools, which is deliberate.
Reconnect to pick up a new scope
Section titled “Reconnect to pick up a new scope”A connection carries exactly the scopes you accepted when it was made. When a scope is added to the server, or you want a client to have one you declined, disconnect and connect again so the consent screen shows the new scope. For Claude Code that is claude mcp remove venture-network followed by the claude mcp add command above.
Example prompts
Section titled “Example prompts”- “List the organizations in the Venture Network and tell me which ones I belong to.”
- “Find members who are founders with the skill react and summarize what they are looking for.”
- “Update my headline to say I am looking for a technical co-founder.”
- As an admin: “Show me who is waiting for approval and approve the two gatech.edu addresses.”
Tools by scope
Section titled “Tools by scope”No scope needed
Any connected client can call these.
get_health
Health of the Venture Network API and its database.
No arguments.
JSON input schema
{ "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#"}Scope profile or network:read: See your name and email, or Read your profile and the network
A client needs one of these scopes on its consent screen to call the tools below.
get_my_profile
The caller’s own Venture Network profile.
No arguments.
JSON input schema
{ "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#"}Scope network:read: Read your profile and the network
A client needs this scope on its consent screen to call the tools below.
get_event
One event by id, with the caller’s own RSVP status and the attendee counts.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}get_org
One organization by slug, with the caller’s own role in it.
| Argument | Type | Required | Notes |
|---|---|---|---|
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "required": [ "slug" ], "$schema": "http://json-schema.org/draft-07/schema#"}get_post
One ask by id, including a closed or expired one.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}get_progress
One progress entry by id.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}get_project
One project with its roster, its active affiliations, and the caller’s own standing on it.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1, The project, by id. |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The project, by id." } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}list_affiliations
Affiliations between projects and organizations, newest first. Pass project (an id) for one project’s, which anyone who can read the project may list, or org (a slug) for one organization’s, where owners and admins see every status and other members see active ones. Pass exactly one of them. status narrows an organization’s list only.
| Argument | Type | Required | Notes |
|---|---|---|---|
project |
string | no | min length 1, A project, by id. Leave out org when you pass this. |
org |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$, An organization, by slug. Leave out project when you pass this. |
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
status |
string, one of pending, active, declined, cancelled, ended |
no |
JSON input schema
{ "type": "object", "properties": { "project": { "description": "A project, by id. Leave out org when you pass this.", "type": "string", "minLength": 1 }, "org": { "description": "An organization, by slug. Leave out project when you pass this.", "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "status": { "type": "string", "enum": [ "pending", "active", "declined", "cancelled", "ended" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_events
Upcoming or past events across the caller’s organizations and the public network.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
when |
string, one of upcoming, past |
no | default "upcoming" |
mine |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "when": { "default": "upcoming", "type": "string", "enum": [ "upcoming", "past" ] }, "mine": { "type": "boolean" } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_intros
Intro requests the caller received, or the ones they sent, newest first.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
direction |
string, one of received, sent |
no | default "received" |
status |
string, one of pending, accepted, declined, expired |
no |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "direction": { "default": "received", "type": "string", "enum": [ "received", "sent" ] }, "status": { "type": "string", "enum": [ "pending", "accepted", "declined", "expired" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_notifications
The caller’s own notification inbox, newest first, optionally only the unread ones.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
unread |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "unread": { "type": "boolean" } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_org_invitations
Pending and past invitations for an organization, newest first. Needs the owner or admin role in it.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "required": [ "slug" ], "$schema": "http://json-schema.org/draft-07/schema#"}list_orgs
Organizations the caller belongs to, or the listed public organizations they could join.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
scope |
string, one of mine, listed |
no |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "scope": { "type": "string", "enum": [ "mine", "listed" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_posts
Open asks visible to the caller, across their organizations and the public feed.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
kind |
string, one of cofounder_wanted, operator_wanted, seeking_investors, idea, hiring, other |
no | |
mine |
boolean | no | |
author |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "kind": { "type": "string", "enum": [ "cofounder_wanted", "operator_wanted", "seeking_investors", "idea", "hiring", "other" ] }, "mine": { "type": "boolean" }, "author": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_progress
Progress entries, newest first. author (a handle) filters to what they wrote, project to entries on one project, kind to one kind. mine reads your own entries regardless of visibility, feed reads entries shared with you the way the post feed works.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
author |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
project |
string | no | |
mine |
boolean | no | |
feed |
boolean | no | |
kind |
string, one of milestone, customer, program, learning |
no |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "author": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" }, "project": { "type": "string" }, "mine": { "type": "boolean" }, "feed": { "type": "boolean" }, "kind": { "type": "string", "enum": [ "milestone", "customer", "program", "learning" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_projects
Projects, newest first. With org, the projects affiliated with that organization that the caller can read (the caller must be in it). With q, a search of network projects by name. With member (a handle), the projects that member is on that the caller can read. With none of them, every project the caller is on. Pass org alone, or q and member, never org with either.
| Argument | Type | Required | Notes |
|---|---|---|---|
org |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
status |
string, one of active, archived, all |
no | default "active" |
member |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
q |
string | no | max length 80 |
JSON input schema
{ "type": "object", "properties": { "org": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "status": { "default": "active", "type": "string", "enum": [ "active", "archived", "all" ] }, "member": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" }, "q": { "type": "string", "maxLength": 80 } }, "$schema": "http://json-schema.org/draft-07/schema#"}search_members
Search Venture Network members by role, skills, what they are looking for, affiliation, and free text.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
q |
string | no | max length 120 |
roles |
array of string, one of founder, operator, investor, idea_person, business_owner |
no | |
lookingFor |
array of string, one of cofounder, team, investors, talent, advice, ideas |
no | |
skills |
array of string | no | |
affiliation |
string | no | max length 120 |
org |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 }, "q": { "type": "string", "maxLength": 120 }, "roles": { "type": "array", "items": { "type": "string", "enum": [ "founder", "operator", "investor", "idea_person", "business_owner" ] } }, "lookingFor": { "type": "array", "items": { "type": "string", "enum": [ "cofounder", "team", "investors", "talent", "advice", "ideas" ] } }, "skills": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 } }, "affiliation": { "type": "string", "maxLength": 120 }, "org": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "$schema": "http://json-schema.org/draft-07/schema#"}Scope network:write: Update your profile on your behalf
A client needs this scope on its consent screen to call the tools below.
assign_to_project
Put an active member on a project by handle, or change the role or title of someone already on it. A lead of the project or a network admin. An archived project takes no new people and no changes.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1, The project, by id. |
handle |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
role |
string, one of lead, member |
no | |
title |
string | no | max length 80 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The project, by id." }, "handle": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" }, "role": { "type": "string", "enum": [ "lead", "member" ] }, "title": { "type": "string", "maxLength": 80 } }, "required": [ "id", "handle" ], "$schema": "http://json-schema.org/draft-07/schema#"}close_post
Close one of the caller’s own asks.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}create_event
Create an event, hosted by the caller or by an organization they own or administer.
| Argument | Type | Required | Notes |
|---|---|---|---|
title |
string | yes | min length 3, max length 140 |
description |
string | no | max length 4000, default "" |
startsAt |
string (date-time) | yes | |
endsAt |
string (date-time) | yes | |
timezone |
string | no | max length 64, default "America/New_York" |
locationKind |
string, one of in_person, virtual, hybrid |
no | default "in_person" |
location |
string | no | max length 200, default "" |
joinUrl |
`` or string (uri) | no | default "" |
capacity |
integer or null | no | default null |
scope |
string, one of public, org_members |
no | default "public" |
publish |
boolean | no | default false |
orgSlug |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "title": { "type": "string", "minLength": 3, "maxLength": 140 }, "description": { "default": "", "type": "string", "maxLength": 4000 }, "startsAt": { "type": "string", "format": "date-time" }, "endsAt": { "type": "string", "format": "date-time" }, "timezone": { "default": "America/New_York", "type": "string", "maxLength": 64 }, "locationKind": { "default": "in_person", "type": "string", "enum": [ "in_person", "virtual", "hybrid" ] }, "location": { "default": "", "type": "string", "maxLength": 200 }, "joinUrl": { "default": "", "anyOf": [ { "type": "string", "const": "" }, { "type": "string", "maxLength": 400, "format": "uri" } ] }, "capacity": { "default": null, "anyOf": [ { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, { "type": "null" } ] }, "scope": { "default": "public", "type": "string", "enum": [ "public", "org_members" ] }, "publish": { "default": false, "type": "boolean" }, "orgSlug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "required": [ "title", "startsAt", "endsAt" ], "$schema": "http://json-schema.org/draft-07/schema#"}create_post
Publish an ask to one or more organizations the caller belongs to, or to the public feed.
| Argument | Type | Required | Notes |
|---|---|---|---|
kind |
string, one of cofounder_wanted, operator_wanted, seeking_investors, idea, hiring, other |
yes | |
title |
string | yes | min length 3, max length 140 |
body |
string | yes | max length 4000 |
tags |
array of string | no | max items 10, default [] |
expiresAt |
string (date-time) or null | no | default null |
publishTo |
object | no | default {"orgSlugs":[],"public":false} |
publishTo.orgSlugs |
array of string | no | max items 20, default [] |
publishTo.public |
boolean | no | default false |
JSON input schema
{ "type": "object", "properties": { "kind": { "type": "string", "enum": [ "cofounder_wanted", "operator_wanted", "seeking_investors", "idea", "hiring", "other" ] }, "title": { "type": "string", "minLength": 3, "maxLength": 140 }, "body": { "type": "string", "maxLength": 4000 }, "tags": { "default": [], "maxItems": 10, "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 } }, "expiresAt": { "default": null, "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ] }, "publishTo": { "default": { "orgSlugs": [], "public": false }, "type": "object", "properties": { "orgSlugs": { "default": [], "maxItems": 20, "type": "array", "items": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "public": { "default": false, "type": "boolean" } } } }, "required": [ "kind", "title", "body" ], "$schema": "http://json-schema.org/draft-07/schema#"}create_progress
Log a progress entry on your own profile, or on a project you are on the roster of. Share it to one or more organizations you belong to, or to the public feed, with publishTo.
| Argument | Type | Required | Notes |
|---|---|---|---|
kind |
string, one of milestone, customer, program, learning |
yes | |
title |
string | yes | min length 3, max length 140 |
note |
string | no | max length 2000, default "" |
occurredAt |
string (date-time) | no | |
projectId |
string | no | min length 1 |
publishTo |
object | no | default {"orgSlugs":[],"public":false} |
publishTo.orgSlugs |
array of string | no | max items 20, default [] |
publishTo.public |
boolean | no | default false |
JSON input schema
{ "type": "object", "properties": { "kind": { "type": "string", "enum": [ "milestone", "customer", "program", "learning" ] }, "title": { "type": "string", "minLength": 3, "maxLength": 140 }, "note": { "default": "", "type": "string", "maxLength": 2000 }, "occurredAt": { "type": "string", "format": "date-time" }, "projectId": { "type": "string", "minLength": 1 }, "publishTo": { "default": { "orgSlugs": [], "public": false }, "type": "object", "properties": { "orgSlugs": { "default": [], "maxItems": 20, "type": "array", "items": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" } }, "public": { "default": false, "type": "boolean" } } } }, "required": [ "kind", "title" ], "$schema": "http://json-schema.org/draft-07/schema#"}create_project
Create a project owned by its team, with the caller seated as its lead. Visibility network lets any member find it, private shows it only to its roster and to the owners and admins of organizations it is affiliating with.
| Argument | Type | Required | Notes |
|---|---|---|---|
name |
string | yes | min length 2, max length 80 |
summary |
string | no | max length 280, default "" |
description |
string | no | max length 4000, default "" |
stage |
string, one of idea, validating, building, launched |
no | default "idea" |
visibility |
string, one of network, private |
no | default "network" |
JSON input schema
{ "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 80 }, "summary": { "default": "", "type": "string", "maxLength": 280 }, "description": { "default": "", "type": "string", "maxLength": 4000 }, "stage": { "default": "idea", "type": "string", "enum": [ "idea", "validating", "building", "launched" ] }, "visibility": { "default": "network", "type": "string", "enum": [ "network", "private" ] } }, "required": [ "name" ], "$schema": "http://json-schema.org/draft-07/schema#"}delete_progress
Delete one of your own progress entries for good.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}delete_project
Delete a project for good, with its roster and every affiliation, history included. A lead of the project or a network admin. Archive it with update_project instead to keep it.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1, The project, by id. |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The project, by id." } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}invite_project
Invite a project to affiliate with an organization. Needs the owner or admin role in the organization, and the project must be one the caller can read. The project’s leads accept or decline.
| Argument | Type | Required | Notes |
|---|---|---|---|
org |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$, The inviting organization, by slug. |
project |
string | yes | min length 1, The project, by id. |
kind |
string, one of community, program, investor |
yes | |
message |
string | no | max length 500, default "" |
JSON input schema
{ "type": "object", "properties": { "org": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$", "description": "The inviting organization, by slug." }, "project": { "type": "string", "minLength": 1, "description": "The project, by id." }, "kind": { "type": "string", "enum": [ "community", "program", "investor" ] }, "message": { "default": "", "type": "string", "maxLength": 500 } }, "required": [ "org", "project", "kind" ], "$schema": "http://json-schema.org/draft-07/schema#"}invite_project_team
Send org invitations to every person on an affiliated project’s roster who is not yet in the organization and has no pending invitation to it. The organization side, while the affiliation is active. Answers who was invited and who was skipped.
| Argument | Type | Required | Notes |
|---|---|---|---|
affiliation |
string | yes | min length 1, The affiliation, by id, from list_affiliations. |
JSON input schema
{ "type": "object", "properties": { "affiliation": { "type": "string", "minLength": 1, "description": "The affiliation, by id, from list_affiliations." } }, "required": [ "affiliation" ], "$schema": "http://json-schema.org/draft-07/schema#"}invite_to_org
Invite someone to an organization by email. Needs the owner or admin role in it.
| Argument | Type | Required | Notes |
|---|---|---|---|
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
email |
string (email) | yes | pattern ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$, max length 200 |
role |
string, one of member, admin |
no | default "member" |
expiresInDays |
integer | no | min 1, max 90, default 14 |
JSON input schema
{ "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "email": { "type": "string", "maxLength": 200, "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "default": "member", "type": "string", "enum": [ "member", "admin" ] }, "expiresInDays": { "default": 14, "type": "integer", "minimum": 1, "maximum": 90 } }, "required": [ "slug", "email" ], "$schema": "http://json-schema.org/draft-07/schema#"}join_org
Join an organization, or ask to join one whose policy is request.
| Argument | Type | Required | Notes |
|---|---|---|---|
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
message |
string | no | max length 500 |
JSON input schema
{ "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "message": { "type": "string", "maxLength": 500 } }, "required": [ "slug" ], "$schema": "http://json-schema.org/draft-07/schema#"}mark_notifications_read
Mark the caller’s notifications read. With no ids, marks every one of them read.
| Argument | Type | Required | Notes |
|---|---|---|---|
ids |
array of string | no | max items 100 |
JSON input schema
{ "type": "object", "properties": { "ids": { "maxItems": 100, "type": "array", "items": { "type": "string" } } }, "$schema": "http://json-schema.org/draft-07/schema#"}remove_from_project
Take someone off a project by handle and answer the project as it now stands. Naming your own handle leaves the project. Removing anyone else needs a lead of the project or a network admin. The last lead can never come off.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1, The project, by id. |
handle |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The project, by id." }, "handle": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" } }, "required": [ "id", "handle" ], "$schema": "http://json-schema.org/draft-07/schema#"}request_affiliation
Ask an organization to affiliate with a project. A lead of the project or a network admin, and the organization must be public or one the caller belongs to. Its owners and admins accept or decline.
| Argument | Type | Required | Notes |
|---|---|---|---|
project |
string | yes | min length 1, The project, by id. |
org |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$, The organization to ask, by slug. |
kind |
string, one of community, program, investor |
yes | |
message |
string | no | max length 500, default "" |
JSON input schema
{ "type": "object", "properties": { "project": { "type": "string", "minLength": 1, "description": "The project, by id." }, "org": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$", "description": "The organization to ask, by slug." }, "kind": { "type": "string", "enum": [ "community", "program", "investor" ] }, "message": { "default": "", "type": "string", "maxLength": 500 } }, "required": [ "project", "org", "kind" ], "$schema": "http://json-schema.org/draft-07/schema#"}request_intro
Ask a member for an introduction, from their profile, from one of their asks, or from an event they host. Name a toHandle for a profile intro, or a contextId for a post or event intro.
| Argument | Type | Required | Notes |
|---|---|---|---|
contextKind |
string, one of profile, post, event |
yes | |
toHandle |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
contextId |
string | no | |
message |
string | yes | min length 1, max length 500 |
JSON input schema
{ "type": "object", "properties": { "contextKind": { "type": "string", "enum": [ "profile", "post", "event" ] }, "toHandle": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" }, "contextId": { "type": "string" }, "message": { "type": "string", "minLength": 1, "maxLength": 500 } }, "required": [ "contextKind", "message" ], "$schema": "http://json-schema.org/draft-07/schema#"}respond_to_affiliation
Decide or close an affiliation. The side that did not ask may accept or decline while it is pending, the side that asked may cancel while it is pending, and either side may end an active one. When the organization side accepts, inviteTeam (true unless sent as false) sends org invitations to the project’s roster people who are not yet members.
| Argument | Type | Required | Notes |
|---|---|---|---|
affiliation |
string | yes | min length 1, The affiliation, by id, from list_affiliations. |
action |
string, one of accept, decline, cancel, end |
yes | |
inviteTeam |
boolean | no | default true, Read only on accept. Defaults to true. |
JSON input schema
{ "type": "object", "properties": { "affiliation": { "type": "string", "minLength": 1, "description": "The affiliation, by id, from list_affiliations." }, "action": { "type": "string", "enum": [ "accept", "decline", "cancel", "end" ] }, "inviteTeam": { "description": "Read only on accept. Defaults to true.", "default": true, "type": "boolean" } }, "required": [ "affiliation", "action" ], "$schema": "http://json-schema.org/draft-07/schema#"}respond_to_intro
Accept or decline an intro request you received. Accepting gives both sides each other’s email address.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
decision |
string, one of accept, decline |
yes |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "decision": { "type": "string", "enum": [ "accept", "decline" ] } }, "required": [ "id", "decision" ], "$schema": "http://json-schema.org/draft-07/schema#"}revoke_org_invitation
Revoke a pending invitation. Needs the owner or admin role in the organization.
| Argument | Type | Required | Notes |
|---|---|---|---|
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "id": { "type": "string", "minLength": 1 } }, "required": [ "slug", "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}rsvp_event
Say you are going to an event, or cancel an RSVP. A full event puts you on the waitlist.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
status |
string, one of going, cancelled |
yes |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "status": { "type": "string", "enum": [ "going", "cancelled" ] } }, "required": [ "id", "status" ], "$schema": "http://json-schema.org/draft-07/schema#"}set_event_cover
Set or remove an event’s cover image from an image link. The host, or an owner or admin of the host organization.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
url |
string (uri) | no | max length 2000 |
remove |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "url": { "type": "string", "maxLength": 2000, "format": "uri" }, "remove": { "type": "boolean" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}set_my_avatar
Set the caller’s profile photo from an image link (a copy is stored, the link is not served) or from their linked LinkedIn account, or remove it.
| Argument | Type | Required | Notes |
|---|---|---|---|
source |
string, one of url, linkedin |
no | default "url" |
url |
string (uri) | no | max length 2000 |
remove |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "source": { "default": "url", "type": "string", "enum": [ "url", "linkedin" ] }, "url": { "type": "string", "maxLength": 2000, "format": "uri" }, "remove": { "type": "boolean" } }, "$schema": "http://json-schema.org/draft-07/schema#"}set_org_image
Set or remove an organization’s logo or cover photo from an image link. Owners and admins only.
| Argument | Type | Required | Notes |
|---|---|---|---|
slug |
string | yes | pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$ |
kind |
string, one of logo, cover |
yes | |
url |
string (uri) | no | max length 2000 |
remove |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$" }, "kind": { "type": "string", "enum": [ "logo", "cover" ] }, "url": { "type": "string", "maxLength": 2000, "format": "uri" }, "remove": { "type": "boolean" } }, "required": [ "slug", "kind" ], "$schema": "http://json-schema.org/draft-07/schema#"}set_post_photo
Set or remove the photo on one of the caller’s own asks from an image link.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
url |
string (uri) | no | max length 2000 |
remove |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "url": { "type": "string", "maxLength": 2000, "format": "uri" }, "remove": { "type": "boolean" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}set_progress_photo
Set or remove the photo on one of your own progress entries from an image link.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
url |
string (uri) | no | max length 2000 |
remove |
boolean | no |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "url": { "type": "string", "maxLength": 2000, "format": "uri" }, "remove": { "type": "boolean" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}update_affiliation
Edit a pending or active affiliation. kind and cohort are the organization side’s to set. terms, the private deal terms, either side may write, and only the two sides can read them.
| Argument | Type | Required | Notes |
|---|---|---|---|
affiliation |
string | yes | min length 1, The affiliation, by id, from list_affiliations. |
kind |
string, one of community, program, investor |
no | |
cohort |
string | no | max length 80 |
terms |
string | no | max length 4000 |
JSON input schema
{ "type": "object", "properties": { "affiliation": { "type": "string", "minLength": 1, "description": "The affiliation, by id, from list_affiliations." }, "kind": { "type": "string", "enum": [ "community", "program", "investor" ] }, "cohort": { "type": "string", "maxLength": 80 }, "terms": { "type": "string", "maxLength": 4000 } }, "required": [ "affiliation" ], "$schema": "http://json-schema.org/draft-07/schema#"}update_my_profile
Update the caller’s own Venture Network profile.
| Argument | Type | Required | Notes |
|---|---|---|---|
handle |
string | no | pattern ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$ |
headline |
string | no | max length 120 |
bio |
string | no | max length 2000 |
roles |
array of string, one of founder, operator, investor, idea_person, business_owner |
no | |
skills |
array of string | no | max items 30 |
lookingFor |
array of string, one of cofounder, team, investors, talent, advice, ideas |
no | |
affiliation |
string | no | max length 120 |
program |
string | no | max length 80 |
location |
string | no | max length 80 |
links |
object | no | |
visibility |
string, one of public, members_only |
no |
JSON input schema
{ "type": "object", "properties": { "handle": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$" }, "headline": { "type": "string", "maxLength": 120 }, "bio": { "type": "string", "maxLength": 2000 }, "roles": { "type": "array", "items": { "type": "string", "enum": [ "founder", "operator", "investor", "idea_person", "business_owner" ] } }, "skills": { "maxItems": 30, "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 } }, "lookingFor": { "type": "array", "items": { "type": "string", "enum": [ "cofounder", "team", "investors", "talent", "advice", "ideas" ] } }, "affiliation": { "type": "string", "maxLength": 120 }, "program": { "type": "string", "maxLength": 80 }, "location": { "type": "string", "maxLength": 80 }, "links": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string", "format": "uri" } }, "visibility": { "type": "string", "enum": [ "public", "members_only" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}update_progress
Edit one of your own progress entries.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
kind |
string, one of milestone, customer, program, learning |
no | |
title |
string | no | min length 3, max length 140 |
note |
string | no | max length 2000 |
occurredAt |
string (date-time) | no |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "kind": { "type": "string", "enum": [ "milestone", "customer", "program", "learning" ] }, "title": { "type": "string", "minLength": 3, "maxLength": 140 }, "note": { "type": "string", "maxLength": 2000 }, "occurredAt": { "type": "string", "format": "date-time" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}update_project
Edit a project, change its visibility, or archive or unarchive it by setting status. A lead of the project or a network admin.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1, The project, by id. |
name |
string | no | min length 2, max length 80 |
summary |
string | no | max length 280 |
description |
string | no | max length 4000 |
stage |
string, one of idea, validating, building, launched |
no | |
visibility |
string, one of network, private |
no | |
status |
string, one of active, archived |
no |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The project, by id." }, "name": { "type": "string", "minLength": 2, "maxLength": 80 }, "summary": { "type": "string", "maxLength": 280 }, "description": { "type": "string", "maxLength": 4000 }, "stage": { "type": "string", "enum": [ "idea", "validating", "building", "launched" ] }, "visibility": { "type": "string", "enum": [ "network", "private" ] }, "status": { "type": "string", "enum": [ "active", "archived" ] } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}Scope admin: Manage members and invites
A client needs this scope on its consent screen to call the tools below.
approve_member
Approve a pending member. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}approve_org_application
Approve an organization application: creates the org with the applicant as owner and activates a pending applicant. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}create_invite
Create an invite code. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
note |
string | no | max length 200, default "" |
maxUses |
integer | no | min 1, max 500, default 1 |
expiresInDays |
integer | no | min 1, max 365 |
JSON input schema
{ "type": "object", "properties": { "note": { "default": "", "type": "string", "maxLength": 200 }, "maxUses": { "default": 1, "type": "integer", "minimum": 1, "maximum": 500 }, "expiresInDays": { "type": "integer", "minimum": 1, "maximum": 365 } }, "$schema": "http://json-schema.org/draft-07/schema#"}decline_org_application
Decline an organization application with an optional reason the applicant receives. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | min length 1 |
reason |
string | no | max length 500, default "" |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1 }, "reason": { "default": "", "type": "string", "maxLength": 500 } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}list_invites
List invite codes, newest first. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
cursor |
string | no | max length 400 |
limit |
integer | no | min 1, max 100, default 25 |
JSON input schema
{ "type": "object", "properties": { "cursor": { "type": "string", "maxLength": 400 }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_members
List members, optionally filtered by membership status. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
status |
string, one of pending, active, suspended |
no |
JSON input schema
{ "type": "object", "properties": { "status": { "type": "string", "enum": [ "pending", "active", "suspended" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}list_org_applications
List organization applications, optionally filtered by status, newest first. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
status |
string, one of pending, approved, declined |
no |
JSON input schema
{ "type": "object", "properties": { "status": { "type": "string", "enum": [ "pending", "approved", "declined" ] } }, "$schema": "http://json-schema.org/draft-07/schema#"}set_member_role
Set a member to admin or member. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes | |
role |
string, one of member, admin |
yes |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string" }, "role": { "type": "string", "enum": [ "member", "admin" ] } }, "required": [ "id", "role" ], "$schema": "http://json-schema.org/draft-07/schema#"}suspend_member
Suspend a member. Requires the admin scope and role.
| Argument | Type | Required | Notes |
|---|---|---|---|
id |
string | yes |
JSON input schema
{ "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#"}