Skip to content
Dark mode

Supported tools

Review Mindtickle MCP tool parameters, response fields, scopes, limits, and side effects.

Use this reference to look up each tool’s required scope, parameters, returned fields, and behavior. Each tool is listed under its group with its identifier and required scope.

The server returns only tools permitted by the access token’s scopes through tools/list, and checks access on every tools/call. For authentication, token handling, and error codes, see Build a custom client.

The Mindtickle MCP server is hosted on each Mindtickle instance. Use the following URL pattern:

https://MINDTICKLE_INSTANCE_URL/mcp

Replace MINDTICKLE_INSTANCE_URL with the hostname of your Mindtickle instance (for example, example.mindtickle.com). Use only the hostname; do not include the protocol or any other path. The /mcp path is fixed and must not be modified.

Transport: The server supports MCP over HTTP. The protocol uses GET requests for streaming and POST requests for JSON-RPC communication. Authentication is required on every request; see Build a custom client for the authentication model, scopes, and token endpoint.

The list tools (find_deals, find_companies, find_contacts, and find_rooms) return up to 10 results per page by default. Use each tool’s documented limit and offset parameters to retrieve more results. mindtickle_search has separate result and pagination behavior described below. find_call uses result_count instead of limit, defaults to 20, and has no offset parameter.

Search content mindtickle_search read:search

Searches across Mindtickle learning content (including assets, modules, files, series, asset hubs, tags, and peers) using hybrid keyword and AI-powered semantic search. Results respect the user’s existing content access permissions. The content library includes training modules, sales assets, battle cards, and playbooks.

Parameter Type Required Description
query string Required 1 to 512 characters. Can’t contain --, /*, */, or ; (blocked to prevent SQL-injection-style patterns).
limit integer Optional Minimum 1; maximum 100; default 15. Results per call.
fetchPeers boolean Optional Default true. Include matching peer (colleague) profiles.
fetchSeries boolean Optional Default true. Include matching training series.
fetchModules boolean Optional Default true. Include matching training modules.
fetchFiles boolean Optional Default false. Include matching files.
fetchAssets boolean Optional Default false. Include matching assets. Set this to true to get the asset id needed for create_room or edit_room.
fetchHubs boolean Optional Default false. Include matching asset hubs.
Field Type Description
items array Up to limit items; an empty array on no matches. Each item includes a relevance score, matched excerpts in matchingText, and a metaDetails object whose fields depend on the result’s content type and which fetch* flags were set.
totalCount integer Total number of matches, not just the ones included in this response.
returnedCount integer Number of items actually included in this response.
hasNextPage boolean Whether more results exist beyond this response.
endCursor string A pagination cursor. See the note below.
entityWiseCount array Optional. Match count broken down by entity type.
  • “Find the latest battle card for our top competitor.”
  • “Search my Mindtickle content for the onboarding module.”
Ask Seller Copilot mindtickle_seller_copilot_ask read:copilot_chat

Sends a conversation to Mindtickle’s Seller Copilot and returns the assistant’s response. Draws context from the calling user’s own assigned training, sales assets, and Call AI recordings. Requires the client to maintain and send the full conversation history with each request. Supports optional streaming responses; see Streaming responses.

Parameter Type Required Description
input string or array Required Either a single question as a string, or the full conversation so far as an array of {role, content} turns (role is user or assistant; content can’t be empty). If you pass an array, its last turn’s role must be user.

Each call starts a new session. To continue a conversation, resend the full prior exchange in input with your new question as the final user turn. A previous response’s sessionId cannot resume the session.

Field Type Description
queryId string Server-assigned ID for this query.
sessionId string Session identifier assigned to this exchange for logging and correlation. It cannot be passed back as a request parameter.
fullText string The assembled answer text.
status string COMPLETED, IN_PROGRESS, or FAILED.
error object Present when the service reports an error in a returned tool response. Includes code and message.
  • “How do I improve my close rate on enterprise deals?”
  • “Summarize my last call with Example Organization.”
Find deals find_deals read:rooms

Looks up deals (CRM opportunities) by name, company, or stage. Useful for finding the deal behind a Digital Sales Room, or for confirming whether a room already exists for one. Results are scoped to the calling user’s organization. Every parameter is optional. An unfiltered call matches every deal in the organization, so filter whenever possible.

Parameter Type Required Description
query string Optional Partial match against the deal name.
company_ids string[] Optional Restricts results to one or more companies.
stage string[] Optional Restricts results to one or more deal stages. Exact match.
with_room boolean Optional true returns only deals that already have a room; false returns only deals without one; omit to return all deals. A deal whose only room is a draft counts as having no room, so check the room IDs in the result before you create a new room.
limit integer Optional Minimum 1; maximum 1,000, enforced by the server; default 10. Results per page.
offset integer Optional Minimum 0. Number of matches to skip for pagination.
include_total_count boolean Optional Default false. Adds total_count to the response, but only on the first page (when offset is omitted). Counting every match across a large pipeline can be slow, so pass this only when a count is actually needed.
Field Type Description
total_count integer Present only when include_total_count: true was passed, and only on the first page. Absence never means zero.
deals array Up to limit items; an empty array on no matches (a normal success response, not an error). Each item includes deal_id, name, stage, amount, currency, close_date, next_step, crm_deal_id, deal_guide_id (nullable; pass unchanged to fetch_deal_guide; null means no guide has been generated for that deal), company_id, company.name, owner.full_name, room_id (UUID, nullable), and room_id_int (nullable).
  • “Pull up the Example Organization deal.”
  • “Show me all deals in the Negotiation stage for Example Organization.”
  • “Which of my deals don’t have a room yet?”
Find companies find_companies read:rooms

Looks up companies (CRM accounts) by name, so you can attach one to a Digital Sales Room for company-level branding and analytics. Matching is partial and case-insensitive. Results are scoped to the calling user’s organization.

Parameter Type Required Description
query string Optional Part or all of the company name. Matching is partial and case-insensitive: a plain substring match, not exact and not embedding-based. Omit or pass an empty string to match every company.
limit integer Optional Minimum 1; default 10. The documented maximum is 1,000. The tool’s schema does not enforce this maximum; keep requests within the documented limit.
offset integer Optional Minimum 0; zero-based. Number of matches to skip for pagination.
Field Type Description
total_count integer Total matches. Present on the first page only.
companies array Up to limit items; an empty array on no matches. Each item includes company_id, name, and crm_company_id.
  • “Do we have an account for Example Organization?”
  • “Find any companies with ‘example’ in the name.”
Find contacts find_contacts read:rooms

Looks up buyer and prospect contacts by name, email, or associated company, so you can add them to a Digital Sales Room’s guest list or invite them with share_room. Contacts are synced from your CRM, so a very recent change may not appear immediately.

Parameter Type Required Description
query string Optional Whole-word match. Text containing @ is treated as an email prefix.
email string (email format) Optional Exact, complete email address.
company_id string Optional Restricts results to one company’s contacts.
limit integer Optional Minimum 1; maximum 1,000, enforced by the server; default 10.
offset integer Optional Minimum 0. Number of matches to skip for pagination.
Field Type Description
total_count integer Total matches. Present on the first page only.
contacts array Up to limit items; an empty array on no matches. Each item includes contact_id, first_name, last_name, email, title, consent (boolean or null), company_id, crm_contact_id, and company.company_name.
  • “Who’s my main contact at Example Organization?”
  • “Find quinn@example.com in our contacts.”
Find rooms find_rooms read:rooms

Finds existing Digital Sales Rooms by name, or by the deal, company, or contact linked to them, and returns each room’s identifiers for use with fetch_room, edit_room, and share_room. By default, returns only active rooms, most recently active first. Results include any room the calling user is permitted to see, which for a manager or admin can include rooms created by others.

Parameter Type Required Description
query string Optional Free text matched against the room name, and the linked deal, company, or contact name or email.
room_type array of enum: deal, general, content_link, company Optional Defaults to all four types.
status array of enum: ACTIVE, INACTIVE, DRAFT Optional Defaults to [ACTIVE]. Case-sensitive.
sort_by enum: lastActivityAt, updatedAt, name, ownerName, visitorsCount Optional Defaults to lastActivityAt, always sorted descending.
limit integer Optional Minimum 1; maximum 1,000, enforced by the server; default 10.
offset integer Optional Minimum 0. Number of matches to skip for pagination.
Field Type Description
total_count integer Total matches. Present on the first page only.
rooms array Up to limit items; an empty array on no matches. Each item includes room_id (UUID), room_id_int (numeric, as a string), name, status, room_type, owner_name, visitors_count, visits_count, last_activity_at, link, and nullable deal (deal_id, deal_name) and company (company_id, company_name) objects.
  • “Is there already a room set up for the Example Organization deal?”
  • “Show me the rooms I’ve shared in the last month.”
Get room details fetch_room read:rooms

Retrieves the full details of a single Digital Sales Room by its ID, including its configuration and links and, when requested, its content and guest lists. Use this to confirm a room’s current state or verify that a create_room or edit_room change took effect.

Parameter Type Required Description
room_id string (UUID) Required Must match a 36-character UUID pattern. The numeric room_id_int is rejected. Use the UUID returned by find_rooms, find_deals, or create_room.
include_content boolean Optional Default false. Adds a contents array to the response.
include_guests boolean Optional Default false. Adds a guests array to the response.
Field Type Description
room object or null When non-null, includes room_id, room_id_int, name, status, room_type, audience, layout, description, language, invited_contacts_only, requires_email, requires_passcode (boolean only, the passcode itself is never returned), requires_expiration_date, expires_at (nullable), domain_restricted, domains (only for a caller who can edit the room; null otherwise), enable_qa, enable_contact_card, enable_share, buyer_copilot_enabled, owner, nullable deal and company, nullable primary_guest, visitors_count, visits_count, room_contacts_count, conversation_threads_count, total_items, link, internal_link, expired, last_activity_at, created_at, updated_at.
contents array Present only if include_content: true was passed. Each item includes content_id, name, content_type, uuid, and description.
guests array Present only if include_guests: true was passed. Each item includes contact_id, first_name, last_name, and email.
  • “What’s in the room I shared with Example Organization last month?”
  • “Who has access to this room right now?”
Get a Deal Guide fetch_deal_guide read:deals:deal

Returns the pre-generated Deal Guide for one deal: pains, objections with the seller’s response, the buying committee, competitor intel, and recommended next steps. Use it for pre-call prep, or whenever the user asks how a specific deal is going. This tool never generates a guide; it only returns one that already exists.

Parameter Type Required Description
deal_guide_id string Required The guide’s ID, taken unchanged from the deal_guide_id field of find_deals. Not the deal ID and not the CRM opportunity ID; passing either returns not_found.
include_deal_overview boolean Optional Default true. Pains, desired outcomes, risks, budget, objections with the seller’s response, value alignment, and what is and isn’t working.
include_company_insights boolean Optional Default true. The prospect company: overview, key facts, executives, products, priorities, market position, SWOT, financials, competitors, and customers.
include_stakeholders boolean Optional Default true. The buying committee, with influence, dos and don’ts, conversation starters, pains, and desired outcomes per person.
include_competition boolean Optional Default true. Named competitors with strengths, weaknesses, how to win, objections, and trap-setting questions.
include_next_best_actions boolean Optional Default true. Recommended next steps with reasoning, urgency, and due dates.
include_whats_new boolean Optional Default true. What has changed on the deal recently, as a summary plus itemized changes. This is the fastest way to answer “what’s happened since I last looked.”
include_methodology_coverage boolean Optional Default false. Sales-methodology coverage (MEDDIC/BANT-style). Only populated where a methodology is configured; an empty list means “not in use here,” not “nothing covered.”
include_activity_timeline boolean Optional Default false. Recent calls, emails, room visits, and asset views. Costs a second backend call, and returns the most recent items only. There’s no date filter, so filter on occurred_at yourself for a specific window.
timeline_type enum: ASSET, ROOM, CALL, EMAIL Optional Restricts the activity timeline to one activity type. Ignored unless include_activity_timeline is true.
timeline_limit integer Optional Minimum 1; maximum 50; default 20. Ignored unless include_activity_timeline is true.
include_sources boolean Optional Default false. Attaches provenance (which call, CRM record, web page, or vendor) to every insight. Roughly doubles the response, so turn it on only when a claim needs attributing rather than asserting.
Field Type Description
deal_guide_id, deal_id string The guide’s own ID, echoed back, and the deal it belongs to.
not_found boolean true when the deal has no guide. A final answer, not a reason to retry; this tool never generates a guide.
processing_status string UNSPECIFIED, IN_PROGRESS, COMPLETED, or FAILED. IN_PROGRESS means a guide is being built right now; report that rather than presenting empty sections as fact.
is_closed, last_updated_at boolean, string Whether the deal is closed, and when the guide was last regenerated. Read is_closed alongside deal_overview.outcome_story, which is populated only post-close.
room_id string The linked Digital Sales Room, if any. Pass to fetch_room for the room’s current state.
deal object CRM opportunity summary: name, stage, amount, close_date, company_name, industry, market_segment, status, crm_url.
deal_overview object Present only when include_deal_overview is true. Includes summary, pains, outcomes, current_tools, risks, budget, competitive_landscape, key_milestones, decision_timeline, whats_working, whats_not_working, buyer_triggers, objections (each with the seller’s response), value_alignment, and outcome_story (populated post-close only).
company_insights object Present only when include_company_insights is true. Includes overview, key_facts, key_executives, products, priorities, market_position, swot, financials, direct_competitors, customer_landscape, recent_developments, trigger_events.
stakeholders array Present only when include_stakeholders is true. Each entry: name, email, influence (free text, not a fixed high/medium/low), location, title, career_snapshot, current_responsibilities, engagement_history, pains, desired_outcomes, dos, donts, conversation_starters, last_interaction, tags.
competition array Present only when include_competition is true. Each entry: name, summary, competing_products, strengths, weaknesses, how_to_win, objections, trap_questions.
whats_new object Present only when include_whats_new is true. summary plus itemized items.
methodology_coverage array Present only when include_methodology_coverage is true. Each entry: element (for example, Metrics or Economic Buyer), status, notes. Empty means no methodology is configured.
next_best_actions object Present only when include_next_best_actions is true. priority_focus_areas plus actions, each with action, guidance, type, urgency, due_date, is_completed.
activity_timeline object Present only when include_activity_timeline is true. items (most recent first), each with type, occurred_at, and type-specific detail. A call carries call_id (pass to fetch_call for the transcript) and participants; a room visit or asset view carries room_id or interaction_id and a visitor. page_info.has_next_page reports whether more items exist beyond timeline_limit.
  • “How is the Example Organization deal going?”
  • “What’s changed on the Example Organization deal since last week?”
  • “Who should I talk to at Example Organization, and what should I avoid saying?”
Find calls find_call read:calls

Searches the user’s recorded sales calls and meetings, the conversations captured and transcribed by Call AI, by who was on them, the account or opportunity they’re tied to, when they happened, or what was discussed. Returns a ranked list of calls the user is permitted to see, each with a summary, so you can confirm a call is the right one before fetching its full details with fetch_call.

Parameter Type Required Description
search_text string Optional The conceptual query: what was discussed (for example, “renewal pricing”). Never a company, account, product, or opportunity name; those belong in opportunity_name.
opportunity_name string Optional The account, company, or opportunity named in the request, as a literal phrase (for example, “Example Organization”). Matched against the call’s account and opportunity fields.
participant_names string[] Optional People who should have been on the call, by name. Matched against each call’s participants.
result_count integer Optional Minimum 1; maximum 50; default 20. May return fewer; never more.
sort_criteria enum: RECENT, RELEVANCE Optional Defaults to RELEVANCE. RECENT sorts newest first.
filter_by_user_participation boolean Optional Restricts to calls the current user was on. Unset by default.
from_date, to_date string (RFC 3339 date-time) Optional Inclusive absolute bounds on the recording date, for a named or explicit range. Mutually exclusive with relative_time_value and relative_time_unit; setting both is rejected.
relative_time_value, relative_time_unit integer, enum (DAY, WEEK, MONTH, YEAR) Optional A relative window (for example, 30 and DAY for “the last 30 days”). Mutually exclusive with from_date and to_date.
Field Type Description
recordings array Ranked list of matching calls, most relevant (or most recent, with sort_criteria: RECENT) first; empty when nothing matched. Each item includes id (pass to fetch_call), title, source_url, url, date, participants (name, email per person), crm_context (account_name, opportunity_name, deal_id), duration_sec, summary, and relevance_score (0 to 1, normalized so the top result is 1.0).
total_candidates integer How many calls the engine considered before the result_count cap was applied.
  • “Find my last call with Example Organization.”
  • “Show me calls about renewal pricing from the last 30 days.”
  • “What calls did I have with Quinn N. last quarter?”
Get call details fetch_call read:calls

Retrieves detailed information for one or more recorded calls by ID: the transcript, key moments, action items, or summary. Call IDs typically come from find_call.

Parameter Type Required Description
callIds string[] (stringified integers) Required Typically the id values returned by find_call, or a call ID a user tagged directly. When you already have IDs, pass them all in a single call rather than calling this tool once per ID.
properties array of enum: TRANSCRIPT, KEY_MOMENTS, ACTION_ITEMS, SUMMARY Required At least one property is required; there’s no default. See the note below for which to request.
Field Type Description
callDetails array One entry per requested call: callId, propertyDetails (an array of {property, value} pairs, one per requested property), and truncated (whether a property’s value was cut short).
  • “Summarize my last call with Example Organization.” (chained from find_call)
  • “What were the action items from yesterday’s Example Organization call?”
  • “Did Example Organization mention our top competitor on that call, and what did they say?”
Get your training progress fetch_learner_insights no scope

Returns the calling learner’s own training progress: overall progress, assigned series, assigned modules, completed modules, and, if requested, certification detail. This tool requires no scope; it is available whatever scopes the token carries. It never writes anything.

Parameter Type Required Description
include_profile boolean Optional Whether to return the learner’s name, email address, avatar, and profile link. Default: true.
include_overall_progress boolean Optional Whether to return overall progress: module counts by status and percent complete, for assigned, required, and all accessible modules. Default: true.
include_assigned_series boolean Optional Whether to return the series assigned to the learner, newest first. Default: true.
include_assigned_modules boolean Optional Whether to return the modules assigned to the learner, newest first. Default: true.
include_completed_modules boolean Optional Whether to return the modules the learner has completed, including assigned and self-enrolled modules. This is the same list as the Completed tab on the learner’s My Profile page. Default: true.
include_certification_detail boolean Optional Whether to return the certifications awarded in each series, with the award date, a download link, and a verification link. This adds one extra lookup for each series, so turn it on only when the learner asks to see or share a certificate. Default: false.
series_status array of enum: NOT_STARTED, IN_PROGRESS, COMPLETED Optional Return only series in these statuses. COMPLETED means every module is done, NOT_STARTED means no module is started, and IN_PROGRESS is anything in between. Omit for all series. Filtering is done on the server, so total stays correct. Ignored unless include_assigned_series is true.
module_status array of enum: NOT_STARTED, IN_PROGRESS, COMPLETED Optional Return only assigned modules in these statuses. Omit for all assigned modules. Ignored unless include_assigned_modules is true. It does not filter completed modules.
series_limit integer Optional Maximum number of series to return, from 1 to 50. Default: 25.
series_offset integer Optional Number of series to skip. Pass the next_offset value from the previous page. Default: 0.
assigned_modules_limit integer Optional Maximum number of assigned modules to return, from 1 to 50. Default: 20.
assigned_modules_offset integer Optional Number of assigned modules to skip. Pass the next_offset value from the previous page. Default: 0.
modules_limit integer Optional Maximum number of completed modules to return, from 1 to 50. Default: 20.
modules_offset integer Optional Number of completed modules to skip. Pass the next_offset value from the previous page. Default: 0.
modules_sort enum: DESC, ASC Optional Order of completed modules by completion time: DESC (most recent first) or ASC (oldest first). Default: DESC.
Field Type Description
company.overall_progress_default_view string ASSIGNED, REQUIRED, or ACCESSIBLE. The overall progress view to show first. It is the view the learner’s My Profile page shows. Present only when include_overall_progress is true.
user.learner object The calling learner. Contains id, and, when include_profile is true, name, email, avatar_url (profile picture), and profile_url (link to the learner’s My Profile page).
user.learner.stats.overall_progress object Three views: assigned, required, and accessible. Each is a list of {user_state, num_modules} entries, with a matching assigned_percent_complete, required_percent_complete, or accessible_percent_complete value.
user.learner.assigned_series object A page of assigned series: total, has_more, next_offset, and data. Each entry in data has status, series (id, name, localized_name, link), total_modules, completed_modules, in_progress_modules, not_started_modules, percent_complete, score (user_score and max_score), and certifications (awarded_count and total_certifications). awarded_certifications appears only when include_certification_detail is true.
user.learner.assigned_modules object A page of assigned modules: total, has_more, next_offset, and data. Each module has the fields in the next row, plus assigned_on, relevance, and url.
user.learner.completed_modules object A page of completed modules, ordered by completion time, in the same shape. Each module has progress_status, state, started_on, completed_on, due_date (value and the action taken on expiry), user_score, module (id, name, type, total_score, description, and the series it belongs to), percent_complete, completion_status (PASS or FAIL for assessments and missions), certificate_url, certificate_achieved, badge_name, and badge_url.
badge_name, badge_url string The name and image of the badge (medal) a module awards. Returned for courses, quick updates, and reinforcements.
  • “What’s my learning progress?”
  • “What do I still need to finish?”
  • “Which of my series have I completed?”
  • “Do I have any certificates I can share?”
  • “Which badges have I earned?”
  • “What did I finish first?”
Get Manager Insights fetch_manager_team_insights read:manager

Manager Insights returns a snapshot of how the calling manager’s team is doing, covering readiness, training, coaching, and conversations. It can also return a drill-down into one series, module, learner, or training category. The tool only reads data. It never sends anything.

This tool requires the read:manager scope. The user must also have the manager role in Mindtickle. A token that carries the scope doesn’t give a user without the manager role access to this tool.

Parameter Type Required Description
include_readiness_index boolean Optional Whether to return the readiness_index section. Default: true.
include_training boolean Optional Whether to return the training section. Default: true.
include_coaching boolean Optional Whether to return the coaching section. Default: true.
include_conversations boolean Optional Whether to return the conversations section. Default: true.
readiness_period_days integer Optional How many days back to the Readiness Index cadence that current scores are compared against. Minimum 1. Default: 30. It doesn’t change how often Readiness Index is calculated.
coaching_period_days integer Optional Days of coaching activity to count, ending today. Minimum 1. Default: 30.
top_bottom_size integer Optional How many top and how many bottom Readiness Index learners and competencies to return, from 1 to 10. Default: 5.
calls_period_days integer Optional Days of past team calls to count and to search for calls to review, ending today. Minimum 1. Default: 30.
upcoming_calls_days integer Optional Days ahead to list the team’s scheduled calls. Minimum 1. Default: 7.
calls_limit integer Optional Maximum number of calls to return in each of calls_to_review and upcoming_calls, from 1 to 25. Default: 5.

Pass object_type to get one detailed view instead of the snapshot. Every snapshot section is then empty and the answer is in drilldown.

Parameter Type Required Description
object_type enum: series, module, learner, training Optional Which drill-down to return. Leave it empty for the snapshot.
object_id string Optional The ID to drill into. For series: a series ID, or empty to list the team’s series. For module: a module ID. For learner: a learner’s user ID. For training: one of priority, required, or overdue.
status_filter enum: behind, completed, all Optional Which learners a list returns: those who are behind (not completed), those who completed, or all. Default: behind.
limit integer Optional Page size for drill-down lists, from 1 to 100. Default: 25.
offset integer Optional Number of rows to skip, from 0 to 900. A larger value is refused. Use page.has_more to decide whether to ask for the next page. Default: 0.
object_type object_id What it returns
series Empty The team’s series with completion, least complete first. Use this to find a series ID from a series name.
series A series ID The team’s learners in that series, most behind first.
module A module ID The team’s learners on that module, most behind first.
learner A learner’s user ID Returns that learner’s series, missions, coaching, and up to 25 modules, with overdue modules first.
training priority, required, or overdue The learners who are behind on that training category.
Field Type Description
as_of string ISO 8601 UTC timestamp of the read. Always set, so an empty result is never mistaken for a failed call.
manager_user_id string The user ID of the manager the result was built for.
warnings array of string Why a section is empty or partial, in the form <section>_<reason>. The section is readiness_index, training, coaching, conversations, or drilldown. The reason is no_data (nothing to report), not_enabled (the feature is off for the company), or unavailable (the read failed). drilldown_emails_unavailable means learner emails couldn’t be read and only IDs are returned. drilldown_truncated means more rows exist than a drill-down can return.
readiness_index object Readiness Index: enabled, as_of_cadence_date, compared_to_period_days, average_score (current, prior, delta), and the highest and lowest learners and competencies. Each ranked entry has id, name, score, delta, group (top, bottom, or all), and url. Each block has a scope field of direct_reports or hierarchy.
training object A snapshot for the manager’s direct reports: as_of, scope, and categories for priority, required, and overdue. Each category has target_pct, learners_above_target, learners_below_target, and team_average_pct.
coaching object The manager’s own coaching activity: period_days, scope (always manager), mission_reviews, and coaching_sessions. Mission reviews and coaching sessions assigned to the manager, as {completed, total, url} counts.
conversations object Team calls: period_days, scope, total_calls, delta_calls, calls_to_review_total, calls_to_review, upcoming_calls_days, upcoming_calls, and url. Each call has recording_id, title, participants, and start_time.
drilldown object Set only when object_type is passed. Contains object_type, object_id, as_of, scope, the series or module being viewed, and one of learners, series_list, or learner, plus page (limit, offset, total_count, has_more).
  • “How is my team doing?”
  • “Who is overdue on training?”
  • “Which of my series is my team furthest behind on?”
  • “Who on my team hasn’t finished the onboarding series?”
  • “Which of my team’s calls should I review?”
Find tutorials find_tutorial read:training:ai_tutor

Lists the calling learner’s AI Tutor tutorials, with the learner’s progress in each.

Parameter Type Required Description
search string Optional Text to search for in tutorial names.
progress_status array of string Optional Filter by progress status. Only the first value is used.
access_type array of enum: DIRECT, GROUP, PUBLIC Optional Filter by how the learner got access to the tutorial. Only the first value is used.
has_updates boolean Optional Whether to return only tutorials that have updates.
sort_by enum: ASSIGNED_AT, NAME, LAST_ACTIVITY_AT Optional What to sort by. Default: ASSIGNED_AT.
sort_direction enum: DESC, ASC Optional Sort direction. Default: DESC.
limit integer Optional Maximum number of tutorials to return. Minimum 1. Default: 10.
cursor string Optional The page_info.end_cursor value from the previous page, to get the next page.
Field Type Description
tutorials.total_count integer The number of tutorials on the current page, not the learner’s total number of tutorials.
tutorials.page_info object has_next_page and end_cursor. Pass end_cursor as cursor to get the next page.
tutorials.tutorials[].node object One tutorial: tutorial_id, name, description, thumbnail, url, progress_status, progress_summary, completion_percentage, chapter_count, estimated_time_remaining, estimated_total_minutes, access_type, assigned_at, last_activity_at, and has_updates.
  • “What tutorials do I have?”
  • “Find my tutorial on objection handling.”
Open a tutorial fetch_tutorial read:training:ai_tutor

Opens one AI Tutor tutorial in an interactive screen inside the AI client (an MCP app). This tool is in beta and works only for companies that have AI Tutor turned on.

Parameter Type Required Description
tutorialId string Required The tutorial’s ID: 6 to 25 digits, which also appears in the tutorial’s URL. The tutorial’s title isn’t accepted. Use the tutorial_id returned by find_tutorial.

This tool returns no content. It opens the AI Tutor screen. A successful call means only that the screen opened.

  • “Open my tutorial on objection handling.” (chained from find_tutorial)

These tools create or change data. share_room sends invitation emails and can also create contact records. create_room, edit_room, and create_contacts do not send emails. Review the tool’s requirements and response fields before acting on its result.

Create a room create_room write:rooms

Creates a new Digital Sales Room and returns its identifiers and links. The room goes live immediately, but no one is emailed until share_room is called. This tool creates a room without a template. If you need a templated room, create one from a room template in the Mindtickle web app instead.

Parameter Type Required Description
name string, 1 to 250 characters Required Room title.
room_type enum: deal, general, content_link, company Required general creates a standalone room with no CRM linkage.
asset_ids string[], min 1 item Required At least one asset is required. A room can’t be created empty.
deal_id string Conditionally required Required only when room_type is deal.
passcode string, min 1 character Conditionally required Required only when requires_passcode is true.
expires_at integer (epoch seconds), min 1 Conditionally required Required only when requires_expiration_date is true.
company_id string Optional Not specified.
contact_ids string[], min 1 item if provided Optional Adds guests at creation. No one is emailed as a result.
description string Optional Not specified.
invited_contacts_only boolean Optional Default true.
requires_email boolean Optional Default false.
requires_passcode boolean Optional Default false.
requires_expiration_date boolean Optional Default false.
domains string[] Optional Each entry must start with @.
enable_qa boolean Optional Default true.
enable_contact_card boolean Optional Default true.
enable_share boolean Optional Accepted by the tool, but not currently passed through to the room-creation call. Setting it has no confirmed effect.
buyer_copilot_enabled boolean Optional Default true; also controlled by an organization-level setting.
Field Type Description
errors string[] A non-empty array means the room was not created, even though the call returned.
message string Human-readable message accompanying errors.
room object, present only on success room_id, room_id_int, name, status (always ACTIVE on creation), room_type, link, internal_link, created_at, total_items.
  • “Set up a new room for Example Organization with the latest pricing deck and case study.”
  • “Create a general room I can use for the security questionnaire.”
Update a room edit_room write:rooms

Updates an existing Digital Sales Room: its name, description, linked deal or company, guest list, access controls, feature settings, and content. Only the fields you pass are changed, and a field you do pass replaces its current value entirely. Content can be added, but not removed or reordered, through this tool. No one is emailed as a result of these changes; use share_room to notify guests.

Parameter Type Required Description
room_id_int string matching ^[0-9]+$ Required The numeric room ID (not the UUID room_id).
name string, 1 to 250 characters Optional Not specified.
description string Optional Not specified.
deal_id string Optional Not specified.
company_id string Optional Not specified.
contact_ids string[], min 1 item if provided Optional Replaces the entire guest list: omitted contacts are removed, not left alone.
invited_contacts_only boolean Optional Not specified.
requires_email boolean Optional Not specified.
requires_passcode boolean Optional Not specified.
passcode string Conditionally required Required when requires_passcode is true.
requires_expiration_date boolean Optional Not specified.
expires_at integer (epoch seconds) Conditionally required Required when requires_expiration_date is true.
domains string[] Optional Replaces the entire allowed-domains list, the same way contact_ids does.
enable_qa boolean Optional Not specified.
enable_contact_card boolean Optional Not specified.
enable_share boolean Optional Not specified.
buyer_copilot_enabled boolean Optional Not specified.
add_assets boolean Optional Not specified.
assets_to_add array of objects (id, name) Conditionally required Required when add_assets is true. Content can only be added through this tool, never removed or reordered.
Field Type Description
updateRoom.errors string[] Can contain errors even when the tool call completes. Check this array to determine whether the update succeeded.
updateRoom.message string Status message.
updateRoom.room object Includes these 7 room fields: room_id, room_id_int, name, status, link, internal_link, total_items.
addAssetsToRooms.all_contents_already_exists boolean Present only when add_assets: true was passed. true means the asset was already in the room. Nothing new was added.
addAssetsToRooms.selected_resource_not_found boolean Present only when add_assets: true was passed. true means nothing was added.
  • “Add the new pricing sheet to the room I shared with Example Organization.”
  • “Add Kiran P.’s manager to the Example Organization room as a guest.”
Share a room share_room write:rooms

Emails an existing Digital Sales Room’s link to one or more buyers by email address, inviting them to open it. This is the only tool that sends email on a room’s behalf. create_room and edit_room never notify anyone.

Parameter Type Required Description
room_id_int string matching ^[0-9]+$ Required The numeric room ID (not the UUID room_id).
invitees array of objects, min 1, max 50 Required Each entry needs only an email field (email format, min 3 characters). There is no contact_ids parameter. The schema is strict, so passing one is rejected outright.
Field Type Description
link string The buyer-facing room link, the same one included in the invitation email.
contacts array The people actually invited and emailed. Each entry includes contact_id, email, first_name, last_name.
errors string[] Can be present even when the rest of the payload is non-null.
message string Human-readable message accompanying errors.
Create contacts create_contacts write:rooms

Finds or creates contacts from 1 to 50 email addresses for use in a Digital Sales Room’s guest list. Returns existing contacts without creating duplicates and creates records for new addresses. It does not send email or associate contacts with a company or deal. Use find_contacts to look up a person by name.

Parameter Type Required Description
emails string[], min 1, max 50 Required Email addresses to resolve into contacts, one per person. Addresses are trimmed, lowercased, and deduplicated by the server before resolution.
Field Type Description
errors string[] Batch-level errors. The tool can return these alongside other result data.
message string Human-readable message accompanying errors.
results array One entry per submitted email: email, created (boolean: true if a new contact was inserted, false if an existing one was reused), error (nullable, per-address failure reason), and a nested contact object (contact_id, first_name, last_name, email, company_id) that is null when that item’s error is set.

Each tool call is subject to a timeout. If the underlying operation doesn’t complete within that time, the call fails with a timeout error.

Tool(s) Timeout
find_deals, find_companies, find_contacts, find_rooms, fetch_room 8 seconds
create_room, edit_room 15 seconds
share_room, create_contacts 10 seconds
mindtickle_seller_copilot_ask 90 seconds
mindtickle_search 30 seconds
fetch_deal_guide 15 seconds
find_call, fetch_call 5 seconds
fetch_learner_insights 15 seconds
fetch_manager_team_insights 15 seconds
find_tutorial 8 seconds

Existing tools retain their names and required scopes as new tools are added. Check the scopes granted to your connection when discovering available tools.