Servidor MCP para Asana
Esta implementación del servidor de Protocolo de Contexto de Modelo de Asana le permite comunicarse con la API de Asana desde un cliente MCP, como la aplicación de escritorio Claude de Anthropic, y muchos más.
Más detalles sobre MCP aquí:
Uso
En la herramienta de IA que prefieras (p. ej., Claude Desktop), pregunta sobre las tareas, proyectos, espacios de trabajo o comentarios de Asana. Mencionar la palabra "asana" aumentará las posibilidades de que el LLM elija la herramienta adecuada.
Ejemplo:
¿Cuántas tareas de asana sin terminar tenemos en nuestro proyecto Sprint 30?
Otro ejemplo:

Trabajar con campos personalizados
Al actualizar o crear tareas con campos personalizados, utilice el siguiente formato:
El formato del valor varía según el tipo de campo:
Campos de enumeración : utilice el
enum_option.gidde la opción (NO el nombre para mostrar)Campos de texto : utiliza una cadena
Campos numéricos : utilice un número
Campos de fecha : utilice una cadena en formato AAAA-MM-DD
Campos de enumeración múltiple : utilice una matriz de GID de opciones de enumeración
Cómo encontrar GID de campos personalizados
Para encontrar los GID de los campos personalizados y sus opciones de enumeración:
Utilice
asana_get_taskcon el parámetroopt_fieldsestablecido para incluir campos personalizados:asana_get_task({ task_id: "TASK_ID", opt_fields: "custom_fields,custom_fields.enum_options" })En la respuesta, busque la matriz
custom_fields. Cada campo personalizado tendrá:gid: El identificador único para el campo personalizadoname: el nombre para mostrar del campo personalizadoresource_subtype: el tipo de campo personalizado (texto, número, enumeración, etc.)Para los campos de enumeración, examine la matriz
enum_optionspara encontrar el GID de cada opción
Ejemplo: Actualización de un campo personalizado de enumeración
Herramientas
asana_list_workspacesEnumera todos los espacios de trabajo disponibles en Asana
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Lista de espacios de trabajo
Nota: Si se configura DEFAULT_WORKSPACE_ID, esto solo devolverá ese espacio de trabajo en lugar de obtener todos los espacios de trabajo.
asana_search_projectsBuscar proyectos en Asana usando la coincidencia de patrones de nombres
Entrada requerida:
name_pattern (cadena): Patrón de expresión regular para que coincida con los nombres de los proyectos
Entrada opcional:
espacio de trabajo (cadena): el espacio de trabajo donde buscar (opcional si se establece DEFAULT_WORKSPACE_ID)
equipo (cadena): El equipo por el que se filtrarán los proyectos
archivado (booleano): solo devuelve proyectos archivados (valor predeterminado: falso)
límite (número): Resultados por página (1-100)
desplazamiento (cadena): Token de desplazamiento de paginación
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de proyectos coincidentes
Nota: Se debe especificar el espacio de trabajo o el equipo si DEFAULT_WORKSPACE_ID no está configurado
asana_search_tasksBuscar tareas en un espacio de trabajo con opciones de filtrado avanzadas
Entrada requerida:
espacio de trabajo (cadena): el espacio de trabajo donde buscar (opcional si se establece DEFAULT_WORKSPACE_ID)
Entrada opcional:
texto (cadena): Texto a buscar en los nombres y descripciones de las tareas
resource_subtype (cadena): Filtrar por subtipo de tarea (por ejemplo, hito)
completado (booleano): filtro para tareas completadas
is_subtask (booleano): Filtro para subtareas
has_attachment (booleano): Filtro para tareas con archivos adjuntos
is_blocked (booleano): Filtro para tareas con dependencias incompletas
is_blocking (booleano): Filtro para tareas incompletas con dependientes
cesionario, proyectos, secciones, etiquetas, equipos y muchos otros filtros avanzados
sort_by (cadena): Ordenar por fecha de vencimiento, creado_en, completado_en, me gusta, modificado_en (predeterminado: modificado_en)
sort_ascending (booleano): Ordenar en orden ascendente (predeterminado: falso)
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
custom_fields (objeto): Objeto que contiene filtros de campos personalizados
Devoluciones: Lista de tareas coincidentes
asana_get_taskObtenga información detallada sobre una tarea específica
Entrada requerida:
task_id (cadena): El ID de la tarea a recuperar
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información detallada de la tarea
asana_create_taskCrear una nueva tarea en un proyecto
Entrada requerida:
project_id (cadena): El proyecto en el que se creará la tarea
nombre (cadena): Nombre de la tarea
Entrada opcional:
notas (cadena): Descripción de la tarea
html_notes (cadena): descripción de la tarea con formato similar a HTML
due_on (cadena): Fecha de vencimiento en formato AAAA-MM-DD
cesionario (cadena): cesionario (puede ser 'yo' o un ID de usuario)
seguidores (matriz de cadenas): Matriz de ID de usuarios para agregar como seguidores
padre (cadena): el ID de la tarea principal bajo la cual se establecerá esta tarea
proyectos (matriz de cadenas): Matriz de ID de proyectos a los que agregar esta tarea
resource_subtype (cadena): el tipo de tarea (tarea predeterminada o hito)
custom_fields (objeto): Objeto que asigna cadenas GID de campos personalizados a sus valores
Devuelve: Información de la tarea creada
asana_get_task_storiesObtener comentarios e historias para una tarea específica
Entrada requerida:
task_id (cadena): El ID de la tarea para la que se obtendrán historias
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de historias/comentarios de tareas
asana_update_taskActualizar los detalles de una tarea existente
Entrada requerida:
task_id (cadena): El ID de la tarea a actualizar
Entrada opcional:
nombre (cadena): Nuevo nombre para la tarea
notas (cadena): Nueva descripción de la tarea
due_on (cadena): Nueva fecha de vencimiento en formato AAAA-MM-DD
cesionario (cadena): Nuevo cesionario (puede ser "yo" o un ID de usuario)
Completado (booleano): Marcar la tarea como completada o no
resource_subtype (cadena): el tipo de tarea (tarea predeterminada o hito)
custom_fields (objeto): Objeto que asigna cadenas GID de campos personalizados a sus valores
Devoluciones: Información de la tarea actualizada
asana_get_projectObtenga información detallada sobre un proyecto específico
Entrada requerida:
project_id (cadena): El ID del proyecto a recuperar
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información detallada del proyecto
asana_get_project_task_countsObtener el número de tareas en un proyecto
Entrada requerida:
project_id (cadena): El ID del proyecto para el que se obtendrán los recuentos de tareas
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Información del recuento de tareas
asana_get_project_sections
Obtener secciones en un proyecto
Entrada requerida:
project_id (cadena): El ID del proyecto para el que se obtendrán las secciones
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de secciones del proyecto
asana_create_task_story
Crear un comentario o una historia sobre una tarea
Entrada requerida:
task_id (cadena): El ID de la tarea a la que se agregará la historia
texto (cadena): El contenido de texto de la historia/comentario
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información de la historia creada
asana_add_task_dependencies
Establecer dependencias para una tarea
Entrada requerida:
task_id (cadena): El ID de la tarea a la que se agregarán dependencias
dependencias (matriz de cadenas): Matriz de identificaciones de tareas de las que depende esta tarea
Devoluciones: Dependencias de tareas actualizadas
asana_add_task_dependents
Establecer dependientes para una tarea (tareas que dependen de esta tarea)
Entrada requerida:
task_id (cadena): El ID de la tarea a la que se agregarán dependientes
dependientes (matriz de cadenas): Matriz de ID de tareas que dependen de esta tarea
Devoluciones: Dependientes de tareas actualizados
asana_create_subtask
Crear una nueva subtarea para una tarea existente
Entrada requerida:
parent_task_id (cadena): El ID de la tarea principal bajo la cual se creará la subtarea
nombre (cadena): Nombre de la subtarea
Entrada opcional:
notas (cadena): Descripción de la subtarea
due_on (cadena): Fecha de vencimiento en formato AAAA-MM-DD
cesionario (cadena): cesionario (puede ser 'yo' o un ID de usuario)
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Información de la subtarea creada
asana_add_followers_to_task
Agregar seguidores a una tarea
Entrada requerida:
task_id (cadena): El ID de la tarea a la que se agregarán seguidores
seguidores (matriz de cadenas): Matriz de identificaciones de usuarios para agregar como seguidores a la tarea
Devoluciones: Información de la tarea actualizada
asana_get_multiple_tasks_by_gid
Obtenga información detallada sobre múltiples tareas por sus GID (máximo 25 tareas)
Entrada requerida:
task_ids (matriz de cadenas o cadena separada por comas): GID de tareas para recuperar (máximo 25)
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de información detallada de la tarea
asana_get_project_status
Obtenga una actualización del estado del proyecto
Entrada requerida:
project_status_gid (cadena): El GID del estado del proyecto a recuperar
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información del estado del proyecto
asana_get_project_statuses
Obtener todas las actualizaciones de estado de un proyecto
Entrada requerida:
project_gid (cadena): El GID del proyecto para el cual se obtendrán los estados
Entrada opcional:
límite (número): Resultados por página (1-100)
desplazamiento (cadena): Token de desplazamiento de paginación
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de actualizaciones del estado del proyecto
asana_create_project_status
Crear una nueva actualización de estado para un proyecto
Entrada requerida:
project_gid (cadena): El GID del proyecto para el que se creará el estado
texto (cadena): El contenido de texto de la actualización de estado
Entrada opcional:
color (cadena): El color del estado (verde, amarillo, rojo)
título (cadena): el título de la actualización de estado
html_text (cadena): texto con formato HTML para la actualización de estado
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Información del estado del proyecto creado
asana_delete_project_status
Eliminar una actualización de estado del proyecto
Entrada requerida:
project_status_gid (cadena): El GID del estado del proyecto que se eliminará
Devoluciones: Confirmación de eliminación
asana_set_parent_for_task
Establezca el elemento principal de una tarea y posicione la subtarea dentro de las otras subtareas de ese elemento principal
Entrada requerida:
task_id (cadena): El ID de la tarea en la que se operará
padre (cadena): el nuevo padre de la tarea, o nulo si no hay padre
Entrada opcional:
insert_after (cadena): una subtarea del padre para insertar la tarea después, o null para insertar al principio de la lista
insert_before (cadena): una subtarea del padre para insertar la tarea antes, o null para insertar al final de la lista
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información de la tarea actualizada
asana_get_tasks_for_tag
Obtener tareas para una etiqueta específica
Entrada requerida:
tag_gid (cadena): El GID de la etiqueta para recuperar tareas
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
opt_pretty (booleano): proporciona la respuesta en un formato 'bonito'
límite (entero): El número de objetos que se devolverán por página. El valor debe estar entre 1 y 100.
desplazamiento (cadena): un desplazamiento a la siguiente página devuelto por la API.
Devuelve: Lista de tareas para la etiqueta especificada
asana_get_tags_for_workspace
Obtener etiquetas en un espacio de trabajo
Entrada requerida:
workspace_gid (cadena): identificador único global para el espacio de trabajo o la organización (opcional si se configura DEFAULT_WORKSPACE_ID)
Entrada opcional:
Límite (entero): Resultados por página. El número de objetos que se devolverán por página. El valor debe estar entre 1 y 100.
offset (cadena): Token de desplazamiento. Un desplazamiento a la siguiente página devuelto por la API.
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Lista de etiquetas en el espacio de trabajo
asana_create_section_for_project
Crear una nueva sección en un proyecto
Entrada requerida:
project_id (cadena): El ID del proyecto para crear la sección en
nombre (cadena): Nombre de la sección a crear
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Información de la sección creada
asana_add_task_to_section
Agregar una tarea a una sección específica de un proyecto
Entrada requerida:
section_id (cadena): El ID de la sección a la que se agregará la tarea
task_id (cadena): El ID de la tarea que se agregará a la sección
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Resultado de la operación
asana_create_project
Crear un nuevo proyecto en un espacio de trabajo
Entrada requerida:
workspace_id (cadena): El ID del espacio de trabajo donde se creará el proyecto (opcional si se configura DEFAULT_WORKSPACE_ID)
nombre (cadena): Nombre del proyecto a crear
team_id (cadena): REQUERIDO para espacios de trabajo de la organización: el GID del equipo con el que compartir el proyecto
Entrada opcional:
público (booleano): si el proyecto es público para la organización (valor predeterminado: falso)
archivado (booleano): si el proyecto está archivado (predeterminado: falso)
color (cadena): Color del proyecto (verde claro, naranja claro, azul claro, etc.)
diseño (cadena): el diseño del proyecto (tablero, lista, cronograma o calendario)
default_view (cadena): La vista predeterminada del proyecto (lista, tablero, calendario, línea de tiempo o Gantt)
due_on (cadena): La fecha en la que debe entregarse este proyecto (formato AAAA-MM-DD)
start_on (cadena): El día en que comienza el trabajo para este proyecto (formato AAAA-MM-DD)
notas (cadena): información textual de formato libre asociada con el proyecto
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Información del proyecto creado
asana_get_teams_for_user
Obtener equipos a los que el usuario tiene acceso
Entrada requerida:
user_gid (cadena): El GID del usuario para obtener los equipos. Use "me" para obtener los equipos del usuario actual.
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devuelve: Lista de equipos a los que el usuario tiene acceso
asana_get_teams_for_workspace
Reúne a los equipos en un espacio de trabajo
Entrada requerida:
workspace_gid (cadena): el GID del espacio de trabajo para el que se obtendrán los equipos (opcional si se configura DEFAULT_WORKSPACE_ID)
Entrada opcional:
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de equipos en el espacio de trabajo
asana_list_workspace_users
Obtener usuarios en un espacio de trabajo
Entrada requerida:
workspace_id (cadena): El ID del espacio de trabajo para el que se obtendrán los usuarios (opcional si se configura DEFAULT_WORKSPACE_ID)
Entrada opcional:
límite (entero): Resultados por página (1-100)
desplazamiento (cadena): Token de desplazamiento de paginación
opt_fields (cadena): lista separada por comas de campos opcionales para incluir (predeterminado: "nombre, correo electrónico")
auto_paginate (booleano): si se deben buscar automáticamente todas las páginas
max_pages (entero): número máximo de páginas a obtener cuando auto_paginate es verdadero
Devuelve: Lista de usuarios en el espacio de trabajo
asana_get_project_hierarchy
Obtenga la estructura jerárquica completa de un proyecto de Asana, incluidas secciones, tareas y subtareas
Entrada requerida:
project_id (cadena): El ID del proyecto para el cual se obtendrá la jerarquía
Entrada opcional:
include_completed_tasks (booleano): incluye tareas completadas (valor predeterminado: falso)
include_subtasks (booleano): incluye subtareas para cada tarea (valor predeterminado: verdadero)
include_completed_subtasks (booleano): incluye subtareas completadas (predeterminado: sigue a include_completed_tasks)
max_subtask_depth (número): Profundidad máxima de subtareas a recuperar (predeterminado: 1)
opt_fields_tasks (cadena): campos opcionales para tareas
opt_fields_subtasks (cadena): campos opcionales para subtareas
opt_fields_sections (cadena): campos opcionales para secciones
opt_fields_project (cadena): campos opcionales para el proyecto
límite (número): Máximo de resultados por página (1-100)
desplazamiento (cadena): token de paginación de la respuesta anterior
auto_paginate (booleano): si se deben buscar automáticamente todas las páginas
max_pages (número): Máximo de páginas a obtener cuando auto_paginate es verdadero
Devoluciones: Estructura jerárquica del proyecto con estadísticas
Indicaciones
task-summaryObtenga un resumen y una actualización del estado de una tarea en función de sus notas, campos personalizados y comentarios
Entrada requerida:
task_id (cadena): El ID de la tarea para la que se obtendrá el resumen
Devoluciones: Un mensaje detallado con instrucciones para generar un resumen de la tarea
Recursos
Ninguno
Configuración
Crear una cuenta de Asana :
Visita la Asana .
Haga clic en "Registrarse".
Recuperar el token de acceso de Asana :
Puedes generar un token de acceso personal desde la consola para desarrolladores de Asana.
Más detalles aquí: https://developers.asana.com/docs/personal-access-token
Opcional: Obtenga su ID de espacio de trabajo predeterminado :
Si trabaja principalmente con un espacio de trabajo, puede establecer un ID de espacio de trabajo predeterminado.
Utilice la API de Asana para enumerar sus espacios de trabajo o vaya a su espacio de trabajo en Asana y copie el ID de la URL.
Cuando establece un ID de espacio de trabajo predeterminado, no necesitará especificar el espacio de trabajo para cada llamada API.
Sin un espacio de trabajo predeterminado, el servidor llamará a
asana_list_workspacespara obtener la lista de espacios de trabajo disponibles.
Configurar Claude Desktop : agregue lo siguiente a su
claude_desktop_config.json:{ "mcpServers": { "asana": { "command": "npx", "args": ["-y", "@cristip73/mcp-server-asana"], "env": { "ASANA_ACCESS_TOKEN": "your-asana-access-token", "DEFAULT_WORKSPACE_ID": "your-default-workspace-id" } } } }
Solución de problemas
Si encuentra errores de permisos:
Asegúrate de que el plan de Asana que tienes permita el acceso a la API
Confirme que el token de acceso y la configuración estén configurados correctamente en
claude_desktop_config.json.
Contribuyendo
Clona este repositorio y comienza a hackear.
Pruébelo localmente con el Inspector MCP
Si desea probar sus cambios, puede utilizar el Inspector MCP de la siguiente manera:
Esto expondrá al cliente al puerto 5173 y al servidor al puerto 3000 .
Si esos puertos ya están siendo utilizados por otra cosa, puedes utilizar:
Licencia
Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.
This server cannot be installed
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.
Esta implementación de servidor permite que los asistentes de IA interactúen con la API de Asana, lo que permite a los usuarios administrar tareas, proyectos, espacios de trabajo y comentarios a través de solicitudes en lenguaje natural.
Related MCP Servers
- -security-license-qualityA server that enables AI assistants to understand and interact with Unity projects in real-time, providing access to scene hierarchy, project settings, and the ability to execute code directly in the Unity Editor.Last updated -93MIT License
- -security-license-qualityEnables AI assistants to interact with WordPress sites through the REST API. Supports multiple WordPress sites with secure authentication, enabling content management, post operations, and site configuration through natural language.Last updated -40MIT License
- Asecurity-licenseAqualityA server that enables AI assistants to interact with the Omnisend marketing platform, supporting contact management, product management, and event tracking operations through natural language.Last updated -10Apache 2.0
- -security-license-qualityA server that enables AI assistants to control a browser through tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.Last updated -