mcp-server-wrike

by katoiek

250 downloads
Not rated
GitHub

About

mcp-server-wrike is a Model Context Protocol (MCP) server implementation that allows you to interact with the Wrike API through MCP-compatible clients like Anthropic's Claude Desktop. It provides read and write operations for Wrike spaces, folders, projects, tasks, comments…

Details

Author
katoiek
Downloads
250
Categories
Other

- List and get Wrike spaces, folders, and projects
- Retrieve and search tasks with filters (status, importance, custom fields)
- Read comments, contacts, timelogs, and custom fields
- Create, update, and delete tasks, comments, and timelogs
- Create work from custom item types and folder blueprints

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name mcp-server-wrike
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install the npm package, then in your MCP client (e.g., Claude Desktop) ask natural language questions or commands about your Wrike data. Mention “Wrike” in your prompts to improve tool selection. Use the provided function names (e.g., wrike_get_space, wrike_create_task) via the client’s tool interface.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp-server-wrike": {
            "mcp-server-wrike": {
                "command": "npx",
                "args": [
                    "mcp-server-wrike"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-wrike": {
        "command": "npx",
        "args": [
            "mcp-server-wrike"
        ]
    }
}

mcp-server-wrike

npm version

English | 日本語

<a id="english"></a>

English

Model Context Protocol (MCP) server implementation for Wrike. This package allows you to talk to the Wrike API from MCP clients such as Anthropic's Claude Desktop Application and other MCP-compatible tools.

About MCP

More details on MCP here:
- Anthropic's Model Context Protocol
- MCP Documentation
- MCP GitHub Repository

Usage

In your AI tool of choice (e.g., Claude Desktop), ask something about Wrike tasks, projects, spaces, and/or comments. Mentioning the word "wrike" will increase the chance of having the LLM pick the right tool.

Examples:
> Please list all spaces in Wrike.
>
> Can you get information about a specific space with ID "ABCDE123" in Wrike?

> Can you tell me the details of a task named "Website Redesign" in Wrike?

> Please summarize all time logs entered by john.doe@example.com in Wrike during 2024.

Available Functions

Read Operations (List & Get)

1. wrike_get_space
- Get spaces information from Wrike
- Optional input:
- space_id (string): Space ID to get specific space. If not provided, all spaces will be returned
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of spaces or a specific space

2. wrike_get_folder_project
- Unified tool for working with Wrike folders, projects, and spaces
- Optional input (at least one is recommended):
- space_id (string): The space to search in
- folder_id (string): The parent folder to search in
- folder_ids (array of strings): Specific folder IDs to retrieve (up to 100)
- Optional input:
- name_pattern (string): Regular expression pattern to match folder/project names
- project_only (boolean): Only return folders that are projects (default: false)
- archived (boolean): Include archived folders/projects (default: false)
- include_history (boolean): Include folder history when using folder_ids (default: false)
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of matching folders/projects or a single folder/project/space

3. wrike_get_task
- Unified tool for working with Wrike tasks
- Optional input:
- task_id (string): ID of a specific task to retrieve
- folder_id (string): The folder/project to search tasks in
- If neither task_id nor folder_id is provided, all tasks will be retrieved
- Optional input for task search:
- title (string): Filter by task title
- status (string): Filter by task status
- importance (string): Filter by task importance
- completed (boolean): Filter by completion status (default: false)
- subtasks (boolean): Include subtasks (default: false)
- custom_fields (object): Custom fields to filter by
- Optional input:
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: Detailed task information or list of matching tasks

4. wrike_get_comments
- Get comments from Wrike with various filtering options
- Optional input (at least one is required):
- task_id (string): Get comments for a specific task ID
- folder_id (string): Get comments for a specific folder ID
- comment_ids (array of strings): Get specific comments by IDs (up to 100)
- Optional input:
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of comments

5. wrike_get_task_comments
- Get comments for a specific task
- Required input:
- task_id (string): The task ID to get comments for
- Optional input:
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of comments for the specified task

6. wrike_get_contacts
- Get information about Wrike contacts/users
- Optional input:
- contact_ids (array of strings): Array of contact IDs to retrieve (up to 100)
- me (boolean): Return only the current user's information
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of contacts

7. wrike_get_timelogs
- Get timelogs from Wrike with filtering options
- Optional input (at least one is recommended):
- task_id (string): Filter timelogs by task ID
- contact_id (string): Filter timelogs by contact/user ID
- folder_id (string): Filter timelogs by folder ID
- category_id (string): Filter timelogs by timelog category ID
- timelog_ids (array of strings): Array of timelog IDs to retrieve (up to 100)
- start_date (string): Filter timelogs by start date (YYYY-MM-DD)
- end_date (string): Filter timelogs by end date (YYYY-MM-DD)
- me (boolean): Whether to retrieve only your own timelogs
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of timelogs

8. wrike_get_timelog_categories
- Get all timelog categories from Wrike
- Optional input:
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of timelog categories

9. wrike_get_custom_item_types
- Get custom item types from Wrike
- Optional input:
- id (string): Custom item type ID (if specified, retrieves a specific custom item type)
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of custom item types or a specific custom item type

10. wrike_get_folder_blueprints
- Get folder blueprints from Wrike
- Optional input:
- space_id (string): Space ID (if specified, retrieves folder blueprints from this space)
- Returns: List of folder blueprints

11. wrike_get_task_blueprints
- Get task blueprints from Wrike
- Optional input:
- space_id (string): Space ID (if specified, retrieves task blueprints from this space)
- Returns: List of task blueprints

12. wrike_get_customfields
- Get custom fields from Wrike
- Optional input:
- customfield_ids (array of strings): Array of custom field IDs to retrieve (up to 100)
- opt_fields (string): Comma-separated list of optional fields to include
- Returns: List of custom fields or specific custom fields by IDs

Write Operations (Create, Update, Delete)

10. wrike_create_folder_project
- Create a new folder or project in Wrike
- Required input:
- parent_folder_id (string): ID of the parent folder
- title (string): Title of the folder/project
- Optional input:
- description (string): Description of the folder/project
- is_project (boolean): Whether to create as a project (default: false)
- project_owner_ids_str (string): Comma-separated list of project owner IDs
- project_status (string): Project status (Green, Yellow, Red, Completed, OnHold, Cancelled)
- project_start_date (string): Project start date (ISO format: YYYY-MM-DD)
- project_end_date (string): Project end date (ISO format: YYYY-MM-DD)
- custom_fields (array): Array of custom fields
- Returns: Created folder/project information

10. wrike_create_task
- Create a new task in a project
- Required input:
- folder_id (string): The folder/project to create the task in
- title (string): Title of the task
- Optional input:
- description (string): Description of the task
- status (string): Status of the task (Active, Completed, Deferred, Cancelled)
- importance (string): Importance of the task (High, Normal, Low)
- dates (object): Due dates for the task with start, due, type, and duration properties
- responsibles (array of strings): Array of user IDs to assign to the task
- followers (array of strings): Array of user IDs to add as followers
- parent_id (string): The parent task ID to set this task under (creates a subtask)
- custom_fields (array): Array of custom fields with id and value properties
- Returns: Created task information

11. wrike_update_task
- Update an existing task's details
- Required input:
- task_id (string): The task ID to update
- Optional input:
- title (string): New title for the task
- description (string): New description for the task
- status (string): New status for the task
- importance (string): New importance for the task
- dates (object): New due dates for the task
- completed (boolean): Mark task as completed or not
- Returns: Updated task information

12. wrike_create_comment
- Create a comment on a task
- Required input:
- task_id (string): The task ID to add the comment to
- text (string): The text content of the comment
- Optional input:
- plain_text (boolean): Whether to treat the comment as plain text
- Returns: Created comment information

13. wrike_create_timelog
- Create a new timelog entry for a task
- Required input:
- task_id (string): ID of the task to add the timelog to
- hours (number): Number of hours to log (positive number)
- tracked_date (string): Date when the time was spent (YYYY-MM-DD)
- Optional input:
- comment (string): Comment for the timelog
- category_id (string): ID of the timelog category
- Returns: Created timelog information

14. wrike_update_timelog
- Update an existing timelog entry
- Required input:
- timelog_id (string): ID of the timelog to update
- Optional input:
- hours (number): New number of hours (positive number)
- tracked_date (string): New date when the time was spent (YYYY-MM-DD)
- comment (string): New comment for the timelog
- category_id (string): New ID of the timelog category
- Returns: Updated timelog information

15. wrike_delete_timelog
- Delete a timelog entry
- Required input:
- timelog_id (string): ID of the timelog to delete
- Returns: Success status

16. wrike_create_work_from_custom_item_types
- Create a task from a custom item type
- Required input:
- custom_item_type_id (string): ID of the custom item type to create work from
- parent_id (string): ID of parent folder or project (Either this parameter or super_task_id is required)
- super_task_id (string): ID of parent task to add work as a subtask (Either this parameter or parent_id is required)
- title (string): Title of the task to create
- Optional input:
- description (string): Description of the task
- status (string): Status of the task
- importance (string): Importance of the task (High, Normal, Low)
- dates (object): Task dates with properties like start, due, type, duration
- assignees (array of strings): Array of user IDs to assign to the task
- followers (array of strings): Array of user IDs to add as followers
- custom_fields (array): Array of custom fields with id and value properties
- Returns: Created task information

17. wrike_create_work_from_folder_blueprint
- Create work from a folder blueprint in Wrike
- Required input:
- folder_blueprint_id (string): ID of the folder blueprint to launch
- parent_id (string): ID of the parent folder where the blueprint will be created
- title (string): Title for the created work
- Optional input:
- title_prefix (string): Title prefix for all copied tasks
- description (string): Description for the created work
- copy_descriptions (boolean): Copy descriptions or leave empty (default: true)
- notify_responsibles (boolean): Notify those responsible (default: true)
- copy_responsibles (boolean): Copy those responsible (default: true)
- copy_custom_fields (boolean): Copy custom fields (default: true)
- copy_attachments (boolean): Copy attachments (default: false)
- reschedule_date (string): Date to use in task rescheduling (format: YYYY-MM-DD)
- reschedule_mode (enum): Mode for rescheduling: Start/start or End/end
- entry_limit (number): Maximum number of tasks/folders in tree for copy (1-250, default: 250)
- Returns: Async job ID for the launched blueprint

18. wrike_create_work_from_task_blueprint
- Create work from a task blueprint in Wrike
- Required input:
- task_blueprint_id (string): ID of the task blueprint to launch
- title (string): Title for the created task
- parent_id (string): ID of parent folder or project (Either this parameter or super_task_id is required)
- super_task_id (string): ID of parent task to add work as a subtask (Either this parameter or parent_id is required)
- Optional input:
- title_prefix (string): Title prefix for all copied tasks
- copy_descriptions (boolean): Copy descriptions or leave empty (default: true)
- notify_responsibles (boolean): Notify those responsible (default: true)
- copy_responsibles (boolean): Copy those responsible (default: true)
- copy_custom_fields (boolean): Copy custom fields (default: true)
- copy_attachments (boolean): Copy attachments (default: false)
- reschedule_date (string): Date to use in task rescheduling (format: YYYY-MM-DD)
- reschedule_mode (enum): Mode for rescheduling: Start/start or End/end
- entry_limit (number): Maximum number of tasks/folders in tree for copy (1-250, default: 250)
- Returns: Async job ID for the launched blueprint

Setup

1. Create a Wrike account

- Visit Wrike - Click "Sign up"

2. Set up Wrike API Application and Authentication

Using a Permanent Token
- Log in to your Wrike account - Go to the Wrike App Directory - Create a new API application if you don't have one - Click "Obtain permanent token" and follow the instructions - More details here: Wrike OAuth 2.0 Authorization

3. Install the MCP Server

   # Clone the repository
   git clone https://github.com/katoiek/mcp-server-wrike.git
   cd mcp-server-wrike

# Install dependencies
npm install

# Build the project
npm run build

4. Configure Claude Desktop

Add the following to your claude_desktop_config.json:
Option 1: Using npx (recommended for global installation)
{
  "mcpServers": {
    "wrike": {
      "command": "node",
      "args": ["your-mcp-server-path/server.js"],
      "env": {
        "WRIKE_ACCESS_TOKEN": "your-wrike-access-token",
        "WRIKE_HOST": "www.wrike.com",
        "NODE_ENV": "production",
        "LOG_LEVEL": "warn"
      }
    }
  }
}
Option 2: Using node (for local installation)
{
  "mcpServers": {
    "wrike-mcp-server": {
      "command": "node",
      "args": ["/path/to/mcp-server-wrike/dist/server.js"],
      "env": {
        "WRIKE_ACCESS_TOKEN": "your-wrike-access-token",
        "WRIKE_HOST": "www.wrike.com",
        "NODE_ENV": "production",
        "LOG_LEVEL": "warn"
      }
    }
  }
}

> Note: This server is designed to be run directly from Claude Desktop, which passes environment variables directly. No .env file is needed or used.

Installation

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.