Skip to main content
Doozy’s MCP server lets AI assistants search your workspace and answer questions about activities, people, and account usage. It is read-only and uses your Doozy permissions.
MCP access is in beta. It is available on Scale and Enterprise plans. Contact hello@doozy.live to request access.

Before you connect

Your account must be on a Scale or Enterprise plan with MCP access enabled. An account admin will need to enable MCP access for your roles in your workspace settings. You can connect an MCP client only to an account where you are a member. If you belong to more than one eligible Doozy account, the consent screen lets you choose which account to connect.

Configure account access

Workspace admins manage MCP access in Workspace Settings → API, MCP & Webhooks. Select the lowest role that can connect. Selecting Member also gives access to Managers and Admins. Selecting Manager also gives access to Admins. Clear every role to disable MCP for the account. MCP roles are configured separately from Public API roles.

Connect an MCP client

Use the server URL and client-specific instructions in your Personal Settings. When the client opens Doozy:
  1. Sign in to Doozy.
  2. Review the application details and requested access.
  3. Choose the account to connect, if prompted.
  4. Select Allow access, or select Deny to decline the request.
Only connect Doozy MCP to applications that you trust. The MCP client receives the read-only reporting access described below. The connection uses your Doozy account and permissions. Manage your active connections in Personal Settings. The list shows only your connections for the account currently selected in Doozy.

Access and permissions

MCP can only access information you are allowed to see in Doozy. Connecting an AI client does not give it additional access. To request a complete activity report:
  • Quizzes: You must be a quiz admin.
  • Surveys and polls: You must be an admin of the survey or poll.
  • Tracks: You must be a track admin or have cohort access that grants permission to manage the track.
When you ask about a person, MCP only returns activity results you have permission to view. Anonymous survey responses are never linked to an individual. Search and activity lists only include activities whose results you can view. Finding a workspace member does not grant access to their activity results.

Available tools

The server provides the following read-only tools. Reports are returned as Markdown by default. Quiz, survey, and Track reports tell the client when more results are available. Searches the members, Tracks, quizzes, surveys, groups, and cohorts you can access. Each result includes its Doozy link and the ID needed by other tools. Use the matching detail or report tool for more information. Set include_inactive: true to include archived or inactive items. Set include_slack_user_id: true to include connected Slack user IDs.

doozy_list_activities

Lists quizzes, surveys, and tracks you can report on. Use this first when you have an activity name and need its ID. Inputs:
  • type: quiz, survey, track, or all (default).
  • search: Case-insensitive substring search on the activity name, up to 200 characters.
  • include_archived: Include archived quizzes, surveys, and Tracks. It defaults to false.
The tool returns up to 50 matches. On very large workspaces, choose one activity type or use a report tool with an activity ID to narrow the search.

doozy_quiz_report

Returns quiz summary analytics and participant rows. Summary output includes participation status, completion rate, average and median scores, score percentiles, score distribution, pass threshold results, delivery instances, and optional per-question analytics. Use detail: "full" for per-question analytics. Markdown participant pages support up to 100 rows per call. Use cursor from the response to continue. You can also filter by status, score range, group, and participant name or email, and restrict the report to a delivery instance. Sort by score, name, completion time, or duration. from_date and to_date inclusively filter the participant’s quiz assignment time (assigned_at).

doozy_survey_report

Returns survey or poll response rates and per-question aggregates. Use detail: "full" to include comments and question-level answers. Use compare_instances: true for response-rate trends across sends. Trend comparison is available in Markdown only. Named surveys support respondent pagination, response status, group, delivery instance, and sort filters. Anonymous surveys return aggregate results only. Individual responses cannot be attributed to people, so anonymous surveys cannot use group filters or export respondent rows. from_date and to_date inclusively filter the participant’s delivery time (received_at). When instance_id is set, the exact delivery takes precedence and date bounds are ignored.

doozy_track_report

Returns track member counts and progress, with optional member rows ordered by most recent enrollment. Use detail: "full" for per-step survey and quiz results in Markdown when member rows are included. Filter by member status. Set include_enrollees: false for Markdown summary output; exports always include matching member rows. from_date and to_date inclusively filter the enrollment start time (started_at).

doozy_track_details

Returns a Track’s admins, dates, duration, and day-by-day schedule. The schedule includes the content and settings for each step. Use doozy_track_report for dates tied to a member’s enrollment.

doozy_member_status

Finds one member’s status across the Tracks you can see for that person. Match by exact display name, email address, Doozy user ID, or Slack user ID. The result includes their email address and Doozy user ID. Set include_slack_user_id: true to include their connected Slack user ID. When more than one person has the same display name, use an email address or user ID.

doozy_find_member

Finds one active workspace member by exact display name, email address, Doozy user ID, or Slack user ID. It returns their name, email address, Doozy user ID, and Doozy link. Set include_slack_user_id: true to include their connected Slack user ID. If several people have the same display name, the tool returns possible matches so the client can retry with an email address or user ID.

doozy_list_members

Returns active workspace members with their names, email addresses, and Doozy user IDs. Set include_slack_user_id: true to include connected Slack user IDs. Use track_enrollment: "none" or "any" to find members based on whether they are enrolled in a Track you can access.

doozy_member_activity_summary

Returns one member’s email address, Doozy user ID, and the Tracks, quizzes, and surveys you can see for them. Match by exact display name, email address, Doozy user ID, or Slack user ID. Set include_slack_user_id: true to include their connected Slack user ID.

doozy_list_groups and doozy_group_details

Lists workspace groups and the IDs used by quiz and survey report filters. Set include_inactive: true to include inactive and hidden groups. The detail tool returns the active member count and member list with email addresses and Doozy user IDs. Set include_slack_user_id: true to include connected Slack user IDs.

doozy_list_cohorts and doozy_cohort_details

Lists cohorts you can access. Active and upcoming cohorts are returned by default. Set include_inactive: true to include completed, archived, and skipped cohorts. Results include cohort IDs, status, member counts, and Doozy links. The detail tool returns the cohort’s program and members with their email addresses and Doozy user IDs. Set include_slack_user_id: true to include connected Slack user IDs.

doozy_usage_summary

Returns the workspace name, connected user’s email address, and an account-level usage overview with total members, enabled members, members active in the last 30 days, active share, and integration status. Use a quiz, survey, or Track report for activity-specific results. The result includes the workspace timezone.

doozy_quiz_details

Returns the quiz’s admins, dates, questions, answer choices, correct answers, and explanations.

doozy_quiz_participant_result

Returns one participant’s submitted and correct answers for a quiz delivery. Use the quiz, delivery, and participant IDs from doozy_quiz_report.

doozy_survey_details

Returns the survey’s admins, dates, response settings, and questions.

doozy_survey_participant_result

Returns one named participant’s submitted answers and delivery timestamps for one survey instance, with an exact person-result link. Use the survey, instance, and participant IDs returned by doozy_survey_report. Anonymous surveys remain aggregate-only and return no attributable result.

doozy_track_enrollee_result

Returns one member’s Track enrollment, including its status, dates, step progress, and available activity results. Use the Track and enrollment IDs from doozy_track_report. Results include links to the relevant screen in Doozy, so you can open an activity, report, or person directly. Export files do not include these links.

Output formats and limits

Date bounds use ISO 8601 date-times with Z or a UTC offset. Both the start and end are included. Use doozy_usage_summary to check the workspace timezone when filtering by a local business day. Report tools default to Markdown. Quiz, survey, and track reports also accept format: "csv", format: "tsv", or format: "json".
  • Markdown responses are limited to 24,000 characters. If a response is shortened, use a smaller limit, add filters, or set detail: "summary".
  • Exports include all matching rows and ignore the Markdown limit. Exports are limited to 10,000 rows and 1,000,000 characters. Add filters if an export exceeds either limit.
  • CSV and TSV exports include a header row. JSON exports return an array of row objects. CSV and TSV emit null or missing export fields as empty strings; JSON preserves null values.
  • Quiz exports contain participant identity, groups, status, score, points, duration, attempts, question totals, completion time, and delivery instance ID.
  • Survey exports contain named respondent and delivery fields. With detail: "full", each respondent’s question-level answers become separate rows; a non-respondent gets one blank row per question. The expanded result still must stay within the 10,000-row limit.
  • Track exports contain member, enrollment, status, progress, step counts, groups, delivery timestamps, and completion time. Track detail data is available in Markdown; exports remain member-row exports.

REST API and MCP

The Doozy Public API is separate from MCP. Public API keys cannot be used to connect an MCP client. Download the OpenAPI specification for the REST API’s request and response formats.

API authentication

Authenticate REST API requests with an API key.

API errors

Review REST API error responses.