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.
Integrations
Provides comprehensive access to Asana's task management API, enabling users to list workspaces, search and manage projects, create/update tasks, work with task dependencies, manage subtasks, add comments, organize sections, handle custom fields, and retrieve project hierarchies.
Asana용 MCP 서버
Asana의 이 모델 컨텍스트 프로토콜 서버 구현을 통해 Anthropic의 Claude Desktop Application과 같은 MCP 클라이언트에서 Asana API와 통신할 수 있습니다.
MCP에 대한 자세한 내용은 여기에서 확인하세요.
- https://www.anthropic.com/news/model-context-protocol
- https://modelcontextprotocol.io/introduction
- https://github.com/modelcontextprotocol
용법
원하시는 AI 도구(예: Claude Desktop)에서 아사나 관련 작업, 프로젝트, 작업 공간 및/또는 댓글에 대해 질문해 보세요. "아사나"라는 단어를 언급하면 LLM 담당자가 적합한 도구를 선택할 가능성이 높아집니다.
예:
스프린트 30 프로젝트에서 완료되지 않은 아사나 작업이 몇 개나 있나요?
또 다른 예:
사용자 정의 필드 작업
사용자 정의 필드로 작업을 업데이트하거나 생성할 때 다음 형식을 사용하세요.
지엑스피1
값 형식은 필드 유형에 따라 다릅니다.
- 열거형 필드 : 옵션의
enum_option.gid
를 사용합니다(표시 이름이 아님) - 텍스트 필드 : 문자열 사용
- 숫자 필드 : 숫자를 사용하세요
- 날짜 필드 : YYYY-MM-DD 형식의 문자열을 사용하세요
- 다중 열거형 필드 : 열거형 옵션 GID 배열 사용
사용자 정의 필드 GID 찾기
사용자 정의 필드의 GID와 열거형 옵션을 찾으려면:
opt_fields
매개변수를 설정하여asana_get_task
사용하여 사용자 정의 필드를 포함합니다.Copy- 응답에서
custom_fields
배열을 찾으세요. 각 사용자 지정 필드에는 다음이 포함됩니다.gid
: 사용자 정의 필드의 고유 식별자name
: 사용자 정의 필드의 표시 이름resource_subtype
: 사용자 정의 필드의 유형(텍스트, 숫자, 열거형 등)- 열거형 필드의 경우
enum_options
배열을 검사하여 각 옵션의 GID를 찾습니다.
예: 열거형 사용자 정의 필드 업데이트
도구
asana_list_workspaces
- Asana에서 사용 가능한 모든 작업 공간 나열
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 공간 목록
- 참고: DEFAULT_WORKSPACE_ID가 설정된 경우 모든 작업 공간을 가져오는 대신 해당 작업 공간만 반환합니다.
asana_search_projects
- 이름 패턴 매칭을 사용하여 Asana에서 프로젝트 검색
- 필수 입력:
- name_pattern(문자열): 프로젝트 이름과 일치하는 정규 표현식 패턴
- 선택 입력:
- 작업 공간(문자열): 검색할 작업 공간(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- 팀(문자열): 프로젝트를 필터링할 팀
- 보관됨(부울): 보관된 프로젝트만 반환합니다(기본값: false)
- limit (숫자): 페이지당 결과(1-100)
- offset(문자열): 페이지 번호 오프셋 토큰
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 일치하는 프로젝트 목록
- 참고: DEFAULT_WORKSPACE_ID가 설정되지 않은 경우 작업 공간이나 팀을 지정해야 합니다.
asana_search_tasks
- 고급 필터링 옵션을 사용하여 작업 공간에서 작업 검색
- 필수 입력:
- 작업 공간(문자열): 검색할 작업 공간(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- 선택 입력:
- text(문자열): 작업 이름과 설명에서 검색할 텍스트
- resource_subtype(문자열): 작업 하위 유형(예: 마일스톤)으로 필터링
- 완료(부울): 완료된 작업에 대한 필터링
- is_subtask(부울): 하위 작업에 대한 필터
- has_attachment(부울): 첨부 파일이 있는 작업을 필터링합니다.
- is_blocked(부울): 종속성이 완료되지 않은 작업을 필터링합니다.
- is_blocking(부울): 종속 항목이 있는 완료되지 않은 작업을 필터링합니다.
- 담당자, 프로젝트, 섹션, 태그, 팀 및 기타 여러 고급 필터
- sort_by(문자열): due_date, created_at, finished_at, likes, modified_at(기본값: modified_at) 순으로 정렬
- sort_ascending(boolean): 오름차순으로 정렬합니다(기본값: false)
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- custom_fields(객체): 사용자 정의 필드 필터를 포함하는 객체
- 반환: 일치하는 작업 목록
asana_get_task
- 특정 작업에 대한 자세한 정보를 얻으세요
- 필수 입력:
- task_id(문자열): 검색할 작업 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 자세한 작업 정보
asana_create_task
- 프로젝트에서 새 작업 만들기
- 필수 입력:
- project_id(문자열): 작업을 생성할 프로젝트
- name(문자열): 작업의 이름
- 선택 입력:
- notes(문자열): 작업에 대한 설명
- html_notes(문자열): 작업에 대한 HTML 형식의 설명
- due_on(문자열): YYYY-MM-DD 형식의 마감일
- 담당자(문자열): 담당자(나 또는 사용자 ID일 수 있음)
- 팔로워(문자열 배열): 팔로워로 추가할 사용자 ID 배열
- parent(문자열): 이 작업을 설정할 부모 작업 ID
- 프로젝트(문자열 배열): 이 작업을 추가할 프로젝트 ID 배열
- resource_subtype(문자열): 작업 유형(기본 작업 또는 마일스톤)
- custom_fields(객체): 사용자 정의 필드 GID 문자열을 해당 값에 매핑하는 객체
- 반환: 생성된 작업 정보
asana_get_task_stories
- 특정 작업에 대한 의견과 스토리를 받으세요
- 필수 입력:
- task_id(문자열): 스토리를 가져올 작업 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 스토리/코멘트 목록
asana_update_task
- 기존 작업 세부 정보 업데이트
- 필수 입력:
- task_id(문자열): 업데이트할 작업 ID
- 선택 입력:
- name(문자열): 작업의 새 이름
- notes(문자열): 작업에 대한 새로운 설명
- due_on(문자열): YYYY-MM-DD 형식의 새로운 마감일
- 담당자(문자열): 새로운 담당자(나 또는 사용자 ID일 수 있음)
- 완료(부울): 작업을 완료로 표시하거나 표시하지 않음
- resource_subtype(문자열): 작업 유형(기본 작업 또는 마일스톤)
- custom_fields(객체): 사용자 정의 필드 GID 문자열을 해당 값에 매핑하는 객체
- 반환: 업데이트된 작업 정보
asana_get_project
- 특정 프로젝트에 대한 자세한 정보를 얻으세요
- 필수 입력:
- project_id(문자열): 검색할 프로젝트 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 자세한 프로젝트 정보
asana_get_project_task_counts
- 프로젝트의 작업 수를 가져옵니다
- 필수 입력:
- project_id(문자열): 작업 수를 가져올 프로젝트 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 개수 정보
asana_get_project_sections
- 프로젝트의 섹션 가져오기
- 필수 입력:
- project_id(문자열): 섹션을 가져올 프로젝트 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 프로젝트 섹션 목록
asana_create_task_story
- 작업에 대한 댓글이나 스토리를 작성하세요
- 필수 입력:
- task_id(문자열): 스토리를 추가할 작업 ID
- text(문자열): 스토리/댓글의 텍스트 내용
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 생성된 스토리 정보
asana_add_task_dependencies
- 작업에 대한 종속성 설정
- 필수 입력:
- task_id(문자열): 종속성을 추가할 작업 ID
- 종속성(문자열 배열): 이 작업이 종속된 작업 ID 배열
- 반환: 업데이트된 작업 종속성
asana_add_task_dependents
- 작업에 대한 종속 항목 설정(이 작업에 종속된 작업)
- 필수 입력:
- task_id(문자열): 종속 항목을 추가할 작업 ID
- 종속 항목(문자열 배열): 이 작업에 종속된 작업 ID 배열
- 반환: 업데이트된 작업 종속성
asana_create_subtask
- 기존 작업에 대한 새 하위 작업 만들기
- 필수 입력:
- parent_task_id(문자열): 하위 작업을 생성할 상위 작업 ID
- name(문자열): 하위 작업의 이름
- 선택 입력:
- notes(문자열): 하위 작업에 대한 설명
- due_on(문자열): YYYY-MM-DD 형식의 마감일
- 담당자(문자열): 담당자(나 또는 사용자 ID일 수 있음)
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 하위 작업 정보가 생성되었습니다.
asana_add_followers_to_task
- 작업에 팔로워 추가
- 필수 입력:
- task_id(문자열): 팔로워를 추가할 작업 ID
- 팔로워(문자열 배열): 작업에 팔로워로 추가할 사용자 ID 배열
- 반환: 업데이트된 작업 정보
asana_get_multiple_tasks_by_gid
- GID를 통해 여러 작업에 대한 자세한 정보를 얻으세요(최대 25개 작업)
- 필수 입력:
- task_ids(문자열 배열 또는 쉼표로 구분된 문자열): 검색할 작업 GID(최대 25개)
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 자세한 작업 정보 목록
asana_get_project_status
- 프로젝트 상태 업데이트 받기
- 필수 입력:
- project_status_gid(문자열): 검색할 프로젝트 상태 GID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 프로젝트 상태 정보
asana_get_project_statuses
- 프로젝트의 모든 상태 업데이트 받기
- 필수 입력:
- project_gid(문자열): 상태를 가져올 프로젝트 GID
- 선택 입력:
- limit (숫자): 페이지당 결과(1-100)
- offset(문자열): 페이지 번호 오프셋 토큰
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 프로젝트 상태 업데이트 목록
asana_create_project_status
- 프로젝트에 대한 새로운 상태 업데이트를 만듭니다.
- 필수 입력:
- project_gid(문자열): 상태를 생성할 프로젝트 GID
- text(문자열): 상태 업데이트의 텍스트 내용
- 선택 입력:
- color(문자열): 상태의 색상(녹색, 노란색, 빨간색)
- title(문자열): 상태 업데이트의 제목
- html_text(문자열): 상태 업데이트를 위한 HTML 형식 텍스트
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 생성된 프로젝트 상태 정보
asana_delete_project_status
- 프로젝트 상태 업데이트 삭제
- 필수 입력:
- project_status_gid(문자열): 삭제할 프로젝트 상태 GID
- 반환: 삭제 확인
asana_set_parent_for_task
- 작업의 상위 항목을 설정하고 해당 상위 항목의 다른 하위 항목 내에 하위 작업을 배치합니다.
- 필수 입력:
- task_id(문자열): 작업할 작업 ID
- 부모(문자열): 작업의 새 부모 또는 부모가 없는 경우 null
- 선택 입력:
- insert_after(문자열): 작업을 삽입할 부모의 하위 작업 또는 목록의 시작 부분에 삽입할 경우 null
- insert_before(문자열): 작업을 삽입할 부모의 하위 작업 또는 목록 끝에 삽입할 경우 null
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 업데이트된 작업 정보
asana_get_tasks_for_tag
- 특정 태그에 대한 작업 가져오기
- 필수 입력:
- tag_gid(문자열): 작업을 검색할 태그 GID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- opt_pretty(부울): '예쁜' 형식으로 응답을 제공합니다.
- limit(정수): 페이지당 반환할 개체 수입니다. 값은 1에서 100 사이여야 합니다.
- offset(문자열): API에서 반환된 다음 페이지에 대한 오프셋입니다.
- 반환: 지정된 태그에 대한 작업 목록
asana_get_tags_for_workspace
- 작업 공간에서 태그 가져오기
- 필수 입력:
- workspace_gid(문자열): 작업 공간 또는 조직의 전역 고유 식별자(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- 선택 입력:
- limit(정수): 페이지당 결과 수. 페이지당 반환할 객체 수. 값은 1에서 100 사이여야 합니다.
- offset(문자열): 오프셋 토큰. API에서 반환된 다음 페이지까지의 오프셋입니다.
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 공간의 태그 목록
asana_create_section_for_project
- 프로젝트에 새 섹션 만들기
- 필수 입력:
- project_id(문자열): 섹션을 생성할 프로젝트 ID
- name(문자열): 생성할 섹션의 이름
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 생성된 섹션 정보
asana_add_task_to_section
- 프로젝트의 특정 섹션에 작업 추가
- 필수 입력:
- section_id(문자열): 작업을 추가할 섹션 ID
- task_id(문자열): 섹션에 추가할 작업 ID
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 결과
asana_create_project
- 작업 공간에서 새 프로젝트 만들기
- 필수 입력:
- workspace_id(문자열): 프로젝트를 생성할 작업 공간 ID(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- name(문자열): 생성할 프로젝트의 이름
- team_id(문자열): 조직 작업 공간에 필수 - 프로젝트를 공유할 팀 GID
- 선택 입력:
- public(부울): 프로젝트가 조직에 공개되는지 여부(기본값: false)
- 보관됨(부울): 프로젝트가 보관되었는지 여부(기본값: false)
- color (문자열): 프로젝트의 색상(연한 녹색, 연한 주황색, 연한 파란색 등)
- 레이아웃(문자열): 프로젝트의 레이아웃(보드, 목록, 타임라인 또는 달력)
- default_view(문자열): 프로젝트의 기본 보기(목록, 보드, 캘린더, 타임라인 또는 간트)
- due_on(문자열): 이 프로젝트의 마감일(YYYY-MM-DD 형식)
- start_on(문자열): 이 프로젝트의 작업이 시작되는 날짜(YYYY-MM-DD 형식)
- notes(문자열): 프로젝트와 관련된 자유형 텍스트 정보
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 생성된 프로젝트 정보
asana_get_teams_for_user
- 사용자가 액세스할 수 있는 팀을 가져옵니다.
- 필수 입력:
- user_gid(문자열): 팀을 가져올 사용자 GID입니다. 현재 사용자의 팀을 가져오려면 'me'를 사용하세요.
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 사용자가 액세스할 수 있는 팀 목록
asana_get_teams_for_workspace
- 작업 공간에 팀 구성
- 필수 입력:
- workspace_gid(문자열): 팀을 가져올 작업 공간 GID(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- 선택 입력:
- opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
- 반환: 작업 공간의 팀 목록
asana_list_workspace_users
- 작업 공간에 사용자 가져오기
- 필수 입력:
- workspace_id(문자열): 사용자를 가져올 작업 공간 ID(DEFAULT_WORKSPACE_ID가 설정된 경우 선택 사항)
- 선택 입력:
- limit(정수): 페이지당 결과(1-100)
- offset(문자열): 페이지 번호 오프셋 토큰
- opt_fields(문자열): 포함할 선택 필드의 쉼표로 구분된 목록(기본값은 "name,email")
- auto_paginate(부울): 모든 페이지를 자동으로 가져올지 여부
- max_pages(정수): auto_paginate가 true일 때 가져올 최대 페이지 수
- 반환: 작업 공간의 사용자 목록
asana_get_project_hierarchy
- 섹션, 작업 및 하위 작업을 포함한 Asana 프로젝트의 전체 계층 구조를 가져옵니다.
- 필수 입력:
- project_id(문자열): 계층 구조를 가져올 프로젝트 ID
- 선택 입력:
- include_completed_tasks(부울): 완료된 작업 포함(기본값: false)
- include_subtasks(부울): 각 작업에 대한 하위 작업을 포함합니다(기본값: true)
- include_completed_subtasks(부울): 완료된 하위 작업 포함(기본값: include_completed_tasks 뒤따름)
- max_subtask_depth(숫자): 검색할 하위 작업의 최대 깊이(기본값: 1)
- opt_fields_tasks(문자열): 작업에 대한 선택적 필드
- opt_fields_subtasks(문자열): 하위 작업에 대한 선택 필드
- opt_fields_sections(문자열): 섹션에 대한 선택 필드
- opt_fields_project(문자열): 프로젝트에 대한 선택 필드
- limit(숫자): 페이지당 최대 결과 수(1-100)
- 오프셋(문자열): 이전 응답의 페이지 매김 토큰
- auto_paginate(부울): 모든 페이지를 자동으로 가져올지 여부
- max_pages(숫자): auto_paginate가 true일 때 가져올 최대 페이지 수
- 반환: 통계를 사용한 계층적 프로젝트 구조
프롬프트
task-summary
- 메모, 사용자 정의 필드 및 주석을 기반으로 작업에 대한 요약 및 상태 업데이트를 받으세요.
- 필수 입력:
- task_id(문자열): 요약을 가져올 작업 ID
- 반환: 작업 요약 생성을 위한 지침이 포함된 자세한 프롬프트
자원
없음
설정
- Asana 계정 만들기 :
- 아사나를 방문하세요.
- "가입"을 클릭하세요.
- Asana 액세스 토큰 검색 :
- Asana 개발자 콘솔에서 개인 액세스 토큰을 생성할 수 있습니다.
- 자세한 내용은 여기에서 확인하세요: https://developers.asana.com/docs/personal-access-token
- 선택 사항: 기본 작업 공간 ID 가져오기 :
- 주로 하나의 작업 공간에서 작업하는 경우 기본 작업 공간 ID를 설정할 수 있습니다.
- Asana API를 사용하여 작업 공간을 나열하거나 Asana의 작업 공간으로 이동하여 URL에서 ID를 복사합니다.
- 기본 작업 공간 ID를 설정하면 각 API 호출에 대해 작업 공간을 지정할 필요가 없습니다.
- 기본 작업 공간이 없으면 서버는
asana_list_workspaces
호출하여 사용 가능한 작업 공간 목록을 가져옵니다.
- Claude Desktop 구성 :
claude_desktop_config.json
에 다음을 추가합니다.Copy
문제 해결
권한 오류가 발생하는 경우:
- 귀하가 보유한 Asana 플랜이 API 액세스를 허용하는지 확인하세요.
claude_desktop_config.json
에 액세스 토큰과 구성이 올바르게 설정되었는지 확인하세요.
기여하다
이 저장소를 복제하고 해킹을 시작하세요.
MCP 검사기를 사용하여 로컬로 테스트하세요
변경 사항을 테스트하려면 다음과 같이 MCP 검사기를 사용할 수 있습니다.
이렇게 하면 클라이언트는 포트 5173
에 노출되고 서버는 포트 3000
에 노출됩니다.
해당 포트가 이미 다른 곳에서 사용되고 있는 경우 다음을 사용할 수 있습니다.
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
This server cannot be installed
이 서버 구현을 통해 AI 어시스턴트는 Asana의 API와 상호 작용할 수 있으며, 사용자는 자연어 요청을 통해 작업, 프로젝트, 작업 공간 및 코멘트를 관리할 수 있습니다.