# Wrike — how to use (mcp.ai)

Wrike is a project management and collaboration tool offering customizable workflows, Gantt charts, reporting, and resource management to boost team productivity

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_wrike?ms=1781542320000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `wrike_bulk_modify_groups`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/wrike`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/wrike/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/wrike/bulk/modify/groups` — Adds or removes members for multiple wrike groups in a single request; all specified user ids must correspond to existing wrike users.
  - body: { members: object[] }
- `POST https://api.mcp.ai/api/wrike/create/folder` — Creates a new wrike subfolder within the specified `folderid`, optionally as a project if `customitemtypeid` is given; the folder is auto-shared with its creator.
  - body: { title: string, fields?: string[], shareds?: string[], folderId: string, metadata?: object[], description?: string, customFields?: object[], customColumns?: string[], userAccessRoles?: object, withInvitations?: boolean, customItemTypeId?: string, plainTextCustomFields?: boolean }
- `POST https://api.mcp.ai/api/wrike/create/group` — Creates a new user group in wrike with a specified title, optionally setting members, parent group, avatar, and custom metadata.
  - body: { title: string, parent?: string, members?: string[], metadata?: object[], avatar__color?: string, avatar__letters?: string }
- `POST https://api.mcp.ai/api/wrike/create/invitation` — Invites a user to a wrike workspace by email, optionally with name, specifying either `usertypeid` or a combination of `role`/`external`; custom email subject/message available for paid accounts.
  - body: { role?: string, email: string, message?: string, subject?: string, external?: boolean, lastName?: string, firstName?: string, userTypeId?: string }
- `POST https://api.mcp.ai/api/wrike/create/task` — Creates a new task in a specified wrike folder; if setting priority with `prioritybefore` or `priorityafter`, the referenced task must be in the same folder or project.
  - body: { title: string, fields?: string[], follow?: boolean, status?: string, parents?: string[], shareds?: string[], folderId: string, metadata?: object[], followers?: string[], importance?: string, superTasks?: string[], billingType?: string, description?: string, customFields?: object[], customStatus?: string, responsibles?: string[], priorityAfter?: string, priorityBefore?: string, withInvitations?: boolean, customItemTypeId?: string, plainTextCustomFields?: boolean, responsiblePlaceholders?: string[] }
- `POST https://api.mcp.ai/api/wrike/delete/custom/field` — Permanently deletes a custom field by its id; this action is irreversible and requires a valid, existing custom field id.
  - body: { customFieldId: string }
- `POST https://api.mcp.ai/api/wrike/delete/folder` — Permanently deletes the folder specified by `folderid` and all its contents (e.g., tasks, documents, subfolders) from the wrike workspace; this irreversible action is for when the folder is no longer 
  - body: { folderId: string }
- `POST https://api.mcp.ai/api/wrike/delete/group` — Permanently deletes a group by its `groupid`; this action is irreversible and does not affect user accounts that were members of the group.
  - body: { groupId: string }
- `POST https://api.mcp.ai/api/wrike/delete/inivtation` — Permanently deletes an existing invitation, specified by its unique `invitationid`; this action cannot be undone.
  - body: { invitationId: string }
- `POST https://api.mcp.ai/api/wrike/delete/task` — Permanently deletes a wrike task and all its associated data by its id; this action is irreversible and the task must exist.
  - body: { taskId: string }
- `POST https://api.mcp.ai/api/wrike/fetch/all/tasks` — Fetches tasks from a wrike account, allowing filtering by status, due date, and subfolder inclusion, with customizable response fields and pagination.
  - body: { fields?: string[], status?: string, dueDate?: object, metadata?: object, page_size?: integer, descendants?: boolean, resolve_user_names?: boolean }
- `POST https://api.mcp.ai/api/wrike/get/account/information` — Retrieves detailed wrike account information, where the response content is influenced by selected fields, account subscription, and user permissions.
  - body: { fields?: string[] }
- `POST https://api.mcp.ai/api/wrike/get/all/custom/fields` — Retrieves all custom field definitions (including id, name, type, and settings) from the wrike account; this returns the definitions themselves, not their specific values on wrike items, and is useful
- `POST https://api.mcp.ai/api/wrike/get/contacts` — Retrieves a list of wrike contacts (e.g., team members, clients, collaborators); response includes contact details but not their detailed task or project involvement.
  - body: { fields?: string[], deleted?: boolean, metadata?: object }
- `POST https://api.mcp.ai/api/wrike/get/folders` — Retrieves folders and/or projects from wrike, with filters; when using `nextpagetoken`, all other filter parameters must match the initial request.
  - body: { fields?: string[], deleted?: boolean, project?: boolean, metadata?: object, pageSize?: integer, permalink?: string, descendants?: boolean, updatedDate?: object, customFields?: object[], contractTypes?: string[], nextPageToken?: string, customItemTypes?: string[], withInvitations?: boolean, plainTextCustomFields?: boolean }
- `POST https://api.mcp.ai/api/wrike/get/information/about/specific/contact` — Retrieves detailed information for a specific wrike contact using their unique `contactid`, optionally including `metadata` and `customfields` if specified in the `fields` parameter.
  - body: { fields?: string[], contactId: string }
- `POST https://api.mcp.ai/api/wrike/get/specific/user` — Retrieves detailed information about a specific user in wrike using their unique user id.
  - body: { userId: string }
- `POST https://api.mcp.ai/api/wrike/get/task/by/id` — Retrieves read-only detailed information for a specific wrike task by its unique id, optionally allowing specification of fields to include in the response.
  - body: { fields?: string, taskId: string }
- `POST https://api.mcp.ai/api/wrike/launch/folder/blueprint/async` — Asynchronously launches a new project or folder structure in wrike from a specified folder blueprint, typically returning a task id to track progress.
  - body: { title: string, parent: string, entry_limit?: integer, title_prefix?: string, reschedule_date?: string, reschedule_mode?: string, copy_attachments?: boolean, copy_descriptions?: boolean, copy_responsibles?: boolean, copy_custom_fields?: boolean, folder_blueprint_id: string, notify_responsibles?: boolean }
- `POST https://api.mcp.ai/api/wrike/launch/task/blueprint/async` — Asynchronously launches a wrike task blueprint to create tasks/projects, requiring either `super task id` (parent task) or `parent id` (parent folder/project) for placement.
  - body: { title: string, parent_id?: string, entry_limit?: integer, title_prefix?: string, super_task_id?: string, reschedule_date?: string, reschedule_mode?: string, copy_attachments?: boolean, copy_descriptions?: boolean, copy_responsibles?: boolean, task_blueprint_id: string, copy_custom_fields?: boolean, notify_responsibles?: boolean }
- `POST https://api.mcp.ai/api/wrike/list/folder/blueprints` — Retrieves all account-level folder blueprints, which are templates for standardizing folder/project creation with predefined structures, custom fields, and workflows.
- `POST https://api.mcp.ai/api/wrike/list/space/folder/blueprints` — Lists all folder blueprints (templates for new folders/projects) within a specified wrike space, requiring a valid and accessible space id.
  - body: { space_id: string }
- `POST https://api.mcp.ai/api/wrike/list/space/task/blueprints` — Lists task blueprints (templates for creating tasks with consistent structures) available in a specific, accessible wrike space.
  - body: { limit?: integer, space_id: string, page_size?: integer, next_page_token?: string }
- `POST https://api.mcp.ai/api/wrike/list/subfolders/by/folder/id` — Lists subfolders (metadata only, not their contents) for an existing wrike folder specified by `folderid`, supporting recursive descent, filtering, and pagination.
  - body: { fields?: string[], project?: boolean, folderId: string, metadata?: object, pageSize?: integer, permalink?: string, descendants?: boolean, updatedDate?: object, customFields?: object[], contractTypes?: string[], nextPageToken?: string, customItemTypes?: string[], withInvitations?: boolean, plainTextCustomFields?: boolean }
- `POST https://api.mcp.ai/api/wrike/list/task/blueprints` — Retrieves a list of defined task blueprints (predefined task templates) from the wrike account, supporting pagination.
  - body: { limit?: integer, page_size?: integer, next_page_token?: string }
- `POST https://api.mcp.ai/api/wrike/modify/account` — Updates or adds custom key-value metadata to the wrike account, useful for integrations, storing app-specific data, or mapping external system identifiers.
  - body: { metadata?: object[] }
- `POST https://api.mcp.ai/api/wrike/modify/folder` — Modifies an existing wrike folder: updates title, description, parents (not root/recycle bin), sharing, metadata, custom fields/columns; restores, converts to project, or manages access roles.
  - body: { title?: string, fields?: string[], restore?: boolean, folderId: string, metadata?: object[], addParents?: string[], addShareds?: string[], description?: string, customFields?: object[], customColumns?: string[], removeParents?: string[], removeShareds?: string[], addAccessRoles?: object, withInvitations?: boolean, removeAccessRoles?: string[], clearCustomColumns?: boolean, plainTextCustomFields?: boolean, convertToCustomItemType?: string }
- `POST https://api.mcp.ai/api/wrike/modify/group` — Updates an existing wrike user group's attributes like title, members, parent, avatar, or metadata, using its `groupid` and specifying only the fields to change.
  - body: { title?: string, parent?: string, groupId: string, metadata?: object[], addMembers?: string[], avatar__color?: string, removeMembers?: string[], addInvitations?: string[], avatar__letters?: string, removeInvitations?: string[] }
- `POST https://api.mcp.ai/api/wrike/modify/task` — Modifies an existing wrike task by its id, allowing updates to attributes such as title, status, dates, assignees, and custom fields; `prioritybefore` and `priorityafter` are mutually exclusive, and p
  - body: { dates?: object, title?: string, fields?: string[], follow?: boolean, status?: string, taskId: string, restore?: boolean, metadata?: object[], addParents?: string[], addShareds?: string[], importance?: string, billingType?: string, description?: string, addFollowers?: string[], customFields?: object[], customStatus?: string, addSuperTasks?: string[], priorityAfter?: string, removeParents?: string[], removeShareds?: string[], priorityBefore?: string, addResponsibles?: string[], withInvitations?: boolean, removeSuperTasks?: string[], removeResponsibles?: string[], plainTextCustomFields?: boolean, convertToCustomItemType?: string, addResponsiblePlaceholders?: string[], removeResponsiblePlaceholders?: string[] }
- `POST https://api.mcp.ai/api/wrike/query/customfields` — Retrieves a wrike custom field's detailed information (e.g., type, possible values for dropdowns), properties, and metadata; the `customfieldid` must correspond to an existing custom field.
  - body: { customFieldId: string }
- `POST https://api.mcp.ai/api/wrike/query/invitations` — Retrieves all active invitations in wrike, useful for viewing and auditing pending invitations or managing user onboarding.
- `POST https://api.mcp.ai/api/wrike/query/specific/group` — Retrieves detailed information for a specific wrike group using its `groupid`, optionally including 'metadata'.
  - body: { fields?: string[], groupId: string }
- `POST https://api.mcp.ai/api/wrike/query/workflows` — Fetches a list of all workflows with their detailed information from the wrike account; this is a read-only action and does not support pagination or filtering through its parameters.
- `POST https://api.mcp.ai/api/wrike/retrieve/list/of/groups` — Retrieves a list of user groups from the wrike account, supporting metadata filtering, pagination, and inclusion of specific fields; this is a read-only operation.
  - body: { fields?: string[], metadata?: object, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/wrike/update/custom/field/by/id` — Updates properties of an existing wrike custom field by its id, such as its title, type, scope, or sharing settings.
  - body: { type?: string, title?: string, sharing?: object, spaceId?: string, settings?: object, addMirrors?: string[], addShareds?: string[], changeScope?: string, customFieldId: string, removeMirrors?: string[], removeShareds?: string[] }
- `POST https://api.mcp.ai/api/wrike/update/invitation` — Updates a pending wrike invitation (`invitationid`) to resend it or change user's role/type (use `usertypeid` over deprecated `role`/`external`).
  - body: { role?: string, resend?: boolean, external?: boolean, userTypeId?: string, invitationId: string }
- `POST https://api.mcp.ai/api/wrike/update/metadata/on/specific/contact` — Updates metadata, job role, or custom fields for an existing wrike contact specified by `contactid`; if `jobroleid` is provided, it must be a valid id.
  - body: { fields?: string[], metadata?: object[], contactId: string, jobRoleId?: string, customFields?: object[] }
- `POST https://api.mcp.ai/api/wrike/update/specific/user` — Updates specified profile attributes (e.g., account id, role, external status) for an existing wrike user; unspecified fields remain unchanged.
  - body: { userId: string, profile__role?: string, profile__external?: boolean, profile__accountId?: string }

## More
- Page: https://mcp.ai/wrike
- Agent spec (llms.txt): https://mcp.ai/wrike/llms.txt
- Postman collection: https://mcp.ai/wrike/postman.json
