add_call_log_or_meeting_notes
ChatGPTCreate a call log or meeting notes entry on a Streak box. Use this when: logging a phone call, recording a meeting, or adding meeting notes to a box in a pipeline. Set meetingType to CALL_LOG for calls or MEETING_NOTES for meetings. Both support notes, duration, and a start timestamp. If the user names a box or pipeline, find the box first and pass its boxKey. This creates an activity entry; it does not change the box's Notes field or schedule a calendar event. Do not use for: viewing call or meeting history.
add_thread_to_box
ChatGPTAdd a Gmail thread to a box. PREREQUISITE: You need a box key and a Gmail thread id. Use search, filter_boxes, get_recent_boxes, or get_box to find a box key first. Use this when: associating an existing Gmail conversation with a specific Streak box.
assign_box
ChatGPTAssign a box to users by email address, or unassign all users by passing an empty string. Use this when: assigning, reassigning, or unassigning a box. Do not use for: viewing box details (use get_box).
create_box
ChatGPTCreate a new box in a pipeline with optional stage and assignment. Use this when: creating a new deal, lead, case, project, ticket, or other pipeline row in Streak. PREREQUISITE: Use list_pipelines to discover pipeline keys. If setting a stage or assigning teammates, call get_pipeline first to discover stage keys and users with access. The box name and pipeline key are required. The stage defaults to the first stage in the pipeline. Use stage keys, not stage names. The assignee defaults to the current user. Use comma separated email addresses for multiple assignees. Do not use for: updating existing boxes (use update_box_stage or assign_box) or searching boxes (use search or filter_boxes).
create_contact
ChatGPTCreate a team contact and link it to a box, or update/return the matching existing contact when one already matches by email or name. Use this when: adding a person to a specific Streak box. Provide boxKey and at least one of givenName, familyName, or emailAddresses for the contact. Set include_all_emails to true to automatically pull in on all the emails with this contact into the box.
create_organization
ChatGPTCreate a team organization and link it to a box, or return the matching existing organization when getIfExisting is true and a domain already exists. Use this when: adding a company/account to a specific Streak box. The box determines which team owns the organization. Provide boxKey and at least one of name or domains. Set include_all_emails to true to include all team emails with that organization in the box.
create_task
ChatGPTCreate a new task in a box with optional due date and assignment. Useful for setting reminders and tracking follow-ups. Use this when: adding a task, setting a reminder, or tracking something to do for a box. Do not use for: viewing existing tasks.
delete_box
ChatGPTDelete a box and its contents. Linked boxes, contacts, and organizations are preserved. Use this when the user asks to delete a box. Requires permission to delete the box. PREREQUISITE: Use a box key returned by search, filter_boxes, get_recent_boxes, get_box, create_box, or fetch.
feedback
ChatGPTSend feedback to Streak when you wanted to do something through the Streak MCP or API, but no available tool supports it. Use this whenever a Streak MCP/API capability is missing. Provide the desired tool or capability and the high-level user goal. This feedback is very valuable because it helps Streak add the right MCP tools soon. Always ask for the user's approval before sending with a simple yes/no question. Do not include sensitive or personal information, customer data, email addresses, names, message contents, or Streak record keys. Summarize the missing capability instead.
fetch
ChatGPTGet complete details for an item found via search. Required for Deep Research mode. Takes a search result ID returned by search and returns full content. Use this when: you performed a search and need detailed information. To get boxes from a saved view result, use get_saved_view_boxes. Do not use for: direct lookups by key (use get_box, get_contact, or get_pipeline).
filter_boxes
ChatGPTFilter boxes in a pipeline with structured filters and sorting. PREREQUISITE: Call get_pipeline first to discover stage keys, field names, dropdown/tag options, and users. IMPORTANT: Most queries need 2+ filters. Identify ALL criteria in the query. Example: "my active deals" needs: [{ field: "assignedTo", operator: "equals", value: "me" }, { field: "stageKey", operator: "equals", value: "Active" }] Example: "boxes in Scheduled stage for Cooldown sprint" needs: stageKey filter + Sprint filter SYSTEM FIELDS (primary filters - check these first): stageKey (workflow stage), assignedTo (owner), createdBy, creationTimestamp, lastUpdatedTimestamp, lastStageChangeTimestamp, name, notes OPERATORS BY FIELD TYPE: TEXT (name, notes, custom text fields): - 'contains'/'not_contains': substring search - 'equals'/'not_equals': exact match - 'is_set'/'is_not_set': check if has value Example: { field: "name", operator: "contains", value: "Acme" } DATE (creationTimestamp, lastUpdatedTimestamp, custom date fields): - 'greater_than'/'less_than': compare dates (ISO-8601 UTC) - 'equals': exact date match - 'is_set'/'is_not_set': check if date is set Example: { field: "creationTimestamp", operator: "greater_than", value: "2025-01-15T10:30:00Z" } NUMBER (taskTotal, totalNumberOfEmails): - 'greater_than'/'less_than': numeric comparison - 'equals'/'not_equals': exact value Example: { field: "taskTotal", operator: "greater_than", value: "5" } DROPDOWN (stageKey, custom dropdown fields): - 'equals'/'not_equals': match by name or key - 'is_set'/'is_not_set': check if selected Example: { field: "stageKey", operator: "equals", value: "5001" } TAG (custom tag fields): - 'includes': has ANY of specified tags (use 'values', not 'value') - 'excludes': has NONE of specified tags - 'is_set'/'is_not_set': check if any tags Example: { field: "Tags", operator: "includes", values: ["9001", "9002"] } USER (assignedTo, createdBy, followers, taskAssignees, incompleteTaskAssignees, overdueTaskAssignees, custom person fields): - 'includes': specific user(s) by email (use 'values') - 'excludes': exclude specific user(s) - 'contains': partial name/email text search (use 'value') - 'equals': single user match or "me" for current user - 'is_set'/'is_not_set': check if assigned Example (by email): { field: "assignedTo", operator: "includes", values: ["user@example.com"] } Example (custom person): { field: "Account Manager", operator: "includes", values: ["manager@example.com"] } CHECKBOX (custom checkbox fields): - 'is_set': checkbox is checked (true) - 'is_not_set': checkbox is unchecked (false) Example: { field: "Approved", operator: "is_set" } SORTING: sorts: [{ field: "lastUpdatedTimestamp", direction: "desc" }] All filters combined with AND. Do not use for: an existing saved view (use get_saved_view_boxes), keyword search (use search), or a single box lookup (use get_box).
get_box
ChatGPTGet detailed information about a box by its key. Use this when: you have a box key and need detailed information such as custom field values, notes, magic columns, or linked contacts/organizations. Do not use for: searching boxes (use search or filter_boxes). What each magic column key means: - lastStageChangeTimestamp: the timestamp when the stage was last changed - lastCommentTimestamp: the timestamp the last comment in the box was posted - lastEmailUpdatedTimestamp: the timestamp of the last message in the box - firstEmailTimestamp: the timestamp of the first message in the box - lastEmailSentTimestamp: the timestamp of the last message our team sent in the box - lastEmailReceivedTimestamp: the timestamp of the last message our team received in the box - firstEmailSentTimestamp: the timestamp of the first message our team sent in the box - firstEmailReceivedTimestamp: the timestamp of the first message our team received in the box - soonestTaskDueDate: the timestamp of the due date of the task that is coming up the soonest in the future - earliestOverdueTaskDueDate: the timestamp of the due date of the task that is earliest in time - mostRecentCallLogTimestamp: the timestamp of the most recent call log in the box - mostRecentMeetingNotesTimestamp: the timestamp of the meeting note that has the highest/maximum timestamp - firstCallLogTimestamp: the timestamp of the first call log in the box - firstMeetingNotesTimestamp: the timestamp of the earliest meeting note - lastTouchpointTimestamp: the last timestamp of when an email was exchanged or a call log was recorded or a meeting note was taken - mostRecentLastSentEmailViewsTimestamp: the most recent view of the latest email sent in this box - mostRecentLastSentEmailLinkClickedTimestamp: the most recent click of the latest email sent in this box - mostRecentSentEmailsViewsTimestamp: the most recent view of any email in this box - lastEmailFrom: the email address of the last person to send a message inside the box - firstEmailFrom: the email address of the first person to send a message inside the box - lastTouchpointType: possible values: EMAIL or MEETING_NOTE or CALL_LOG, whichever was the most recent - totalNumberOfEmails: the total number of messages in the box - totalNumberOfSentEmails: the total number of messages our team has sent in this box - totalNumberOfReceivedEmails: the total number of messages our team has received in this box - totalNumberOfLastSentEmailViews: how many times the last message the team sent was viewed - totalNumberOfLastSentEmailLinksClicks: how many times a link was clicked on in the last message the team sent - totalNumberOfSentEmailsViews: the total number of view all of the messages our team sent in the box - gmailThreadCount: how many email threads there are in the box - taskTotal: the total number of tasks in the box - taskCompleteCount: the number of completed tasks in the box - taskIncompleteCount: the number of incomplete tasks in the box - taskOverdueCount: the number of overdue tasks in the box - callLogCount: the number of call logs in the box - meetingNotesCount: the number of meeting notes in the box - commentCount: the number of comments in the box - followerCount: the number of teammates following this box - fileCount: the number of files in the box - totalCallLogDuration: the total duration of all the call logs in the box - totalMeetingNotesDuration: the total duration of all the meeting notes in the box
get_box_summary
ChatGPTReturn the latest stored AI summary for a box by its key. Use this when: the user asks for the existing full AI summary, next steps, or concise digest of a specific box. This does not generate a new summary or consume AI summary credits. To create or refresh a summary, use regenerate_box_summary.
get_box_tasks
ChatGPTGet all tasks on a specific box by box key. Returned taskKey values can be passed to update_task. Use this when: the user asks for tasks/reminders/followups on a specific box, or you need a task key before updating a task in a known box. PREREQUISITE: Use a box key returned by search, filter_boxes, get_recent_boxes, create_box, get_box, or fetch. Do not use for: creating tasks (use create_task), updating tasks (use update_task), or listing upcoming tasks across boxes (use get_upcoming_tasks).
get_contact
ChatGPTGet detailed information about a contact by its key. Use this when: you have a specific contact key. Do not use for: searching contacts (use search).
get_current_user
ChatGPTGet information about the authenticated user including name, email, time zone, and current date/time. Use this when: personalizing responses or needing user context. Do not use for: finding other users.
get_pipeline
ChatGPTUse this when you need detailed information about a specific pipeline, including its stages, custom fields/columns, saved views, and users with access. Saved view keys can be passed to get_saved_view_boxes. Do not use for: listing all pipelines (use list_pipelines) or searching by name (use search).
get_recent_boxes
ChatGPTPRIORITY TOOL: Check this first when users mention boxes without specific criteria. Get boxes recently viewed by the current user. Use this when: user asks about recent boxes, 'what was I working on', or refers to a box without specifying its name. Missing (call get_box for): custom field values, notes, email/task counts, linked contacts/organizations. Do not use for: searching by name (use search) or filtering by criteria (use filter_boxes).
get_saved_view_boxes
ChatGPTGet boxes from an existing saved view using its saved view key. Applies the saved view's persisted filters, sorts, and grouping. PREREQUISITE: Use get_pipeline or search to find a saved view key. Use this when: the user asks for boxes in a named saved view or provides a saved view key. Do not use for: ad hoc filtering criteria (use filter_boxes) or a single box lookup (use get_box).
get_upcoming_tasks
ChatGPTGets upcoming and overdue tasks assigned to the current user, including overdue tasks and tasks without a due date. Returns up to 50 tasks, with undated tasks first and dated tasks ordered by due date, oldest first. Optionally limit results to a single pipeline. Use this when: the user asks what tasks are coming up, what reminders they have, or what they need to work on next. Do not use for: creating tasks (use create_task) or looking up all tasks on a specific box (use get_box_tasks).
list_pipelines
ChatGPTList all pipelines the current user has access to. Use this when: discovering available pipelines or when the user asks to see their pipelines/CRMs. IMPORTANT: This returns stage/field COUNTS only, NOT actual names/keys. If you need stage keys, field names, or user list, you must call get_pipeline first. Do not use for: getting pipeline details (use get_pipeline) or finding boxes (use filter_boxes).
regenerate_box_summary
ChatGPTGenerate and return a fresh AI summary for a box by its key. Use this when: the user explicitly asks to generate, regenerate, refresh, or update a box summary. This persists the new summary to the box and consumes AI summary credits. To read the existing full summary without generating a new one, use get_box_summary. For existing generated short summaries, use get_box, fetch, filter_boxes, or get_recent_boxes.
search
ChatGPTSearch across Streak boxes, contacts, organizations, pipelines and saved views by keyword. Use this when: finding items by name or text content. Do not use for: filtering by criteria (use filter_boxes) or getting recent boxes (use get_recent_boxes).
update_box
ChatGPTUpdate a box's name, notes, stage, assignees, and/or custom field values in a single call. Use this when: editing a box's title, changing its notes, moving it to a different stage, assigning or reassigning users, or setting custom field values such as a dropdown, tag, checkbox, date, text, or contact/organization field. PREREQUISITE: Call get_pipeline to discover stage keys, custom field keys and types, dropdown/tag option keys (use the 'key' property), and users with access for assignment. Stage and dropdown/tag values may be passed as the key or the display name. Provide at least one of name, notes, stageKey, assignedTo, or fields. Pass an empty string for notes to clear them, or for assignedTo to unassign all users. For dropdown/tag fields, prefer an existing option key or name from get_pipeline. Passing an unknown value silently creates a new option on the pipeline field, so avoid typos and casing variants. When that happens the returned field value is a new option key you have not seen — re-fetch get_pipeline to refresh your cached option list and tell the user a new option was created. Do not use for: creating boxes (use create_box) or reading box details (use get_box). For a single focused change, assign_box and update_box_stage are alternatives.
update_box_stage
ChatGPTMove a box to a different stage in its pipeline. PREREQUISITE: Call get_pipeline first to discover available stage keys (use 'key' property, not 'name'). Use this when: updating deal status, moving to next stage, or changing workflow state. Do not use for: getting box details (use get_box) or other box modifications.
update_task
ChatGPTUpdate a task's text, due date, completion status, and/or assignees in a single call. Use this when: editing a task/reminder/followup, marking a task done or not done, changing its due date, clearing its due date, assigning it to users, or unassigning all users. PREREQUISITE: Use task keys returned by create_task, get_upcoming_tasks, or get_box_tasks. Assigned users must be provided as email addresses with access to the task's pipeline. Provide at least one of text, dueDate, status, or assignedTo. Pass an empty string for dueDate to clear it, or for assignedTo to unassign all users. Do not use for: creating tasks (use create_task) or reading upcoming tasks (use get_upcoming_tasks).
add_call_log_or_meeting_notes
Claudeadd_thread_to_box
Claudeassign_box
Claudecreate_box
Claudecreate_contact
Claudecreate_organization
Claudecreate_task
Claudefeedback
Claudefetch
Claudefilter_boxes
Claudeget_box
Claudeget_box_summary
Claudeget_box_tasks
Claudeget_contact
Claudeget_current_user
Claudeget_pipeline
Claudeget_recent_boxes
Claudeget_saved_view_boxes
Claudeget_upcoming_tasks
Claudelist_pipelines
Clauderegenerate_box_summary
Claudesearch
Claudeupdate_box
Claudeupdate_box_stage
Claudeupdate_task
Claude