Asana 用 MCP サーバー
Asana のこのモデル コンテキスト プロトコル サーバー実装により、Anthropic の Claude デスクトップ アプリケーションなどの MCP クライアントから Asana API と通信できるようになります。
MCP の詳細はこちらをご覧ください:
- https://www.anthropic.com/news/model-context-protocol
- https://modelcontextprotocol.io/introduction
- https://github.com/modelcontextprotocol
使用法
選択したAIツール(例:Claude Desktop)で、Asanaのタスク、プロジェクト、ワークスペース、コメントなどについて質問してください。「Asana」という言葉を口にすることで、LLMが適切なツールを選ぶ可能性が高まります。
例:
スプリント 30 プロジェクトには、未完了のアーサナ タスクがいくつありますか?
別の例:
ツール
asana_list_workspaces
- Asana で利用可能なすべてのワークスペースを一覧表示する
- オプション入力:
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- 戻り値: ワークスペースのリスト
asana_search_projects
- 名前パターンマッチングを使用してAsanaでプロジェクトを検索する
- 必須入力:
- ワークスペース (文字列): 検索するワークスペース
- name_pattern (文字列): プロジェクト名に一致する正規表現パターン
- オプション入力:
- archived (boolean): アーカイブされたプロジェクトのみを返します (デフォルト: false)
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- 戻り値: 一致するプロジェクトのリスト
asana_search_tasks
- 高度なフィルタリングオプションを使用してワークスペース内のタスクを検索する
- 必須入力:
- ワークスペース (文字列): 検索するワークスペース
- オプション入力:
- テキスト (文字列): タスク名と説明で検索するテキスト
- resource_subtype (文字列): タスクのサブタイプ (例: マイルストーン) でフィルタリング
- 完了 (ブール値): 完了したタスクのフィルター
- is_subtask (boolean): サブタスクのフィルター
- has_attachment (boolean): 添付ファイル付きのタスクをフィルターする
- is_blocked (boolean): 依存関係が不完全なタスクをフィルターします
- is_blocking (boolean): 依存関係のある未完了タスクをフィルターします
- 担当者、プロジェクト、セクション、タグ、チーム、その他多くの高度なフィルター
- sort_by (文字列): due_date、created_at、completed_at、likes、modified_at (デフォルト: changed_at) で並べ替え
- sort_ascending (boolean): 昇順で並べ替える (デフォルト: false)
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- custom_fields (オブジェクト): カスタムフィールドフィルターを含むオブジェクト
- 戻り値: 一致するタスクのリスト
asana_get_task
- 特定のタスクに関する詳細情報を取得する
- 必須入力:
- task_id (文字列): 取得するタスクID
- オプション入力:
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- 戻り値: 詳細なタスク情報
asana_create_task
- プロジェクトに新しいタスクを作成する
- 必須入力:
- project_id (文字列): タスクを作成するプロジェクト
- name (文字列): タスクの名前
- オプション入力:
- メモ(文字列): タスクの説明
- html_notes (文字列): タスクのHTML形式の説明
- due_on (文字列): YYYY-MM-DD形式の期日
- 担当者(文字列):担当者(「自分」またはユーザーID)
- フォロワー(文字列の配列):フォロワーとして追加するユーザーIDの配列
- 親(文字列):このタスクを設定する親タスクID
- プロジェクト(文字列の配列):このタスクを追加するプロジェクトIDの配列
- resource_subtype (文字列): タスクの種類 (default_task または milestone)
- custom_fields (オブジェクト): カスタムフィールドの GID 文字列をその値にマッピングするオブジェクト
- 戻り値: 作成されたタスク情報
asana_get_task_stories
- 特定のタスクに関するコメントやストーリーを取得する
- 必須入力:
- task_id (文字列): ストーリーを取得するタスクID
- オプション入力:
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- 戻り値: タスクストーリー/コメントのリスト
asana_update_task
- 既存のタスクの詳細を更新する
- 必須入力:
- task_id (文字列): 更新するタスクID
- オプション入力:
- name (文字列): タスクの新しい名前
- メモ(文字列): タスクの新しい説明
- due_on (文字列): YYYY-MM-DD形式の新しい期日
- 担当者(文字列):新しい担当者(「自分」またはユーザーID)
- 完了 (ブール値): タスクを完了としてマークするかどうか
- resource_subtype (文字列): タスクの種類 (default_task または milestone)
- 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
- テキスト(文字列):ストーリー/コメントのテキストコンテンツ
- オプション入力:
- 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 (文字列): サブタスクの名前
- オプション入力:
- メモ(文字列): サブタスクの説明
- 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
- オプション入力:
- 制限(数):1ページあたりの結果数(1~100)
- offset (文字列): ページネーションオフセットトークン
- opt_fields (文字列): 含めるオプションフィールドのカンマ区切りリスト
- 戻り値: プロジェクトステータスの更新リスト
asana_create_project_status
- プロジェクトの新しいステータス更新を作成する
- 必須入力:
- project_gid (文字列): ステータスを作成するプロジェクトGID
- テキスト(文字列):ステータス更新のテキストコンテンツ
- オプション入力:
- 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 (文字列): ワークスペースまたは組織のグローバル一意識別子
- オプション入力:
- 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 アクセストークンを取得します:
- Asana 開発者コンソールから個人アクセス トークンを生成できます。
- 詳細はこちらをご覧ください: https://developers.asana.com/docs/personal-access-token
- Claude Desktop を構成する:
claude_desktop_config.json
に以下を追加します。
ベータ版(まだリリースされていない)をインストールする場合は、以下を使用できます。
@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 Inspectorを使用してローカルでテストする
変更をテストしたい場合は、次のように MCP インスペクターを使用できます。
これにより、クライアントはポート5173
に公開され、サーバーはポート3000
に公開されます。
これらのポートがすでに他のものによって使用されている場合は、以下を使用できます。
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
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.
Tools
Anthropic の Claude デスクトップ アプリケーションなどの MCP クライアントから Asana 操作を実行します。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityRun your own runbooks from Claude Desktop. You can create your runbooks and execute them with other MCP servers.Last updated -24PythonApache 2.0
- AsecurityFlicenseAqualityAn MCP server that enables Claude Desktop to communicate with A2A protocol agents, allowing Claude to access extended capabilities through agent interactions.Last updated -321Python
- -securityAlicense-qualityAsana MCP Server by CDataLast updated -MIT License
- -securityFlicense-qualityAn MCP (Multi-Agent Conversation Protocol) server that enables interacting with the Asana API through natural language commands for task management, project organization, and team collaboration.Last updated -