Kourses MCP by usefulapi
List memberships, check member access, add members and grant or revoke access in Kourses.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (3)
- LOWen kourses_list_member_memberships
- LOWen kourses_grant_membership_access
- LOWen kourses_revoke_membership_access
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"kourses": {
"url": "https://kourses.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://kourses.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢kourses_list_memberships(page, per_page)
List the published memberships of the Kourses website this key belongs to. Each has an id, name, slug and URL. Kourses API: GET /memberships.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (default 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kourses_list_member_memberships(member)
List the memberships a member can access now (permissions that have not expired). Give the member by id or email. Kourses API: GET /members/{member}/memberships.
Esquema de entrada
{
"type": "object",
"properties": {
"member": {
"type": "string",
"minLength": 1,
"maxLength": 254,
"description": "Member id or email address."
}
},
"required": [
"member"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴kourses_create_member(email, first_name, last_name, country, state, ...)
Create a member on the Kourses website. If a member with this email already exists, the given fields OVERWRITE the stored ones and the status is 'updated'. Sends an activation email only when send_activation_notification is true (default false here; the API default is true). Kourses API: POST /members.
Esquema de entrada
{
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
"description": "Member email address (the member's identity in Kourses)."
},
"first_name": {
"description": "First name (Kourses default: 'Unnamed').",
"type": "string",
"maxLength": 255
},
"last_name": {
"description": "Last name (Kourses default: 'Member').",
"type": "string",
"maxLength": 255
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"state": {
"type": "string",
"maxLength": 255
},
"city": {
"type": "string",
"maxLength": 255
},
"zip": {
"description": "Postal code.",
"type": "string",
"maxLength": 64
},
"address": {
"type": "string",
"maxLength": 255
},
"address_2": {
"description": "Apartment, suite, etc.",
"type": "string",
"maxLength": 255
},
"title": {
"description": "Profile title.",
"type": "string",
"maxLength": 255
},
"send_activation_notification": {
"description": "Email an activation link to a new member (default false).",
"type": "boolean"
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴kourses_grant_membership_access(member, membership_id, ends_at, skip_drip_schedule, run_email_integrations, ...)
Give a member access to a membership, optionally until a date. No email is sent unless send_notification is true. Repeating a call keeps one permission, but sends the email again when send_notification is true. Kourses API: POST /members/{member}/memberships/{membership}/permissions.
Esquema de entrada
{
"type": "object",
"properties": {
"member": {
"type": "string",
"minLength": 1,
"maxLength": 254,
"description": "Member id or email address."
},
"membership_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Membership id (from kourses_list_memberships)."
},
"ends_at": {
"description": "When the access stops working: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$"
},
"skip_drip_schedule": {
"description": "Skip the membership's drip schedule (default false).",
"type": "boolean"
},
"run_email_integrations": {
"description": "Run the membership's email integrations (default false).",
"type": "boolean"
},
"send_notification": {
"description": "Email the member about the new access (default false).",
"type": "boolean"
}
},
"required": [
"member",
"membership_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴kourses_revoke_membership_access(member, membership_id, ends_at)
Remove a member's access to a membership now, or on ends_at when it is given. The member loses the content they paid for; confirm first. Kourses API: DELETE /members/{member}/memberships/{membership}/permissions.
Esquema de entrada
{
"type": "object",
"properties": {
"member": {
"type": "string",
"minLength": 1,
"maxLength": 254,
"description": "Member id or email address."
},
"membership_id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Membership id (from kourses_list_memberships)."
},
"ends_at": {
"description": "When the access stops working: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$"
}
},
"required": [
"member",
"membership_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia