GoTo Webinar MCP by usefulapi

Read webinars, registrants and attendees; register people and schedule webinars in GoTo Webinar.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
78%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'goto_webinar_list_registration_fields' name length outside 3-30 rangein goto_webinar_list_registration_fields

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,464Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (1.93% of 128k context)

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

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools