The Yougile MCP Server brings the power of Model Context Protocol (MCP) to Yougile, allowing AI agents and developer tools to interact programmatically with your Yougile workspace.
This server unlocks all sorts of useful capabilities for anyone working with Yougile:
- Manage projects (get, create, update)
- Manage tasks (get, create, update, assign)
- Manage users (invite, get details, update)
- Manage boards and columns
- Update task statuses and move tasks between columns
- Build smart apps that interact naturally with Yougile
- Node.js 18 or higher
- A Yougile account with appropriate permissions
- An API key for your Yougile company
The easiest way to get your API key is through the built-in Yougile configurator.
How to open the configurator:
- Press
Ctrl + ~in the Yougile app, or - Go to the Projects page → click the gear icon ⚙️ next to your company name → select "Configure" (Настроить)
Once in the configurator:
- Navigate to API settings
- Generate or copy your API key
You can get your API key programmatically using the following cURL command:
curl -X POST "https://yougile.com/api-v2/auth/keys" \
-H "Content-Type: application/json" \
-d '{
"login": "your_email@example.com",
"password": "your_password",
"companyId": "your_company_id"
}'Note: This creates a new API key. Make sure to save the returned API key securely.
To retrieve your existing API keys:
curl -X POST "https://yougile.com/api-v2/auth/keys/get" \
-H "Content-Type: application/json" \
-d '{
"login": "your_email@example.com",
"password": "your_password"
}'You'll need your Company ID for some API operations. Here are the ways to get it:
Keyboard Shortcut (Recommended)
- Press
Ctrl + Alt + Q(Windows/Linux) orCtrl + Option + Q(Mac) in Yougile - The Company ID will appear on screen and automatically copy to your clipboard
Via API
- Use the
/api-v2/auth/companiesendpoint with your login credentials to list all your companies
- Clone or download this repository
- Install dependencies:
npm install- Build the server:
npm run buildThe server is configured through the global MCP configuration file. Update the configuration with your API key:
{
"mcpServers": {
"yougile-mcp": {
"command": "node",
"args": [
"D:\\Projects\\yougile-mcp\\yougile.cjs"
],
"env": {
"YOUGILE_API_KEY": "your_actual_api_key_here"
},
"disabled": false,
"alwaysAllow": []
}
}
}For Claude Desktop or other MCP-compatible tools, you can add Yougile by updating your global MCP configuration file (
typically located at C:\Users\{username}\.kilocode\globalStorage\kilo code.kilo-code\settings\mcp_settings.json):
{
"mcpServers": {
"yougile-mcp": {
"command": "node",
"args": [
"D:\\Projects\\yougile-mcp\\yougile.cjs"
],
"env": {
"YOUGILE_API_KEY": "your_actual_api_key_here"
}
}
}
}Alternatively, if you prefer to manage your API key through system environment variables:
{
"mcpServers": {
"yougile-mcp": {
"command": "node",
"args": [
"D:\\Projects\\yougile-mcp\\yougile.cjs"
],
"env": {
"YOUGILE_API_KEY": "${env.YOUGILE_API_KEY}"
}
}
}
}If you experience "MCP error -32000: Connection closed" when working with different projects:
- Make sure the server file extension is
.cjs(CommonJS) rather than.js(ES modules) to properly support__dirname - Ensure that the path in your MCP configuration points to
yougile.cjsand notyougile.js - If the problem persists, check that your global MCP configuration is properly set up
- Restart your MCP client (Claude Desktop, KiloCode, etc.) after making configuration changes
YOUGILE_API_KEY- Your Yougile API token (required)YOUGILE_API_HOST_URL(optional) - The host URL of the Yougile API Server. Defaults to https://yougile.com/api-v2/YOUGILE_USER_ID(optional) - Default user ID foryougile tasks myYOUGILE_USER_EMAIL(optional) - Default user email foryougile tasks myYOUGILE_DEBUG(optional) - Set to1to enable debug logging. Logs are written toyougile-mcp-debug.login the current working directory. Disabled by default.
get_users- Get all users in the companyget_user- Get a specific user by IDcreate_user- Invite a user to the companyupdate_user- Update an existing userdelete_user- Remove a user from the company
get_projects- Get all projects for the current userget_project- Get a specific project by IDcreate_project- Create a new projectupdate_project- Update an existing project
get_tasks- Get tasks list with filters (columnId, assignedTo, title). Note: projectId filter is NOT supported by YouGile API!get_user_tasks- Get ALL tasks assigned to a user (recommended for complete task list)get_task- Get a specific task by ID (supports both UUID and task code like "SAI-515")create_task- Create a new taskupdate_task- Update an existing task (supports completed, archived flags)
get_boards- Get all boards in the companyget_board- Get a specific board by IDcreate_board- Create a new boardupdate_board- Update an existing board
get_columns- Get all columns in a boardget_column- Get a specific column by IDcreate_column- Create a new columnupdate_column- Update an existing column
get_task_chat- Get chat messages/comments for a specific tasksend_task_message- Send a message/comment to a specific task's chatget_task_messages- Get messages/comments for a specific task (alternative method)
You can add Yougile to Claude Desktop by updating your MCP configuration file:
{
"mcpServers": {
"yougile-mcp": {
"command": "node",
"args": [
"path/to/yougile.js"
],
"env": {
"YOUGILE_API_KEY": "${env.YOUGILE_API_KEY}"
}
}
}
}To run the server directly:
npm run serveYouGile CLI allows you to interact with YouGile from the command line.
# Clone and install
git clone <repo-url>
cd yougile-mcp
npm install
npm run build
npm link
# Or run directly
YOUGILE_API_KEY=your_key node build/cli.js --helpCreate a .env file in the project root:
YOUGILE_API_KEY=your_api_key_here
YOUGILE_USER_ID=your_user_id_here
# or
YOUGILE_USER_EMAIL=your_email@example.com
Or set the environment variable:
export YOUGILE_API_KEY=your_api_key_here# Projects
yougile projects list # List all projects
yougile projects get <id> # Get project by ID
yougile projects create --title "..." # Create a new project
# Tasks
yougile tasks list # List tasks
yougile tasks list --assignedTo <userId> # Filter by user
yougile tasks list --columnId <id> # Filter by column
yougile tasks list --title "..." # Filter by title
yougile tasks my --userId <userId> # List active tasks for a specific user
yougile tasks my --email "..." # Resolve user by email, then list tasks
yougile tasks get <id> # Get task by ID or code (e.g., SAI-515)
yougile tasks create --title "..." --columnId <id>
yougile tasks update <id> --title "..." --completed
yougile tasks complete <id> # Mark task as completed
# Users
yougile users list # List all users
yougile users list --email "..." # Filter by email
# Boards
yougile boards list # List all boards
yougile boards list --projectId <id> # Filter by project
yougile boards get <id> # Get board by ID
# Columns
yougile columns list <boardId> # List columns in a board
# Chat
yougile chat get <taskId> # Get task chat messages
yougile chat send <taskId> "message" # Send message to task chat# List all projects
yougile projects list
# Get a specific task by code
yougile tasks get SAI-515
# Create a new task
yougile tasks create --title "New feature" --columnId "abc-123" --description "Task description"
# Update task title and mark as completed
yougile tasks update SAI-515 --title "Updated title" --completed true
# List tasks assigned to a configured user
yougile tasks my --email "user@example.com"
# Send a message to task chat
yougile chat send SAI-515 "Comment from CLI"To build the TypeScript code:
npm run buildTo run in development mode with auto-rebuild:
npm run devThis MCP server implements ~30% of the YouGile API v2.0 endpoints.
projectIdfilter is NOT supported by YouGile API forget_tasks! UsecolumnIdorassignedToinstead.assignedTofilter works correctly for all projects when querying tasks.- Task codes like "SAI-515" work in
get_task- the API accepts both UUID and task codes. - Use
get_user_tasksfor a complete list of user's tasks across all projects.
get_users- Get all usersget_user- Get user by IDcreate_user- Invite user to companyupdate_user- Update userdelete_user- Remove user from company
get_projects- Get all projectsget_project- Get project by IDcreate_project- Create projectupdate_project- Update project
get_tasks- Get tasks with filters (columnId, assignedTo, title). Note: projectId NOT supported!get_user_tasks- Get ALL tasks assigned to a user (recommended for complete list)get_task- Get task by ID (supports UUID and task codes like "SAI-515")create_task- Create taskupdate_task- Update task (supports completed, archived flags)
GET /api-v2/boards- Get all boardsGET /api-v2/boards/{id}- Get board by IDPOST /api-v2/boards- Create boardPUT /api-v2/boards/{id}- Update board
GET /api-v2/columns- Get all columnsGET /api-v2/columns/{id}- Get column by IDPOST /api-v2/columns- Create columnPUT /api-v2/columns/{id}- Update column
GET /api-v2/chats/{chatId}/messages- Get task chat messagesPOST /api-v2/chats/{chatId}/messages- Send message to task chatGET /api-v2/chats/{chatId}/messages- Get task messages (alternative)
- Companies list, API keys management (create, list, delete)
- Get company details, update company
- Full CRUD operations for departments
- Full CRUD operations for project roles
- String stickers (with states) - full CRUD
- Sprint stickers - full CRUD
- Sticker states management
- Full CRUD operations for group chats
- Create, list, update webhooks
- File upload functionality
- Contact persons management
- External ID lookup
- Task chat subscribers management
- Delete operations for tasks, boards, columns
For more details about the Yougile API endpoints, see the OpenAPI specification at docs/open-api-v2.json.
This project is licensed under the MIT License.