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

A
Calidad de la descripción
100%
Integridad del esquema
97%
Calidad de los nombres
68%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (3)

  • LOWTool 'kourses_list_member_memberships' name length outside 3-30 rangeen kourses_list_member_memberships
  • LOWTool 'kourses_grant_membership_access' name length outside 3-30 rangeen kourses_grant_membership_access
  • LOWTool 'kourses_revoke_membership_access' name length outside 3-30 rangeen kourses_revoke_membership_access

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,141Tokens (definiciones de herramientas)
~1.7 KBTamaño de respuesta típico
Impacto moderado en la atención (0.89% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (5)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada5 herramientas