Skip to main content
Glama

yougile-mcp

CI npm version license: MIT Node

A production-grade Model Context Protocol server for YouGile — lets AI agents (Claude Desktop, Cursor, and any MCP client) read and manage your YouGile projects, boards, tasks, employees and more.

Unlike a thin API wrapper, this server ships full CRUD coverage, MCP resources and ready-made prompts, with retries, strict input validation, tests and CI.

Русская версия ниже ↓


Why this server

Typical YouGile MCP wrapper

yougile-mcp

API coverage

partial (a few resources)

all core resources (projects → webhooks)

MCP primitives

tools only

tools + resources + prompts

Input validation

minimal

Zod schemas on every tool

Reliability

single attempt

retry + backoff, 429/Retry-After aware

Tests / CI

none

unit + integration, GitHub Actions

Transports

stdio

stdio + Streamable HTTP

Related MCP server: YouTrack MCP Server

Capabilities

Tools (44) — full list / get / create / update (soft-delete via update) for: projects, boards, columns, tasks, users, departments, group_chats, string_stickers, sprint_stickers, webhooks — plus task chat (yougile_chat_list_messages, yougile_chat_send_message) and company (yougile_company_get, yougile_company_update).

Resources — yougile://projects, yougile://users, and the template yougile://board/{boardId} (a board with its columns).

Prompts — triage_board, create_task_from_note, standup_report, find_stale_tasks.

See docs/TOOLS.md for the full reference.

Quick start

You need a YouGile API key: YouGile → Settings → API, or via POST https://yougile.com/api-v2/auth/keys.

# Run directly with npx
YOUGILE_API_KEY=your-key npx yougile-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "yougile": {
      "command": "npx",
      "args": ["-y", "yougile-mcp"],
      "env": { "YOUGILE_API_KEY": "your-key" }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "yougile": {
      "command": "npx",
      "args": ["-y", "yougile-mcp"],
      "env": { "YOUGILE_API_KEY": "your-key" }
    }
  }
}

Configuration

All configuration is via environment variables (see .env.example):

Variable

Required

Default

Description

YOUGILE_API_KEY

✅

—

YouGile API bearer token

YOUGILE_BASE_URL

https://yougile.com/api-v2

API base URL (override for self-hosted)

YOUGILE_TIMEOUT_MS

30000

Per-request timeout

YOUGILE_MAX_RETRIES

3

Retries for 429/5xx/network

YOUGILE_MCP_TRANSPORT

stdio

stdio or http

YOUGILE_MCP_HTTP_PORT

3000

Port when transport=http

HTTP transport

YOUGILE_API_KEY=your-key YOUGILE_MCP_TRANSPORT=http YOUGILE_MCP_HTTP_PORT=3000 npx yougile-mcp
# Stateless Streamable HTTP endpoint at POST http://localhost:3000/mcp

Development

npm install
npm run build        # bundle to dist/ (tsup)
npm run typecheck    # tsc --noEmit (strict)
npm run lint         # eslint (type-checked)
npm test             # vitest (unit + integration)

Architecture

src/
  config.ts          # env config, Zod-validated
  client/            # typed YouGile API client
    http.ts          #   fetch + timeout + retry/backoff
    yougile.ts       #   resource namespaces (client.tasks.list(...))
    types.ts errors.ts
  tools/             # MCP tools (CRUD via a shared helper) + chat/company
  resources/         # MCP resources (projects, users, board template)
  prompts/           # MCP prompts (triage, standup, ...)
  transport/http.ts  # stateless Streamable HTTP
  server.ts          # factory: wires client + tools/resources/prompts
  index.ts           # bin entrypoint (stdio | http)

License

MIT © Ivan Tereshin


Русская версия

Production-grade сервер Model Context Protocol для YouGile. Позволяет AI-агентам (Claude Desktop, Cursor и любым MCP-клиентам) читать и управлять проектами, досками, задачами и сотрудниками в YouGile.

В отличие от тонкой обёртки над API, этот сервер даёт полное покрытие CRUD, MCP-ресурсы и готовые prompt-сценарии, с ретраями, строгой валидацией входных данных, тестами и CI.

Возможности

Инструменты (44) — полный list / get / create / update (мягкое удаление через update) для ресурсов: projects, boards, columns, tasks, users, departments, group_chats, string_stickers, sprint_stickers, webhooks. Плюс чат задачи (yougile_chat_list_messages, yougile_chat_send_message) и компания (yougile_company_get, yougile_company_update).

Ресурсы — yougile://projects, yougile://users и шаблон yougile://board/{boardId} (доска со своими колонками).

Prompt-сценарии — triage_board (триаж доски), create_task_from_note (задача из заметки), standup_report (отчёт-летучка), find_stale_tasks (поиск «застрявших» задач).

Быстрый старт

Нужен API-ключ YouGile: Настройки → API (или POST .../api-v2/auth/keys).

YOUGILE_API_KEY=ваш-ключ npx yougile-mcp

Конфигурация Claude Desktop / Cursor — см. блоки выше; все переменные окружения описаны в .env.example и таблице Configuration.

Лицензия

MIT © Иван Терешин

Available Tools

44 tools
yougile_boards_createCreate boardsC

Create a board inside a project.

Inputs: title (required), projectId (required), stickers.

yougile_boards_getGet boardsB

Get a single board by id.

Inputs: id (required).

yougile_boards_listList boardsA

List boards (optionally filtered by projectId).

Inputs: limit, offset, projectId.

yougile_boards_updateUpdate boardsA

Update a board (rename, move, toggle stickers, soft-delete).

Inputs: id (required), title, projectId, stickers, +1 more.

yougile_chat_list_messagesList task chat messagesA

Read messages from a task's chat. The chat id equals the task id (use the task's id).

Inputs: chatId (required), limit, offset.

yougile_chat_send_messageSend task chat messageB

Post a message into a task's chat (chat id = task id).

Inputs: chatId (required), text (required), label.

yougile_columns_createCreate columnsB

Create a column on a board.

Inputs: title (required), boardId (required), color.

yougile_columns_getGet columnsB

Get a single column by id.

Inputs: id (required).

yougile_columns_listList columnsA

List columns (optionally filtered by boardId).

Inputs: limit, offset, boardId.

yougile_columns_updateUpdate columnsB

Update a column (rename, recolor, move, soft-delete).

Inputs: id (required), title, boardId, color, +1 more.

yougile_company_getGet companyA

Get company profile/settings by id. The company id is the one the API key belongs to.

Inputs: companyId (required).

yougile_company_updateUpdate companyB

Update company profile (e.g. rename).

Inputs: companyId (required), name.

yougile_departments_createCreate departmentsC

Create a department.

Inputs: title (required), parentId, users.

yougile_departments_getGet departmentsA

Get a single department by id.

Inputs: id (required).

yougile_departments_listList departmentsC

List departments.

Inputs: limit, offset.

yougile_departments_updateUpdate departmentsB

Update a department (rename, reparent, members, soft-delete).

Inputs: id (required), title, parentId, users, +1 more.

yougile_group_chats_createCreate group_chatsC

Create a group chat.

Inputs: title (required), users.

yougile_group_chats_getGet group_chatsB

Get a single group chat by id.

Inputs: id (required).

yougile_group_chats_listList group_chatsC

List group chats.

Inputs: limit, offset.

yougile_group_chats_updateUpdate group_chatsA

Update a group chat (rename, members, soft-delete).

Inputs: id (required), title, users, deleted.

yougile_projects_createCreate projectsC

Create a new project.

Inputs: title (required), users.

yougile_projects_getGet projectsA

Get a single project by id.

Inputs: id (required).

yougile_projects_listList projectsB

List projects in the company (optionally filtered by title).

Inputs: limit, offset, title.

yougile_projects_updateUpdate projectsB

Update a project (rename, change members, or soft-delete).

Inputs: id (required), title, users, deleted.

yougile_sprint_stickers_createCreate sprint_stickersC

Create a sprint sticker.

Inputs: name (required), states.

yougile_sprint_stickers_getGet sprint_stickersB

Get a single sprint sticker by id.

Inputs: id (required).

yougile_sprint_stickers_listList sprint_stickersC

List sprint stickers.

Inputs: limit, offset.

yougile_sprint_stickers_updateUpdate sprint_stickersB

Update a sprint sticker (rename, edit states, soft-delete).

Inputs: id (required), name, states, deleted.

yougile_string_stickers_createCreate string_stickersB

Create a custom text sticker with states.

Inputs: name (required), icon, states.

yougile_string_stickers_getGet string_stickersB

Get a single string sticker by id.

Inputs: id (required).

yougile_string_stickers_listList string_stickersB

List custom text stickers (e.g. "Priority", "Status").

Inputs: limit, offset.

yougile_string_stickers_updateUpdate string_stickersC

Update a string sticker (rename, edit states, soft-delete).

Inputs: id (required), name, icon, states, +1 more.

yougile_tasks_createCreate tasksC

Create a task in a column.

Inputs: title (required), columnId, description, assigned, +3 more.

yougile_tasks_getGet tasksB

Get a single task by id.

Inputs: id (required).

yougile_tasks_listList tasksB

List tasks. Filter by columnId (recommended) and/or title.

Inputs: limit, offset, columnId, title, +1 more.

yougile_tasks_updateUpdate tasksC

Update a task: edit, move (columnId), complete, archive, or soft-delete.

Inputs: id (required), title, columnId, description, +6 more.

yougile_users_createCreate usersB

Invite a new employee by email.

Inputs: email (required), isAdmin.

yougile_users_getGet usersB

Get a single employee by id.

Inputs: id (required).

yougile_users_listList usersB

List company employees (optionally filtered by email).

Inputs: limit, offset, email.

yougile_users_updateUpdate usersA

Update an employee (grant/revoke admin) or remove them.

Inputs: id (required), isAdmin, deleted.

yougile_webhooks_createCreate webhooksB

Subscribe a webhook to YouGile events.

Inputs: url (required), event (required).

yougile_webhooks_getGet webhooksB

Get a single webhook by id.

Inputs: id (required).

yougile_webhooks_listList webhooksC

List webhook subscriptions.

Inputs: limit, offset.

yougile_webhooks_updateUpdate webhooksC

Update or remove a webhook subscription.

Inputs: id (required), url, event, deleted.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 44 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (e.g., boards, columns, tasks, users), with clear CRUD operations per resource. No two tools have overlapping purposes.

    Naming Consistency5/5

    All tools follow a consistent 'yougile_<resource>_<action>' pattern (e.g., yougile_boards_create, yougile_boards_get). The action verbs are uniform (create, get, list, update) across all resources.

    Tool Count4/5

    44 tools is high but justified by the breadth of the product management domain, covering multiple entity types (boards, columns, tasks, projects, users, chat, stickers, webhooks). Each entity gets full CRUD, which is appropriate for a comprehensive API.

    Completeness4/5

    The tool set covers major CRUD operations for all key entities (boards, columns, tasks, projects, users, etc.) and includes additional features like chat and webhooks. Minor gaps like task attachments or time tracking are absent, but the core workflow is well-supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides AI assistants with structured access to kanban board functionality for managing tasks, columns, labels, and sprints.
      12 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive Model Context Protocol server that provides AI agents with 44 tools to manage JetBrains YouTrack issues, sprints, and projects via the REST API. It supports full YouTrack query language and works with both Cloud and Server instances for complete project management integration.
      315 npm
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for YouTrack integration, providing a standardized interface for LLMs to interact with YouTrack's issue tracking, agile management, and knowledge base features.
      12
      29 npm
      MIT