create_project
Register a new MemberPass project on behalf of the authenticated creator.
Purpose
Scaffold a new project. Enforces the creator tier's project limit, handle uniqueness, the tier-level custom_handle capability, and the platform-type availability check before the row lands.
Required ability
project:create
Input schema
{
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string", "minLength": 5, "maxLength": 255 },
"description": {
"type": "string",
"maxLength": 1000,
"description": "HTML is filtered to a safe subset before storage."
},
"handle": {
"type": "string",
"pattern": "^[a-z0-9-]{5,255}$",
"description": "Requires Starter / Growth tier (custom_handle capability). Free tier tokens receive TEAM_TIER_REQUIRED when a handle is supplied."
},
"type": {
"type": "string",
"description": "Platform type. Defaults to telegram. Read memberpass://enums/platform-type for the live + available set."
},
"terms": { "type": "string", "format": "uri", "maxLength": 255 },
"privacy": { "type": "string", "format": "uri", "maxLength": 255 },
"metrics": { "type": "boolean" },
"active": {
"type": "boolean",
"description": "Defaults to true. Set false to create in draft state."
},
"bot_id": {
"type": "string",
"description": "UUID of a telegram_bot row to attach at creation."
},
"team_id": {
"type": "string",
"description": "UUID of the owning team. Defaults to the token's scoped team."
}
}
}banner and photo are not MCP inputs. Banner + avatar are uploaded as
multipart image files via the REST API or through the creator dashboard so
the server can resize and host them on S3 — MCP clients have no multipart
channel, so they can create a project without artwork and add it later through
either of those paths.
Output shape
{
"data": {
"id": "prj_01HX...",
"name": "Research Premium",
"handle": "research-premium-abc123",
"team_id": "tem_01HX...",
"active": true,
"created_at": "2026-05-18T10:05:00Z"
}
}Example prompts
"Create a MemberPass project called 'Research Premium'."
"Scaffold a project with handle 'weekend-deep-dives' and a one-paragraph description." (requires Starter+ tier)
Failure modes
TEAM_TIER_REQUIRED— creator has hit their plan's project limit, or they passed a handle while on a tier that does not includecustom_handle. Error context carriesrequired_capability.VALIDATION_FAILED— name too short, handle malformed / taken,typeis not a valid or not-yet-available platform.
Related
How is this guide?