GoTo Webinar MCP by usefulapi
Read webinars, registrants and attendees; register people and schedule webinars in GoTo Webinar.
Should I use this
Quality & Safety
Findings (1)
- LOWin goto_webinar_list_registration_fields
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"goto-webinar": {
"url": "https://goto-webinar.usefulapi.io/mcp"
}
}
}Remote endpoints
https://goto-webinar.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (12)
🟢goto_webinar_list_webinars(fromTime, toTime, page, size)
List the organizer's webinars that start in a date range (default: now to 90 days ahead). Good first call to find a webinar key. GET /organizers/{organizerKey}/webinars.
Input Schema
{
"type": "object",
"properties": {
"fromTime": {
"description": "Start of the range. Default: now.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"
},
"toTime": {
"description": "End of the range. Default: 90 days after fromTime.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"
},
"page": {
"description": "Page number, from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size, 1 to 200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_get_webinar(webinarKey)
Get one webinar: subject, times, time zone, registration URL, registrant count and limit. GET /organizers/{organizerKey}/webinars/{webinarKey}.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_sessions(webinarKey, page, size)
List the sessions of one webinar (a series or sequence has several). GET /organizers/{organizerKey}/webinars/{webinarKey}/sessions.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"page": {
"description": "Page number, from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size, 1 to 200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_get_performance(webinarKey)
Get attendance and engagement figures for all sessions of one webinar. GET /organizers/{organizerKey}/webinars/{webinarKey}/performance.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_registrants(webinarKey, page, limit)
List the registrants of one webinar with their status (WAITING, APPROVED or DENIED). Use goto_webinar_get_registrant for all fields. GET /organizers/{organizerKey}/webinars/{webinarKey}/registrants.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"page": {
"description": "Page number, from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Page size, 1 to 200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_get_registrant(webinarKey, registrantKey)
Get one registrant with all captured fields and the join URL. GET /organizers/{organizerKey}/webinars/{webinarKey}/registrants/{registrantKey}.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"registrantKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Registrant key, from goto_webinar_list_registrants."
}
},
"required": [
"webinarKey",
"registrantKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_registration_fields(webinarKey)
List the registration form fields of one webinar: required flag and allowed values, including custom fields. GET /organizers/{organizerKey}/webinars/{webinarKey}/registrants/fields.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴goto_webinar_create_registrant(webinarKey, firstName, lastName, email, phone, ...)
Register one person for a scheduled webinar. GoTo sends the person a confirmation email unless the organizer turned that off. Needs a GoTo Webinar plan that allows registration. POST /organizers/{organizerKey}/webinars/{webinarKey}/registrants. Not retried.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"firstName": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "First name."
},
"lastName": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Last name."
},
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email address of the person."
},
"phone": {
"description": "Phone number.",
"type": "string",
"maxLength": 50
},
"organization": {
"description": "Company or organization.",
"type": "string",
"maxLength": 200
},
"jobTitle": {
"description": "Job title.",
"type": "string",
"maxLength": 200
},
"source": {
"description": "Where the registration came from (optional tracking text).",
"type": "string",
"maxLength": 200
},
"resendConfirmation": {
"description": "Resend the confirmation email if the person already registered (default false).",
"type": "boolean"
}
},
"required": [
"webinarKey",
"firstName",
"lastName",
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_attendees(webinarKey, page, size)
List the people who attended any session of one webinar. GET /organizers/{organizerKey}/webinars/{webinarKey}/attendees.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"page": {
"description": "Page number, from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size, 1 to 200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_panelists(webinarKey)
List the panelists (presenters) of one webinar. GET /organizers/{organizerKey}/webinars/{webinarKey}/panelists.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢goto_webinar_list_recordings(webinarKey, page, limit)
List the recording assets of one webinar. GET /webinars/{webinarKey}/recordingAssets.
Input Schema
{
"type": "object",
"properties": {
"webinarKey": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Webinar key, from goto_webinar_list_webinars."
},
"page": {
"description": "Page number, from 0 (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Page size, 1 to 200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"webinarKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴goto_webinar_create_webinar(subject, description, startTime, endTime, timeZone, ...)
Schedule one single-session webinar for the organizer. Times are ISO 8601 UTC. Creates a visible webinar; it does not send registrant emails. POST /organizers/{organizerKey}/webinars. Not retried.
Input Schema
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Webinar title."
},
"description": {
"description": "Webinar description.",
"type": "string",
"maxLength": 4000
},
"startTime": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$",
"description": "Start, ISO 8601 UTC."
},
"endTime": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$",
"description": "End, ISO 8601 UTC. Must be after startTime."
},
"timeZone": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "IANA time zone shown to registrants, e.g. Europe/Prague."
},
"locale": {
"description": "Locale, e.g. en_US.",
"type": "string",
"maxLength": 16
}
},
"required": [
"subject",
"startTime",
"endTime",
"timeZone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence