- API Client: Full Wrike API v4 with OAuth2/token auth, pagination, error handling - 60+ Tools across 14 categories: tasks, folders, projects, spaces, contacts, comments, timelogs, attachments, workflows, custom-fields, approvals, groups, invitations, webhooks - 22 React Apps: task-dashboard, task-detail, task-grid, task-board, project-dashboard, project-detail, project-grid, folder-tree, space-overview, gantt-view, time-dashboard, time-entries, member-workload, comment-thread, approval-manager, workflow-editor, custom-fields-manager, attachment-gallery, search-results, activity-feed, sprint-board, reports-dashboard - All apps: dark theme, client-side state, standalone directories - Full TypeScript types for all Wrike API entities - Comprehensive README with setup instructions Replaces single-file stub with production-ready MCP server
263 lines
7.5 KiB
Markdown
263 lines
7.5 KiB
Markdown
# Wrike MCP Server
|
|
|
|
A complete Model Context Protocol (MCP) server for Wrike API v4, providing 60+ tools and 22 React-based UI apps for comprehensive project management integration.
|
|
|
|
## Features
|
|
|
|
### 60+ MCP Tools
|
|
|
|
**Tasks (9 tools)**
|
|
- `wrike_list_tasks` - List tasks with filters
|
|
- `wrike_get_task` - Get task details
|
|
- `wrike_create_task` - Create new task
|
|
- `wrike_update_task` - Update task
|
|
- `wrike_delete_task` - Delete task
|
|
- `wrike_list_subtasks` - List subtasks
|
|
- `wrike_create_subtask` - Create subtask
|
|
- `wrike_list_dependencies` - List task dependencies
|
|
- `wrike_add_dependency` - Add task dependency
|
|
|
|
**Folders (7 tools)**
|
|
- `wrike_list_folders` - List folders
|
|
- `wrike_get_folder` - Get folder details
|
|
- `wrike_create_folder` - Create folder
|
|
- `wrike_update_folder` - Update folder
|
|
- `wrike_delete_folder` - Delete folder
|
|
- `wrike_list_folder_tasks` - List tasks in folder
|
|
- `wrike_copy_folder` - Copy folder
|
|
|
|
**Projects (6 tools)**
|
|
- `wrike_list_projects` - List projects
|
|
- `wrike_get_project` - Get project details
|
|
- `wrike_create_project` - Create project
|
|
- `wrike_update_project` - Update project
|
|
- `wrike_delete_project` - Delete project
|
|
- `wrike_list_project_tasks` - List project tasks
|
|
|
|
**Spaces (5 tools)**
|
|
- `wrike_list_spaces` - List spaces
|
|
- `wrike_get_space` - Get space details
|
|
- `wrike_create_space` - Create space
|
|
- `wrike_update_space` - Update space
|
|
- `wrike_delete_space` - Delete space
|
|
|
|
**Contacts (3 tools)**
|
|
- `wrike_list_contacts` - List contacts/users
|
|
- `wrike_get_contact` - Get contact details
|
|
- `wrike_update_contact` - Update contact
|
|
|
|
**Comments (5 tools)**
|
|
- `wrike_list_comments` - List comments
|
|
- `wrike_get_comment` - Get comment
|
|
- `wrike_create_comment` - Create comment
|
|
- `wrike_update_comment` - Update comment
|
|
- `wrike_delete_comment` - Delete comment
|
|
|
|
**Timelogs (5 tools)**
|
|
- `wrike_list_timelogs` - List time logs
|
|
- `wrike_get_timelog` - Get timelog
|
|
- `wrike_create_timelog` - Create timelog
|
|
- `wrike_update_timelog` - Update timelog
|
|
- `wrike_delete_timelog` - Delete timelog
|
|
|
|
**Attachments (4 tools)**
|
|
- `wrike_list_attachments` - List attachments
|
|
- `wrike_get_attachment` - Get attachment details
|
|
- `wrike_download_attachment` - Download attachment
|
|
- `wrike_delete_attachment` - Delete attachment
|
|
|
|
**Workflows (4 tools)**
|
|
- `wrike_list_workflows` - List workflows
|
|
- `wrike_get_workflow` - Get workflow
|
|
- `wrike_create_workflow` - Create workflow
|
|
- `wrike_update_workflow` - Update workflow
|
|
|
|
**Custom Fields (4 tools)**
|
|
- `wrike_list_custom_fields` - List custom fields
|
|
- `wrike_get_custom_field` - Get custom field
|
|
- `wrike_create_custom_field` - Create custom field
|
|
- `wrike_update_custom_field` - Update custom field
|
|
|
|
**Approvals (5 tools)**
|
|
- `wrike_list_approvals` - List approvals
|
|
- `wrike_get_approval` - Get approval
|
|
- `wrike_create_approval` - Create approval
|
|
- `wrike_update_approval` - Update approval
|
|
- `wrike_delete_approval` - Delete approval
|
|
|
|
**Groups (5 tools)**
|
|
- `wrike_list_groups` - List groups
|
|
- `wrike_get_group` - Get group
|
|
- `wrike_create_group` - Create group
|
|
- `wrike_update_group` - Update group
|
|
- `wrike_delete_group` - Delete group
|
|
|
|
**Invitations (4 tools)**
|
|
- `wrike_list_invitations` - List invitations
|
|
- `wrike_create_invitation` - Create invitation
|
|
- `wrike_update_invitation` - Update invitation
|
|
- `wrike_delete_invitation` - Delete invitation
|
|
|
|
**Webhooks (4 tools)**
|
|
- `wrike_list_webhooks` - List webhooks
|
|
- `wrike_create_webhook` - Create webhook
|
|
- `wrike_update_webhook` - Update webhook
|
|
- `wrike_delete_webhook` - Delete webhook
|
|
|
|
### 22 React MCP Apps
|
|
|
|
All apps feature dark theme and client-side state management:
|
|
|
|
1. **task-dashboard** - Overview of all tasks with filters
|
|
2. **task-detail** - Detailed task view and editor
|
|
3. **task-grid** - Tabular task view
|
|
4. **task-board** - Kanban-style task board
|
|
5. **project-dashboard** - Project overview with status
|
|
6. **project-detail** - Detailed project view
|
|
7. **project-grid** - Tabular project view
|
|
8. **folder-tree** - Hierarchical folder navigation
|
|
9. **space-overview** - Space management dashboard
|
|
10. **gantt-view** - Timeline/Gantt visualization
|
|
11. **time-dashboard** - Time tracking overview
|
|
12. **time-entries** - Create time log entries
|
|
13. **member-workload** - Team member workload view
|
|
14. **comment-thread** - Task comment threads
|
|
15. **approval-manager** - Approval requests manager
|
|
16. **workflow-editor** - Workflow configuration
|
|
17. **custom-fields-manager** - Custom field management
|
|
18. **attachment-gallery** - File attachment gallery
|
|
19. **search-results** - Search tasks and folders
|
|
20. **activity-feed** - Recent activity stream
|
|
21. **sprint-board** - Sprint planning board
|
|
22. **reports-dashboard** - Analytics and reports
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Set your Wrike API token as an environment variable:
|
|
|
|
```bash
|
|
export WRIKE_API_TOKEN="your-api-token-here"
|
|
```
|
|
|
|
You can get a permanent API token from your Wrike account:
|
|
1. Go to Apps & Integrations
|
|
2. Click on API
|
|
3. Create a new permanent token
|
|
|
|
## Usage
|
|
|
|
### As MCP Server
|
|
|
|
Add to your MCP client configuration:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"wrike": {
|
|
"command": "node",
|
|
"args": ["/path/to/wrike-mcp-server/dist/main.js"],
|
|
"env": {
|
|
"WRIKE_API_TOKEN": "your-api-token"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Standalone
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
wrike/
|
|
├── src/
|
|
│ ├── clients/
|
|
│ │ └── wrike.ts # Wrike API client
|
|
│ ├── tools/
|
|
│ │ ├── tasks-tools.ts # Task management tools
|
|
│ │ ├── folders-tools.ts # Folder tools
|
|
│ │ ├── projects-tools.ts # Project tools
|
|
│ │ ├── spaces-tools.ts # Space tools
|
|
│ │ ├── contacts-tools.ts # Contact tools
|
|
│ │ ├── comments-tools.ts # Comment tools
|
|
│ │ ├── timelogs-tools.ts # Time tracking tools
|
|
│ │ ├── attachments-tools.ts # Attachment tools
|
|
│ │ ├── workflows-tools.ts # Workflow tools
|
|
│ │ ├── custom-fields-tools.ts # Custom field tools
|
|
│ │ ├── approvals-tools.ts # Approval tools
|
|
│ │ ├── groups-tools.ts # Group tools
|
|
│ │ ├── invitations-tools.ts # Invitation tools
|
|
│ │ └── webhooks-tools.ts # Webhook tools
|
|
│ ├── types/
|
|
│ │ └── wrike.ts # TypeScript type definitions
|
|
│ ├── ui/
|
|
│ │ └── react-app/ # 22 React MCP apps
|
|
│ ├── server.ts # MCP server implementation
|
|
│ └── main.ts # Entry point
|
|
├── package.json
|
|
├── tsconfig.json
|
|
└── README.md
|
|
```
|
|
|
|
## API Coverage
|
|
|
|
This server implements the complete Wrike API v4:
|
|
|
|
- ✅ Tasks & Subtasks
|
|
- ✅ Folders & Projects
|
|
- ✅ Spaces
|
|
- ✅ Contacts & Groups
|
|
- ✅ Comments
|
|
- ✅ Time Tracking
|
|
- ✅ Attachments
|
|
- ✅ Workflows & Custom Statuses
|
|
- ✅ Custom Fields
|
|
- ✅ Approvals
|
|
- ✅ Invitations
|
|
- ✅ Webhooks
|
|
- ✅ Dependencies
|
|
|
|
## Authentication
|
|
|
|
Supports both:
|
|
- **OAuth2 Bearer Token** - For user-specific access
|
|
- **Permanent API Token** - For service accounts and automation
|
|
|
|
## Error Handling
|
|
|
|
The server includes comprehensive error handling:
|
|
- API request failures
|
|
- Rate limiting
|
|
- Invalid parameters
|
|
- Network errors
|
|
- Authentication errors
|
|
|
|
## Contributing
|
|
|
|
Contributions welcome! Please ensure:
|
|
- TypeScript types are complete
|
|
- Tools follow MCP standards
|
|
- React apps maintain dark theme
|
|
- Error handling is comprehensive
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## Resources
|
|
|
|
- [Wrike API Documentation](https://developers.wrike.com/api/v4/)
|
|
- [Model Context Protocol](https://modelcontextprotocol.io/)
|
|
- [MCP SDK](https://github.com/modelcontextprotocol/sdk)
|