add_attachments_to_item
ChatGPTAdds uploaded attachments to an existing Wrike item (task, folder, project, or any custom item type). For each file, first call prepare_attachment_upload, then PUT the file's raw bytes to the returned uploadUrl. After all uploads succeed, call this tool once with all returned attachmentId values. This tool does not upload file bytes. It accepts only successfully uploaded attachments that have not yet been added to any item.
add_whiteboard_to_item
ChatGPTAdds a link between an existing Whiteboard and a Wrike item. Use this when the user already has a Whiteboard UUID or a Whiteboard URL in Klaxoon and wants it linked to a task, folder, or project. This does not upload a file and does not create or modify the Klaxoon board. The whiteboardUUID parameter uses the UUID returned by Klaxoon MCP tools. Pass exactly one of whiteboardUUID or whiteboardUrl. The response always includes whiteboardUUIDAvailable. The response also includes attachmentId for the Wrike attachment and whiteboardUUID for use with Klaxoon MCP tools when available. When adding by whiteboardUrl, whiteboardUUIDAvailable is false if Wrike cannot resolve the UUID; in that case, do not guess the board by title.
create_item_from_blueprint
ChatGPTCreates a folder, project, task, or custom item type from an existing blueprint. A launch creates a whole item tree and no tool here undoes it, so get the blueprint and the parent right before calling. A task cannot parent a folder/project blueprint — resolve a space, folder or project as the parent instead. Resolve a blueprint given by name with search_blueprints. Never guess a blueprint id. Never fill a parameter the user did not ask for. This tool cannot set sharing, effort or followers. Say so and stop; do not launch instead. Waits ~60s, then returns the created root item. Non-idempotent. A large blueprint can outlast the wait; the timeout message reports how far the launch had got, so report that rather than only a timeout. On success give [title](permalink), then say what to do next. baseType is the structural kind (TASK/FOLDER/PROJECT); itemType is the custom item type name when the item has one, otherwise the same as baseType. Quote the launch's operation id when reporting a problem with the launch. copyAttachments copies only files already in the blueprint.
create_project_folder_item
ChatGPTCreates one or more Wrike folders, projects, or project-based custom item types. Use itemType="Folder", itemType="Project", or a resolved custom item type ID. Do not ask again for a type already specified. Folders do not support owners or status. Resolve named parents with search_spaces or search_items tools, "me" with get_users(me=true), and named owners with search_users. Reuse canonical IDs from context, Wrike links, lookups, or prior creation results; never invent or ask the user for an ID. Create parents before children and use returned itemId values in later calls. After a mixed response, retry only failed items. Successful items return itemId and permalink. If the call outcome is unknown, do not retry automatically: search the intended parent for an exact-title match and ask before retrying if the result is inconclusive.
create_task_item
ChatGPTCreates one or more Wrike tasks under a space, folder, project, or task; a task parent creates a subtask. Resolve named parents with search_spaces or search_items tools, "me" with get_users(me=true), and named assignees with search_users. Reuse canonical IDs from context, Wrike links, lookups, or prior creation results; never invent or ask the user for an ID. Create parents before children and use returned itemId values in later calls. After a mixed response, retry only failed items. Successful items return itemId and permalink. If the call outcome is unknown, do not retry automatically: search the intended parent for an exact-title match and ask before retrying if the result is inconclusive.
get_approvals
ChatGPTReturns Wrike approvals by exact lookup. Exactly one of two modes per call: - ids: exact id lookup. The API silently omits ids the caller cannot see, so the returned array may be shorter than the input list. - parentId: approvals attached DIRECTLY to that task, folder, or project, such as a task's own approvals or a folder/project's own "Approval by Project". This does NOT recurse: approvals on tasks inside a folder/project are NOT returned. To find approvals across many items, use search_approvals. Each approval carries status (Draft|Pending|Approved|Rejected|Cancelled), type (FilesOnly|Regular), title, description, parentId (w:itm:N), authorId (w:usr:N), finisherId (w:usr:N or null), finished, dueDate, updatedDate, attachmentIds (w:atch:N), and decisions[] ({approverId: w:usr:N, status: Pending|Approved|Rejected, comment, updatedDate}). User ids are returned raw in canonical w:usr:N form (not resolved to names); resolve them with get_users to show names. Decisions are read-only via this API; cast a decision in the Wrike UI. No filters. To filter by status, approver, dueDate, etc., use search_approvals.
get_asyncjob
ChatGPTReturns the current status of an async job (w:acj:S). status is IN_QUEUE, IN_PROGRESS, COMPLETED, or FAILED. On COMPLETED, itemId (w:itm:N) is set when the job created a work item. On FAILED, errorMessage says what to do next. This tool does not wait — poll about every 5 seconds while IN_QUEUE or IN_PROGRESS, and stop on COMPLETED or FAILED. progressPercent is how far the job has got, 0 to 100. Report it between polls so the operation is visibly advancing; not every job type reports it, and those stay at 0 until they finish.
get_item_details
ChatGPTGet full detail of Wrike tasks, folders and projects by id: resolved status, filled-in custom fields, people, child/comment/attachment counts, parent, full path from space/root, and all attachments (including external Google Drive / link URLs). Only custom fields that have a value are returned; a field absent from the list is not filled in for that item, and an empty attachments list means none. Pass fullDescriptions=true to bypass the 500-char description truncation. To read an attachment, use its url. For type=WRIKE, download the file with an HTTP GET from its temporary signed URL, without Wrike authorization headers, then open or parse it. If the URL has expired, call get_item_details again. For other types that have a url, it points to the external provider and may require separate access. Whiteboards on the item appear in attachments with type WHITEBOARD, the board title as name, and optional whiteboardUUID when available (not a w: id). whiteboardUUID is the UUID returned by Klaxoon MCP tools and can be passed back to them. WHITEBOARD has no url. To link or unlink a board, use add_whiteboard_to_item / remove_whiteboard_from_item.
get_item_history
ChatGPTReturns field-change history for Wrike tasks, folders, and projects: what changed, when, and who changed it. Use it to build timelines, audit changes, and investigate how an item evolved. Use get_item_details for the current state and get_item_comments for discussion and reasons behind changes. Choose requestedChanges based on the user's request and include every relevant change type. For broad or unspecified history requests, include all available types. For multi-item investigations, put the most relevant items first and start with the change types needed for the question. If one item needs deeper analysis, start a new call for that item with additional requestedChanges or a wider changedDate range. Each page returns at most pageSize events, newest first within each item. Results are grouped by item, and items are processed in scope.itemIds order. Each event includes its timestamp, author, change type, action, and a typed payload containing old/new or added/removed values, depending on the change type. Only items with matching events are returned on success. Items that fail to load are still returned with success=false, the item id, and an error; other successful items are included in the same response. When truncated=true, call again with the returned nextPageToken and the same arguments as in the initial call. The token alone determines the next page; repeated arguments do not affect it. Continue until truncated=false.
get_items_children
ChatGPTList the direct children (one level down) of a Wrike item: a folder, project, task, or space. This is how you see a space's top-level contents and how you walk the hierarchy. Pass a child's id back in to go one level deeper, or to get_item_details for its full detail. It is built for traversing the hierarchy without large responses, so drill down level by level and pull full detail only for the items you care about. When the user wants to know what is under an item, or asks you to explore or look inside it, do not stop at the first level. Follow the branches that look relevant to their request a few levels down (about three is usually enough) so your answer is complete. Stay focused and go deeper only where it helps answer the request, not everywhere.
get_my_inbox
ChatGPTRead the current user's Wrike inbox notifications, newest first. For triage ("what needs my attention", "summarize my inbox"), use the default (unread only). Pass includeRead=true only when the user asks what they have been working on; it adds recently-read items, which are noise for triage. If you don't already know whose inbox this is, call get_users(me=true) first: you need the user's own name to tell a direct mention from a group one. Each entry has notificationType, the source item (id + permalink), author, ts, and any commentText. Rank by signal, not recency: - Action needed (high): items assigned to the user (notificationType Assign or EntitiesAssigned), and Mention notifications whose commentText @-mentions the user by their own name, especially with a request. - For information (low): Comment notifications that do NOT @-mention the user by name, and Status or field changes on items the user only follows. A Mention addressed to a group (@followers, @assignees, @Product Managers, a team name) rather than to the user by name. notificationType Mention alone cannot tell a group mention from a direct one, so always read commentText to check whether the user's own name is the one mentioned. Cluster by item so each item appears once (one item may carry several notifications, e.g. a Status and a Comment); drop duplicates. Be selective: surface the high-signal items and summarize or omit the rest; many users keep a clean inbox. Show the item's permalink for anything you surface. The payload is a starting point, not the final answer. Status notifications don't say what changed, so call get_item_details for the current status and context before reporting, and read the item when a comment refers to something out of view. Enrich only the items you will actually surface (high-signal or ambiguous status), not the low-signal ones you plan to omit; batch their ids into few get_item_details calls (up to 5 ids each). Don't echo raw commentText verbatim. Reports, dashboards and approvals are surfaced for visibility but carry no w:itm:N id (not addressable by other tools). Paging: pass the oldest returned ts back as before. Read notifications persist ~1 month; unread persist longer.
get_requestform
ChatGPTReturns one request form: title, description, optional pageIndex, and pages of fields. Index first: omit pageIds to get pageIndex only (pages empty). Then call again with pageIds for the ENTRY page and each next page. Use pageIndex.visibility, afterPages, and visibleWhenAny to follow the graph. Set includePageIndex=false on later calls once you have the index. Do not load every page up front. pageIndex (when included): id, title, visibility (ENTRY | ORPHAN | AFTER_PAGE | ON_CONDITION), hasMandatoryAttachment (unconditional mandatory Attachment on the page — prefer prefill when true on the path). A mandatory Attachment gated by visibleWhenAny does not set this flag; prefer prefill only if that parent option is selected (see the field on the loaded page). ENTRY — form start (first page). ORPHAN — no inbound edges and not the start; do not offer to the user. AFTER_PAGE — default next after afterPages (page→page). ON_CONDITION — option branch via visibleWhenAny (field/option/parent titles); afterPages may also be present. Each field: id (w:rffld:S), title, type, mandatory, optional helperText, options for CHECK_BOX / COMBO_BOX / IMPORTANCE (w:rfopt:S). Send option ids for those types, w:usr:N for USER, ISO YYYY-MM-DD for DATE, a plain number for NUMBER, plain text otherwise. ATTACHMENT cannot be sent through MCP — leave those fields out. Field-level visibleWhenAny: fill only when a listed parent option is selected; until then mandatory does not apply. If the response exceeds the size limit, the tool errors. When the message says to retry, call again with fewer pageIds and includePageIndex=false — the form may still be fillable page by page. Only if a single page (or the index alone) still exceeds the limit, this form cannot be filled through MCP and has to be opened in Wrike (name it by the title from search_requestforms). Do not offer prefill_requestform without page fields. Treat cut-off JSON the same way. Attachment fields cannot be filled programmatically. Prefer submit_requestform; if hasMandatoryAttachment is true on the path, use prefill_requestform. If a loaded page shows a mandatory Attachment gated by visibleWhenAny, use prefill only after that parent option is selected. Only optional files are different: after a successful submit they can be added to the created item with prepare_attachment_upload and add_attachments_to_item. A mandatory Attachment is never a reason to submit and fix it later. Do not guess values you do not have. After a select changes, re-check visibleWhenAny. Optional fields are not noise — fill when the conversation implies a value and leave the rest empty. Skip fields whose parent option is not selected and pages that are not reached. User fields need w:usr:N via search_users. Dates: ISO YYYY-MM-DD (dateLimit when present).
get_users
ChatGPTLook up Wrike users or groups by exact match, using exactly one of ids, emails, or me (each parameter explains its own format below). Each row matches the search_users row shape. The response carries requested and returned: an id that doesn't exist, isn't visible to you, or is out of range is simply absent from users (returned < requested) rather than erroring, so a batch with one such id still returns the good ones. An id with an unrecognized prefix (not w:usr:) is instead rejected as a usage error. For fuzzy / name-fragment discovery, use search_users.
prefill_requestform
ChatGPTBuilds a pre-filled Wrike URL for a request form (w:rf:N). Fallback only — do NOT call to inspect field options, validate values, or dry-run a submit. Use get_requestform for all form layout, field types, and select options. This tool does not return field metadata or validation — it only generates a pre-filled URL for the user to open in Wrike. The Public API requires at least one field value in fields. Call prefill_requestform only when one of these applies: (1) get_requestform shows a mandatory Attachment field (submit_requestform cannot handle it), or (2) get_requestform / submit cannot deliver or complete the form, so the form has to be finished in the Wrike UI, or (3) the request is explicitly to open the pre-filled form in Wrike instead of submitting it here. Returns a URL that opens a request form with field values pre-filled — nothing is created until that form is submitted in Wrike. Your job is only to build the URL; pass the values you have (at least one field entry is required). fields: each entry is {field (w:rffld:S), values} from get_requestform. Option ids (w:rfopt:S) for selects; w:usr:N for User fields; Date values as ISO YYYY-MM-DD; honour visibleWhenAny. Report the returned url; the work item is created only once that form is submitted in Wrike. Files can only be attached by opening the prefill URL in Wrike, because nothing exists to attach them to until the form is submitted there.
prepare_attachment_upload
ChatGPTReserves a Wrike attachment ID and returns metadata with a signed uploadUrl for uploading a file directly to Wrike storage. This tool does not attach the file anywhere yet. Send the file's raw bytes as the entire PUT request body to uploadUrl, with the returned headers. Do not use multipart/form-data, JSON, or Base64. Use uploadUrl exactly as returned and before expiresAt. If the PUT result is unknown because of a timeout or connection error, retry the same uploadUrl with the same file instead of calling this tool again. A successful response confirms that the attachment was uploaded. After the upload is confirmed, you can use attachment ID in an MCP operation that accepts attachment IDs.
recommend_resources
ChatGPTReturns recommended user assignments for Wrike tasks in a project/folder, or for named tasks with feasibility scores and constraint penalties. Avoid using for capacity or workload reports, finding who has capacity, unassigned work, or reading task details (use instead - search_items, search_users, or get_item_details). Apply these suggestions only if the user explicitly asks and confirms. If the tool returns an error Follow what the error instructions say. If it says to ask the user, ask them directly; it's not allowed to invent a space, group, project team, or a different parent. Filter rules Set tasks.parentItemId for tasks in a project/folder. Set users.groupId, users.spaceId, or users.projectId only when the user restricts who may be assigned — users.projectId is that project's team, not the task scope. Pass canonical ids (w:itm:N, w:usr:N) directly. Use search_users/search_items only for extra data, then pass users.userIds and/or tasks.taskIds. Output interpretation Resolve ids in solutions.assignments and solutions.unassignedItems via ids and names in solutionsMetadata. Use solutionsMetadata.customFieldsTruncated to name w:cp:N ids in reasoning. For other CF ids in facts that are not in that list - fetch titles with CF search tools if needed. solutions.assignments are per-slot rows; a multi-assignee task has several rows with the same taskId. The same taskId may also be in unassignedItems when only partly staffed. unassignedItems = unfilled slots and tasks not sent to the solver(no dates/no effort). unassignedWork = leftover effort. Use reasoning.flags to explain why in plain language. Do not show internal flag until user explicitly asks. Flags may appear with no attribute facts (availability-only or job-role-only). feasible=false or a nonzero constraint penalty is valid — explain the limitation in plain language until user explicitly asks constraint name/priorities. feasible=true does not mean no overload: check resourceWorkloads. If remainingTotal > 0, not all effort was placed. overload reasons: PROPOSAL = by this recommendation; EXISTING = by already-committed work.
remove_whiteboard_from_item
ChatGPTRemoves relation between a Whiteboard and its Wrike item. The Whiteboard is not deleted. Requires canonical attachment ID (w:atch:N) of WHITEBOARD. Get it from get_item_details on a type=WHITEBOARD row. Files cannot be removed with this tool. This cannot be undone from Wrike MCP except by adding the Whiteboard again.
search_approvals
ChatGPTFiltered search across approvals visible to the caller. All filters optional; with none, returns every approval shared with you (capped). Each parameter explains its own filter below. Returns at most limit approvals plus truncated: boolean. When truncated, narrow with a tighter date window, fewer statuses, or a more specific approver list. Results are scoped to what the caller can see; there is no spaceId filter (v4 doesn't offer one). For exact lookup or all approvals on a known task/folder, use get_approvals.
search_blueprints
ChatGPTSearches Wrike blueprints and returns matches ordered by relevance: the first entry in blueprints is the closest match and each later entry is a weaker one. A blueprint is a reusable template for work; launching one creates real folders, projects or tasks. Build textSearch from keywords, not a full sentence: 3–8 terms from what the user said — team or department names, abbreviations, product names, domain nouns (e.g. "client onboarding", "quarterly marketing campaign"). Drop filler words (need, please, help, create, want). The backend matches them against blueprint title and description. If the top results look wrong, search again with different keywords (synonyms, team name, title fragment) — up to 5 meaningfully different queries before reporting that no blueprint matches. A result carrying parentBlueprintIds is one part of a larger blueprint, not the whole — report that distinction. When the entry you would launch carries parentBlueprintIds, launch the blueprint it names when the request describes the whole piece of work, and the nested entry only when the request names that part. Page through more results with nextPageToken while truncated=true. When several entries could fit, act on the first rather than waiting for a choice. Render a blueprint as [title](permalink); show the title alone when permalink is absent. A row whose blueprintType is absent is still launchable by blueprintId. Launch a match with create_item_from_blueprint, passing the blueprintId. Never offer a different blueprint in place of one you could not launch.
search_customitemtypes
ChatGPTFind a Wrike custom item type (CIT) and get its id. Returns CITs usage-ranked (most-used first). Use the id to filter items by their type or to create an item of that type. Every CIT is task- or project-based (never a folder or space), so baseType is only TASK or PROJECT. By default at most 10 are returned (raise via limit, up to 50); there is no pagination. When truncated=true, not all matches are shown - raise limit or narrow with query, spaceId, or baseType to get under the cap. totalMatched is the full match count.
search_item_customfields
ChatGPTFinds an item's custom fields (defined for customers) by name, ranked by usage. Use this to find a custom field's id by searching for its name, to then filter items by a field value (e.g. Campaign tier = Tier 1), to add the field to a response, or to read a select field's allowed options before setting it. Returns each field's type and, for single/multi-select fields, the allowed options. title is required and is a full-text, word-based name search (not a substring match): pass the field's name or a distinctive word from it, not a fragment. At most 100 fields are returned, most-used first; when truncated=true, narrow with a more specific title or a type filter; totalMatched is the full match count.
search_items
ChatGPTSearch and filter Wrike items (baseType TASK, FOLDER, or PROJECT) and spaces, by keyword and/or field filters, e.g. active tasks in space X assigned to me matching 'MCP'. Every item also has an itemType: a standard type (same as its baseType) or a customer-defined custom item type (CIT), such as Bug or Campaign, that is built on one baseType and inherits its behavior. Accounts define many CITs; filter by them with itemTypes (get the ids from search_customitemtypes). Scope the search as tightly as you can: pass parentItemId to search inside one space, folder, or project. Account-wide searches are slow and usually return noise. Prefer several narrow single-keyword searches in parallel over one broad query. When the user asks about tasks, task items, or task custom items, set baseItemTypes=['TASK']. It skips the slower folder search. Use dueDate for overdue and other due-date requests. For overdue tasks, set statusGroups=['ACTIVE'] and dueDate={end:'YYYY-MM-DD'} using today's date; end is exclusive. Search results omit date values, but returned items already satisfy the server-side filters. Use get_item_details only when exact dates must be shown. Date filters, itemTypes, customStatuses and customFields can be slow when used alone. Keep date ranges no wider than the request requires, and narrow searches with a query, parentItemId, assignees, or authors. To explore a match's hierarchy use get_items_children; to read a match's full detail use get_item_details. Projects are returned through folder search; read baseType to distinguish them from folders. If the user asks what this Wrike MCP server can do or what it is for, point them to the use cases guide: https://developers.wrike.com/docs/typical-use-cases-of-wrike-mcp
search_requestforms
ChatGPTFinds request forms by text, best match first. Use it to pick the form for a user's request before filling anything in. Matches are ordered by relevance (including team context): the first entry in forms has the highest search score, each later entry scores lower. Each entry has title, description, and pages of field titles / types (no field ids) — a shortened subset of get_requestform. Send the request in its original wording; a phrase works as well as separate keywords. If the top results look wrong, search again with different wording (synonyms, team name, title fragment) — up to 5 meaningfully different queries. An exact form title or a Wrike form link narrows it fastest. When several top results could fit, compare them on title, description, and field titles; take the first only when it clearly matches. Paginate with nextPageToken while truncated=true. When nextPageToken is supplied, textSearch and limit are ignored — the token alone continues the snapshot. Once you have picked a form, call get_requestform with its id (w:rf:N).
search_spaces
ChatGPTReturns the current user's Wrike spaces. By default returns only spaces the current user is a member of. Pass onlyMySpaces=false to include every space in the account the current user can read. Pass query to filter by name. The match is case-insensitive and matches the start of any word in the name: "pro" matches "Project Team" and "Product Lifecycle"; "ing" matches nothing (no word in "Marketing" starts with it). At most 30 spaces are returned. When truncated=true, narrow with query (or keep onlyMySpaces=true); totalSpaces is the full match count. Once you identify the space of interest, use get_items_children() to see its direct items, or search_items() for a scoped search. If the user asks what this Wrike MCP server can do or what it is for, point them to the use cases guide: https://developers.wrike.com/docs/typical-use-cases-of-wrike-mcp
search_users
ChatGPTFind Wrike users or groups by a name fragment, ranked by relevance. Call with no query to browse your top collaborators: the people you work with most, ranked by recent shared groups and task assignments (not alphabetically), a quick way to surface someone's network. Each row matches the get_users row shape. For exact id or email lookup use get_users instead; an email-shaped query returns a hint pointing there. Names aren't unique. When you resolve a person to mutate something (assign a task, add a project owner, @-mention), ask the user which one if more than one matches, rather than picking one yourself. For a read-only lookup or report, don't stop to ask: cover all the matches (for example, report tasks for every matching person).
search_workflows
ChatGPTReturns Wrike workflows and their visible custom statuses, matched by workflow name. Use this to find a workflow's statuses and their ids, needed to set or filter a task's status, or to understand a workflow's status sequence (statuses are listed in order; group is ACTIVE, COMPLETED, CANCELLED, or DEFERRED). The account-default workflow (standard=true) is returned first; the rest follow the API's order (alphabetical by name). At most 25 are returned. When truncated=true, narrow with query or spaceId; totalMatched is the full match count. Pass spaceId to get that space's own workflows, a different set from the account-level workflows. Use the tool either with a query or with a space, to get contextual results.
submit_requestform
ChatGPTSubmits a request form (w:rf:N), creating the task or project it is configured to create. Waits up to about 32 seconds for the async submit. On success returns status COMPLETED with itemId (w:itm:N). If still processing, returns status PROCESSING with submissionId (w:acj:S) — poll with get_asyncjob; do not call submit_requestform again (that can create a duplicate). Do not submit when the form has a mandatory Attachment field — fall back to prefill_requestform only in that case. fields: each entry is {field (w:rffld:S), values} from get_requestform. Option ids (w:rfopt:S) for selects; w:usr:N for User fields (resolve via search_users); for Date fields use ISO YYYY-MM-DD (server converts and checks dateLimit); honour visibleWhenAny for follow-up fields. fields must include every answer you are submitting — at least one entry is required. Errors come back as {retrySafe, message}, and message names the field to fix and says whether anything was created. A rejected value means fix that field's value and resubmit — do not treat it as a missing mandatory field. A missing mandatory field means add that field and resubmit. Nothing is created in either case. On COMPLETED call get_item_details with the returned itemId and report the title and permalink from that response. No Attachment field can be filled during submit, so a mandatory one still means prefill_requestform instead (see above). An optional file can be added to the created item afterwards with prepare_attachment_upload and add_attachments_to_item (itemId). On non-actionable errors, prefill_requestform is the way to continue in the Wrike UI.
update_items
ChatGPTUpdate existing Wrike tasks, folders, and projects, one item or many at once. Change fields (title, description, status, importance, dates, assignees, custom fields), move items under different parents, convert an item to another type. The same changes apply to every id in itemIds; call the tool again to apply a different change. This edits existing items only; to read an item's current values first use get_item_details (recommended before editing a description so you change only what you mean to).
wrike_batch_update_tasks
ChatGPTUpdate multiple Wrike tasks at once. Supports updating custom fields, converting to custom item types, managing folder assignments, task responsibilities, and super/sub task relationships. Maximum 100 tasks per request.
wrike_convert_numeric_id
ChatGPTDetermine the base type (taskId, folderId, contactId, etc) from a numeric ID or permalink URL (https://www.wrike.com/open.htm?id=<numericId>) or convert a numeric ID (123467890) to a string ID (MAAAAABlM4pq). All tools accept numeric IDs directly.
wrike_create_folder_project
ChatGPTCreate folder or project in Wrike. Before setting custom fields, call wrike_get_custom_fields to discover the correct field ID. Always include the Wrike permalink URL in your response for the created item.
wrike_create_task
ChatGPTCreate a Task or a Task CustomItemType inside an item. Before setting custom fields, call wrike_get_custom_fields to discover the correct field ID. When assigning users, resolve contacts first — if multiple match, ask the user. Never assign an ambiguous contact silently. Always include the Wrike permalink URL in your response for the created item.
wrike_get_approvals
ChatGPTGet approvals by filter. When no filter parameters passed returns all approvals shared with a user.
wrike_get_contacts
ChatGPTGet users by id or search/filter users based on name or properties.
wrike_get_custom_fields
ChatGPTGet custom field information by ids or search for custom fields by name substring match. Always call this tool before custom field filtering or setting custom field values through other tools.
wrike_get_folder_project
ChatGPTReturns complete information about single or multiple folders or projects by exact IDs.
wrike_get_my_contact_id
ChatGPTShortcut to return current user's contact ID
wrike_get_spaces
ChatGPTGet the available spaces from the whole account. If spaceId is specified, only the details about provided space will be returned. Most of Wrike data is organized in spaces, including tasks, projects, and folders. Do not show raw spaceIDs to the user, use space names instead. Wrike organizes work as Account > Spaces > Folders or Projects > Projects or Folders > Tasks > Tasks.
wrike_get_tasks
ChatGPTReturns complete information about single or multiple tasks by exact IDs. Never show raw IDs to the user; use task titles and permalinks. Permalinks: https://www.wrike.com/open.htm?id=<numericId>
wrike_get_workflows
ChatGPTRetrieve workflows with custom statuses. Only account-wide workflows are returned.
wrike_search_custom_types
ChatGPTSearch custom types with filters and response shaping. Custom Item Types can be searched across whole account or space. Tasks and Project might have custom item types assigned to them, use this tool to find such types.
wrike_search_folder_project
ChatGPTSearch folders or projects with title keyword, filters and/or response shaping. Folders & projects are one of the main ways to organize, manage, and report on work within Wrike. From the perspective of data model, projects are essentially folders with additional properties. Wrike organizes work as Account > Spaces > Folders or Projects > Projects or Folders > Tasks > Tasks. For searching, always scope to the most specific container known, by passing spaceID or folderID or the title parameter to avoid account-wide scans. Do not call this tool without any parameter. To search completely, combine this tool with wrike_search_tasks — some items are stored as tasks, not projects or folders. When searching, launch two different tool calls with project = true and project = false, as this ensures you are searching for both folders, for projects, and for project Custom Types. Before using customFieldFilters, call wrike_get_custom_fields to discover field IDs Never show raw IDs to the user, use item titles and permalinks. This method returns reduced payload. For full folder or project information, use the wrike_get_folder_project tool.
wrike_search_tasks
ChatGPTSearch tasks with title keyword, filters and/or response shaping. When searching, always scope to the most specific container known, by passing spaceID or folderID or the title parameter to avoid account-wide scans. Do not call this tool without any parameter. When searching for overdue tasks, include status: [Active]. Wrike organizes work as Account > Spaces > Folders or Projects > Projects or Folders > Tasks > Tasks. To search completely, combine this tool with wrike_search_folder_project — some items are stored as projects or folders, not tasks.
wrike_update_folder_project
ChatGPTUpdate project or folder. Supports renaming, moving (addParents/removeParents), custom fields, project settings, and custom item type conversion. Always include the Wrike permalink URL in your response for the modified item.
wrike_update_task
ChatGPTUpdate a Wrike task by exact ID. Before setting custom fields, call wrike_get_custom_fields to discover the correct field ID. When assigning users, resolve contacts first — if multiple match, ask the user. Never assign an ambiguous contact silently. Always include the Wrike permalink URL in your response for the modified item.
add_attachments_to_item
Claudeadd_whiteboard_to_item
Claudecreate_item_from_blueprint
Claudecreate_project_folder_item
Claudecreate_task_item
Claudeget_approvals
Claudeget_asyncjob
Claudeget_item_details
Claudeget_item_history
Claudeget_items_children
Claudeget_my_inbox
Claudeget_requestform
Claudeget_users
Claudeprefill_requestform
Claudeprepare_attachment_upload
Clauderemove_whiteboard_from_item
Claudesearch_approvals
Claudesearch_blueprints
Claudesearch_customitemtypes
Claudesearch_item_customfields
Claudesearch_items
Claudesearch_requestforms
Claudesearch_spaces
Claudesearch_users
Claudesearch_workflows
Claudesubmit_requestform
Claudeupdate_items
Claudewrike_batch_update_tasks
Claudewrike_convert_numeric_id
Claudewrike_create_folder_project
Claudewrike_create_task
Claudewrike_get_approvals
Claudewrike_get_contacts
Claudewrike_get_custom_fields
Claudewrike_get_folder_project
Claudewrike_get_my_contact_id
Claudewrike_get_spaces
Claudewrike_get_tasks
Claudewrike_get_workflows
Claudewrike_search_custom_types
Claudewrike_search_folder_project
Claudewrike_search_tasks
Claudewrike_update_folder_project
Claudewrike_update_task
Claude