Skip to main content
Glama

MCP-сервер для Asana

npm-версия

Эта реализация сервера Model Context Protocol Asana позволяет вам взаимодействовать с API Asana из клиента MCP, например, с приложением Claude Desktop от Anthropic и многими другими.

Более подробная информация о MCP здесь:

Переменные среды

  • ASANA_ACCESS_TOKEN : (обязательно) Ваш токен доступа Asana

  • READ_ONLY_MODE : (Необязательно) Установите значение «true», чтобы отключить все операции записи. В этом режиме:

    • Инструменты, изменяющие данные Asana (создание, обновление, удаление), будут отключены.

    • Запрос create-task будет отключен.

    • Будут доступны только операции чтения. Это полезно для тестирования или когда вы хотите убедиться, что в ваше рабочее пространство Asana нельзя внести никаких изменений.

Related MCP server: A2A MCP Server

Использование

В инструменте ИИ по вашему выбору (например, Claude Desktop) спросите что-нибудь о задачах, проектах, рабочих пространствах и/или комментариях asana. Упоминание слова «asana» увеличит вероятность того, что LLM выберет правильный инструмент.

Пример:

Сколько незавершенных задач по асанам у нас в проекте «Спринт 30»?

Другой пример:

Пример рабочего стола Клода

Инструменты

  1. asana_list_workspaces

    • Список всех доступных рабочих пространств в Asana

    • Дополнительный ввод:

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возвращает: Список рабочих пространств

  2. asana_search_projects

    • Поиск проектов в Asana с использованием сопоставления шаблонов имен

    • Требуемые данные:

      • workspace (строка): рабочее пространство для поиска.

      • name_pattern (string): Шаблон регулярного выражения для сопоставления названий проектов

    • Дополнительный ввод:

      • archived (boolean): возвращать только архивированные проекты (по умолчанию: false)

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возвращает: Список соответствующих проектов

  3. asana_search_tasks

    • Поиск задач в рабочем пространстве с расширенными возможностями фильтрации

    • Требуемые данные:

      • workspace (строка): рабочее пространство для поиска.

    • Дополнительный ввод:

      • текст (строка): Текст для поиска в названиях и описаниях задач.

      • resource_subtype (строка): Фильтр по подтипу задачи (например, веха)

      • завершено (логическое значение): Фильтр для завершенных задач

      • is_subtask (boolean): Фильтр для подзадач

      • has_attachment (boolean): Фильтр для задач с вложениями

      • is_blocked (boolean): Фильтр для задач с неполными зависимостями

      • is_blocking (логическое значение): Фильтр для незавершенных задач с зависимостями

      • уполномоченный, проекты, разделы, теги, команды и многие другие расширенные фильтры

      • sort_by (строка): Сортировать по дате выполнения, создано_в, завершено_в, нравится, изменено_в (по умолчанию: изменено_в)

      • sort_ascending (boolean): сортировка по возрастанию (по умолчанию: false)

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

      • custom_fields (объект): Объект, содержащий фильтры настраиваемых полей

    • Возвращает: Список соответствующих задач

  4. asana_get_task

    • Получите подробную информацию о конкретной задаче

    • Требуемые данные:

      • task_id (строка): идентификатор задачи для извлечения

    • Дополнительный ввод:

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возвращает: Подробную информацию о задаче

  5. asana_create_task

    • Создать новую задачу в проекте

    • Требуемые данные:

      • project_id (string): Проект, в котором будет создана задача

      • имя (строка): Название задачи

    • Дополнительный ввод:

      • примечания (строка): Описание задачи

      • html_notes (строка): описание задачи в формате HTML

      • due_on (строка): дата выполнения в формате ГГГГ-ММ-ДД

      • получатель (строка): получатель (может быть «я» или идентификатор пользователя)

      • Подписчики (массив строк): Массив идентификаторов пользователей для добавления в качестве подписчиков.

      • parent (строка): идентификатор родительской задачи, под которой следует установить данную задачу.

      • проекты (массив строк): Массив идентификаторов проектов, в которые нужно добавить эту задачу

      • resource_subtype (string): Тип задачи (default_task или веха)

      • custom_fields (объект): Объект, сопоставляющий строки GID настраиваемых полей с их значениями

    • Возвращает: информацию о созданной задаче

  6. asana_get_task_stories

    • Получайте комментарии и истории по конкретной задаче

    • Требуемые данные:

      • task_id (строка): идентификатор задачи, для которой необходимо получить истории

    • Дополнительный ввод:

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возвращает: Список историй/комментариев к задачам

  7. asana_update_task

    • Обновить данные существующей задачи

    • Требуемые данные:

      • task_id (строка): идентификатор задачи для обновления.

    • Дополнительный ввод:

      • имя (строка): Новое имя для задачи

      • заметки (строка): Новое описание задачи

      • due_on (строка): Новая дата выполнения в формате ГГГГ-ММ-ДД

      • получатель (строка): Новый получатель (может быть «я» или идентификатор пользователя)

      • завершено (логическое значение): отметить задачу как завершенную или нет

      • resource_subtype (string): Тип задачи (default_task или веха)

      • custom_fields (объект): Объект, сопоставляющий строки GID настраиваемых полей с их значениями

    • Возврат: обновленная информация о задаче

  8. asana_get_project

    • Получите подробную информацию о конкретном проекте

    • Требуемые данные:

      • project_id (строка): идентификатор проекта для извлечения

    • Дополнительный ввод:

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возврат: Подробная информация о проекте

  9. asana_get_project_task_counts

    • Получить количество задач в проекте

    • Требуемые данные:

      • project_id (строка): идентификатор проекта, для которого необходимо получить количество задач.

    • Дополнительный ввод:

      • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • Возвращает: информацию о количестве задач

  10. asana_get_project_sections

  • Получить разделы в проекте

  • Требуемые данные:

    • project_id (строка): идентификатор проекта, для которого необходимо получить разделы

  • Дополнительный ввод:

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: Список разделов проекта

  1. asana_create_task_story

  • Создайте комментарий или историю по задаче

  • Требуемые данные:

    • task_id (строка): идентификатор задачи, в которую нужно добавить историю.

    • текст (строка): Текстовое содержание истории/комментария.

  • Дополнительный ввод:

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: Созданную информацию о сюжете

  1. asana_add_task_dependencies

  • Установить зависимости для задачи

  • Требуемые данные:

    • task_id (строка): идентификатор задачи, к которой нужно добавить зависимости.

    • зависимости (массив строк): Массив идентификаторов задач, от которых зависит эта задача

  • Возвращает: обновленные зависимости задач.

  1. asana_add_task_dependents

  • Установить зависимости для задачи (задачи, которые зависят от этой задачи)

  • Требуемые данные:

    • task_id (строка): идентификатор задачи, к которой нужно добавить иждивенцев.

    • dependents (массив строк): Массив идентификаторов задач, которые зависят от этой задачи.

  • Возвращает: обновленные зависимые задачи

  1. asana_create_subtask

  • Создать новую подзадачу для существующей задачи

  • Требуемые данные:

    • parent_task_id (строка): идентификатор родительской задачи для создания подзадачи

    • имя (строка): Имя подзадачи

  • Дополнительный ввод:

    • примечания (строка): Описание подзадачи

    • due_on (строка): дата выполнения в формате ГГГГ-ММ-ДД

    • получатель (строка): получатель (может быть «я» или идентификатор пользователя)

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: Созданную информацию о подзадаче

  1. asana_get_multiple_tasks_by_gid

  • Получите подробную информацию о нескольких задачах по их GID (максимум 25 задач)

  • Требуемые данные:

    • task_ids (массив строк или строка, разделенная запятыми): GID задач для извлечения (макс. 25)

  • Дополнительный ввод:

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: список подробной информации о задаче.

  1. asana_get_project_status

  • Получить обновление статуса проекта

  • Требуемые данные:

    • project_status_gid (строка): GID статуса проекта для извлечения

  • Дополнительный ввод:

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: информацию о статусе проекта

  1. asana_get_project_statuses

  • Получить все обновления статуса проекта

  • Требуемые данные:

    • project_gid (строка): GID проекта, для которого необходимо получить статусы

  • Дополнительный ввод:

    • ограничение (число): Результаты на страницу (1-100)

    • смещение (строка): токен смещения пагинации

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: Список обновлений статуса проекта

  1. asana_create_project_status

  • Создать новое обновление статуса для проекта

  • Требуемые данные:

    • project_gid (строка): GID проекта для создания статуса

    • текст (строка): Текстовое содержание обновления статуса.

  • Дополнительный ввод:

    • цвет (строка): Цвет статуса (зеленый, желтый, красный)

    • title (string): Заголовок обновления статуса.

    • html_text (строка): текст в формате HTML для обновления статуса

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: информацию о статусе созданного проекта

  1. asana_delete_project_status

  • Удалить обновление статуса проекта

  • Требуемые данные:

    • project_status_gid (строка): GID статуса проекта для удаления

  • Возврат: Подтверждение удаления

  1. asana_set_parent_for_task

  • Установите родительскую задачу и расположите подзадачу внутри других подзадач этой родительской задачи.

  • Требуемые данные:

    • task_id (строка): идентификатор задачи, над которой нужно работать.

    • данные (объект):

      • parent (строка): новый родитель задачи или null, если родитель отсутствует

  • Дополнительный ввод:

    • insert_after (string): Подзадача родителя для вставки задачи после нее или null для вставки в начало списка.

    • insert_before (string): Подзадача родителя для вставки задачи перед ней или null для вставки в конец списка.

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возврат: обновленная информация о задаче

  1. asana_get_tasks_for_tag

  • Получить задачи по определенному тегу

  • Требуемые данные:

    • tag_gid (строка): GID тега для извлечения задач

  • Дополнительный ввод:

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

    • opt_pretty (boolean): предоставляет ответ в «красивом» формате.

    • limit (integer): Количество объектов, возвращаемых на страницу. Значение должно быть от 1 до 100.

    • смещение (строка): смещение к следующей странице, возвращаемое API.

  • Возвращает: Список задач для указанного тега.

  1. asana_get_tags_for_workspace

  • Получить теги в рабочем пространстве

  • Требуемые данные:

    • workspace_gid (строка): Глобальный уникальный идентификатор рабочего пространства или организации.

  • Дополнительный ввод:

    • limit (integer): Результаты на страницу. Количество объектов, возвращаемых на страницу. Значение должно быть от 1 до 100.

    • offset (string): Токен смещения. Смещение к следующей странице, возвращаемое API.

    • opt_fields (строка): разделенный запятыми список необязательных полей для включения

  • Возвращает: Список тегов в рабочей области.

Подсказки

  1. task-summary

    • Получите сводку и обновление статуса задачи на основе ее заметок, пользовательских полей и комментариев.

    • Требуемые данные:

      • task_id (строка): идентификатор задачи, для которой необходимо получить сводку

    • Возвращает: Подробная подсказка с инструкциями по созданию сводки задачи.

  2. task-completeness

    • Проанализируйте, содержит ли описание задачи все необходимые детали для ее выполнения.

    • Требуемые данные:

      • task_id (строка): идентификатор задачи или URL для анализа.

    • Возвращает: Подробная подсказка с инструкциями по анализу выполнения задачи.

  3. create-task

    • Создайте новую задачу с указанными подробностями

    • Требуемые данные:

      • project_name (string): Имя проекта Asana, в котором должна быть создана задача.

      • title (string): Название задачи.

    • Дополнительный ввод:

      • заметки (строка): заметки или описание задачи

      • due_date (строка): дата выполнения задачи (формат ГГГГ-ММ-ДД)

    • Возвращает: Подробную подсказку с инструкциями по созданию комплексной задачи.

Ресурсы

  1. Рабочие пространства - asana://workspace/{workspace_gid}

    • Представление рабочих пространств Asana как ресурсов

    • Каждое рабочее пространство представлено как отдельный ресурс

    • Формат URI: asana://workspace/{workspace_gid}

    • Возвращает: объект JSON с подробностями рабочей области, включая:

      • name : Имя рабочей области (строка)

      • id глобальный идентификатор рабочей области (строка)

      • type : Тип ресурса (строка)

      • is_organization : Является ли рабочее пространство организацией (логическое значение)

      • email_domains : Список доменов электронной почты, связанных с рабочей областью (string[])

    • Тип MIME: application/json

  2. Проекты - asana://project/{project_gid}

    • Шаблон ресурса для получения сведений о проекте по GID

    • Формат URI: asana://project/{project_gid}

    • Возвращает: объект JSON с подробностями проекта, включая:

      • name : Имя проекта (строка)

      • id Глобальный идентификатор проекта (строка)

      • type : Тип ресурса (строка)

      • archived : архивирован ли проект (логическое значение)

      • public : Является ли проект публичным (логическое значение)

      • notes : Описание проекта/примечания (строка)

      • color : Цвет проекта (строка)

      • default_view : Тип представления по умолчанию (строка)

      • due_date , due_on , start_on : Информация о дате проекта (строка)

      • workspace : объект, содержащий информацию о рабочем пространстве

      • team : Объект, содержащий информацию о команде.

      • sections : Массив объектов разделов в проекте

      • custom_fields : Массив определений пользовательских полей для проекта

    • Тип MIME: application/json

Настраивать

  1. Создайте учетную запись Asana :

    • Посетите Асану .

    • Нажмите «Зарегистрироваться».

  2. Получите токен доступа Asana :

  3. Варианты установки :

Для Клода Десктопа:

Добавьте следующее в ваш claude_desktop_config.json :

{ "mcpServers": { "asana": { "command": "npx", "args": ["-y", "@roychri/mcp-server-asana"], "env": { "ASANA_ACCESS_TOKEN": "your-asana-access-token" } } } }

Для Клода Кода:

Для установки и настройки сервера MCP используйте следующую команду:

claude mcp add asana -e ASANA_ACCESS_TOKEN=<TOKEN> -- npx -y @roychri/mcp-server-asana

Замените <TOKEN> на ваш токен доступа Asana.

Если вы хотите установить бета-версию (еще не выпущенную), вы можете использовать:

  • @roychri/mcp-server-asana@beta

Текущую бета-версию (если таковая имеется) можно найти одним из следующих способов:

  1. https://www.npmjs.com/package/@roychri/mcp-server-asana?activeTab=versions

  2. npm dist-tag ls @roychri/mcp-server-asana

Поиск неисправностей

Если вы столкнулись с ошибками разрешений:

  1. Убедитесь, что ваш план Asana допускает доступ к API

  2. Убедитесь, что токен доступа и конфигурация правильно заданы в claude_desktop_config.json .

Внося вклад

Клонируйте этот репозиторий и начинайте взламывать.

Протестируйте локально с помощью MCP Inspector

Если вы хотите протестировать свои изменения, вы можете использовать MCP Inspector следующим образом:

npm run inspector

Это откроет клиенту доступ к порту 5173 , а серверу — к порту 3000 .

Если эти порты уже используются чем-то другим, вы можете использовать:

CLIENT_PORT=5009 SERVER_PORT=3009 npm run inspector

Лицензия

Этот сервер MCP лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT. Для получения более подробной информации см. файл LICENSE в репозитории проекта.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/roychri/mcp-server-asana'

If you have feedback or need assistance with the MCP directory API, please join our Discord server