Skip to main content
Glama

mcp-server-asana

by roychri

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

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

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

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

  • ASANA_ACCESS_TOKEN : (обязательно) Ваш токен доступа Asana
  • READ_ONLY_MODE : (Необязательно) Установите значение «true», чтобы отключить все операции записи. В этом режиме:
    • Инструменты, изменяющие данные Asana (создание, обновление, удаление), будут отключены.
    • Запрос create-task будет отключен.
    • Будут доступны только операции чтения. Это полезно для тестирования или когда вы хотите убедиться, что в ваше рабочее пространство Asana нельзя внести никаких изменений.

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

В инструменте ИИ по вашему выбору (например, 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 в репозитории проекта.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Выполнять операции Asana из клиента MCP, например, приложения Claude Desktop от Anthropic, и многое другое.

  1. Переменные среды
    1. Использование
      1. Инструменты
        1. Подсказки
          1. Ресурсы
            1. Настраивать
              1. Для Клода Десктопа:
              2. Для Клода Кода:
            2. Поиск неисправностей
              1. Внося вклад
                1. Протестируйте локально с помощью MCP Inspector
              2. Лицензия

                Related MCP Servers

                • -
                  security
                  A
                  license
                  -
                  quality
                  A simple MCP server for interacting with OpenAI assistants. This server allows other tools (like Claude Desktop) to create and interact with OpenAI assistants through the Model Context Protocol.
                  Last updated -
                  26
                  Python
                  MIT License
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  A tool that helps manage and synchronize MCP server configurations across different AI assistant clients (Cline, Roo Code, WindSurf, Claude), automating the process of retrieving, listing, adding, and removing server configurations from client configuration files.
                  Last updated -
                  6
                  6
                  1
                  JavaScript
                  MIT License
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that enables Claude to interact with Port.io's AI agent, allowing users to trigger the agent with prompts and receive structured responses including status, output, and action items.
                  Last updated -
                  6
                  Python
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  This server implementation allows AI assistants to interact with Asana's API, enabling users to manage tasks, projects, workspaces, and comments through natural language requests.
                  Last updated -
                  342
                  TypeScript
                  MIT License

                View all related MCP servers

                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