Asana용 MCP 서버
Asana의 이 모델 컨텍스트 프로토콜 서버 구현을 통해 Anthropic의 Claude Desktop Application과 같은 MCP 클라이언트에서 Asana API와 통신할 수 있습니다.
MCP에 대한 자세한 내용은 여기에서 확인하세요.
용법
원하시는 AI 도구(예: Claude Desktop)에서 아사나 관련 작업, 프로젝트, 작업 공간 및/또는 댓글에 대해 질문해 보세요. "아사나"라는 단어를 언급하면 LLM 담당자가 적합한 도구를 선택할 가능성이 높아집니다.
예:
스프린트 30 프로젝트에서 완료되지 않은 아사나 작업이 몇 개나 있나요?
또 다른 예:

Related MCP server: A2A MCP Server
도구
asana_list_workspacesAsana에서 사용 가능한 모든 작업 공간 나열
선택 입력:
opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
반환: 작업 공간 목록
asana_search_projects이름 패턴 매칭을 사용하여 Asana에서 프로젝트 검색
필수 입력:
작업 공간(문자열): 검색할 작업 공간
name_pattern(문자열): 프로젝트 이름과 일치하는 정규 표현식 패턴
선택 입력:
보관됨(부울): 보관된 프로젝트만 반환합니다(기본값: false)
opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
반환: 일치하는 프로젝트 목록
asana_search_tasks고급 필터링 옵션을 사용하여 작업 공간에서 작업 검색
필수 입력:
작업 공간(문자열): 검색할 작업 공간
선택 입력:
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_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
데이터(객체):
parent(문자열): 작업의 새 부모 또는 부모가 없는 경우 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(문자열): 작업 공간 또는 조직의 전역 고유 식별자
선택 입력:
limit(정수): 페이지당 결과 수. 페이지당 반환할 객체 수. 값은 1에서 100 사이여야 합니다.
offset(문자열): 오프셋 토큰. API에서 반환된 다음 페이지까지의 오프셋입니다.
opt_fields(문자열): 포함할 선택적 필드의 쉼표로 구분된 목록
반환: 작업 공간의 태그 목록
프롬프트
task-summary메모, 사용자 정의 필드 및 주석을 기반으로 작업에 대한 요약 및 상태 업데이트를 받으세요.
필수 입력:
task_id(문자열): 요약을 가져올 작업 ID
반환: 작업 요약 생성을 위한 지침이 포함된 자세한 프롬프트
task-completeness작업 설명에 완료에 필요한 모든 세부 정보가 포함되어 있는지 분석합니다.
필수 입력:
task_id(문자열): 분석할 작업 ID 또는 URL
반환: 작업 완료 분석을 위한 지침이 포함된 자세한 프롬프트
create-task지정된 세부 정보로 새 작업 만들기
필수 입력:
project_name(문자열): 작업이 생성되어야 하는 Asana 프로젝트의 이름
title(문자열): 작업의 제목
선택 입력:
notes(문자열): 작업에 대한 메모 또는 설명
due_date(문자열): 작업 마감일(YYYY-MM-DD 형식)
반환: 포괄적인 작업을 만드는 데 대한 지침이 포함된 자세한 프롬프트
자원
작업 공간 -
asana://workspace/{workspace_gid}Asana 작업 공간을 리소스로 표현
각 작업 공간은 별도의 리소스로 노출됩니다.
URI 형식:
asana://workspace/{workspace_gid}반환: 작업 공간 세부 정보가 포함된 JSON 객체:
name: 작업 공간 이름(문자열)id: 작업 공간 글로벌 ID(문자열)type: 리소스 유형(문자열)is_organization: 작업 공간이 조직인지 여부(부울)email_domains: 작업 공간과 연결된 이메일 도메인 목록(string[])
MIME 유형:
application/json
프로젝트 -
asana://project/{project_gid}GID로 프로젝트 세부 정보를 검색하기 위한 템플릿 리소스
URI 형식:
asana://project/{project_gid}반환: 프로젝트 세부 정보가 포함된 JSON 객체:
name: 프로젝트 이름(문자열)id: 프로젝트 글로벌 ID(문자열)type: 리소스 유형(문자열)archived: 프로젝트가 보관되었는지 여부(부울)public: 프로젝트가 공개인지 여부(부울)notes: 프로젝트 설명/노트(문자열)color: 프로젝트 색상(문자열)default_view: 기본 뷰 유형(문자열)due_date,due_on,start_on: 프로젝트 날짜 정보(문자열)workspace: 작업공간 정보를 담고 있는 객체team: 팀 정보를 담고 있는 객체sections: 프로젝트의 섹션 객체 배열custom_fields: 프로젝트에 대한 사용자 정의 필드 정의 배열
MIME 유형:
application/json
설정
Asana 계정 만들기 :
아사나를 방문하세요.
"가입"을 클릭하세요.
Asana 액세스 토큰 검색 :
Asana 개발자 콘솔에서 개인 액세스 토큰을 생성할 수 있습니다.
자세한 내용은 여기에서 확인하세요: https://developers.asana.com/docs/personal-access-token
Claude Desktop 구성 :
claude_desktop_config.json에 다음을 추가합니다.지엑스피1
베타 버전(아직 출시되지 않음)을 설치하려면 다음을 사용할 수 있습니다.
@roychri/mcp-server-asana@beta
현재 베타 릴리스가 있는 경우 다음 중 하나에서 찾을 수 있습니다.
https://www.npmjs.com/package/@roychri/mcp-server-asana?activeTab=versions
npm dist-tag ls @roychri/mcp-server-asana
문제 해결
권한 오류가 발생하는 경우:
귀하가 보유한 Asana 플랜이 API 액세스를 허용하는지 확인하세요.
claude_desktop_config.json에 액세스 토큰과 구성이 올바르게 설정되었는지 확인하세요.
기여하다
이 저장소를 복제하고 해킹을 시작하세요.
MCP 검사기를 사용하여 로컬로 테스트하세요
변경 사항을 테스트하려면 다음과 같이 MCP 검사기를 사용할 수 있습니다.
이렇게 하면 클라이언트는 포트 5173 에 노출되고 서버는 포트 3000 에 노출됩니다.
해당 포트가 이미 다른 곳에서 사용되고 있는 경우 다음을 사용할 수 있습니다.
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.