Skip to content

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.

Claude Code. One command registers the server, then the first tool call opens the consent screen in your browser:

Terminal window
claude mcp add --transport http venture-network https://venturenetwork.ai/mcp

claude.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 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.

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.

  • “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.”

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#"
}