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:
Herramientas
asana_list_workspaces
Enumera 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
asana_search_projects
Buscar proyectos en Asana usando la coincidencia de patrones de nombres
Entrada requerida:
espacio de trabajo (cadena): el espacio de trabajo en el que buscar
name_pattern (cadena): Patrón de expresión regular para que coincida con los nombres de los proyectos
Entrada opcional:
archivado (booleano): solo devuelve proyectos archivados (valor predeterminado: falso)
opt_fields (cadena): lista separada por comas de campos opcionales para incluir
Devoluciones: Lista de proyectos coincidentes
asana_search_tasks
Buscar tareas en un espacio de trabajo con opciones de filtrado avanzadas
Entrada requerida:
espacio de trabajo (cadena): el espacio de trabajo en el que buscar
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_task
Obtenga 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_task
Crear 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_stories
Obtener 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_task
Actualizar 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_project
Obtenga 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_counts
Obtener 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_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 del 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á
datos (objeto):
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
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
Indicaciones
task-summary
Obtenga 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
task-completeness
Analizar si una descripción de tarea contiene todos los detalles necesarios para su finalización.
Entrada requerida:
task_id (cadena): El ID de la tarea o URL a analizar
Devoluciones: Un mensaje detallado con instrucciones para analizar la completitud de la tarea.
create-task
Crear una nueva tarea con detalles específicos
Entrada requerida:
project_name (cadena): El nombre del proyecto de Asana donde se debe crear la tarea
título (cadena): el título de la tarea
Entrada opcional:
notas (cadena): Notas o descripción de la tarea
due_date (cadena): Fecha de vencimiento de la tarea (formato AAAA-MM-DD)
Devoluciones: Un mensaje detallado con instrucciones para crear una tarea completa
Recursos
Espacios de trabajo -
asana://workspace/{workspace_gid}
Representación de los espacios de trabajo de Asana como recursos
Cada espacio de trabajo se expone como un recurso separado
Formato de URI:
asana://workspace/{workspace_gid}
Devuelve: objeto JSON con detalles del espacio de trabajo que incluyen:
name
: Nombre del espacio de trabajo (cadena)id
: ID global del espacio de trabajo (cadena)type
: Tipo de recurso (cadena)is_organization
: si el espacio de trabajo es una organización (booleano)email_domains
: Lista de dominios de correo electrónico asociados con el espacio de trabajo (string[])
Tipo MIME:
application/json
Proyectos -
asana://project/{project_gid}
Recurso de plantilla para recuperar detalles del proyecto por GID
Formato URI:
asana://project/{project_gid}
Devuelve: objeto JSON con detalles del proyecto que incluyen:
name
: Nombre del proyecto (cadena)id
proyecto (cadena)type
: Tipo de recurso (cadena)archived
: si el proyecto está archivado (booleano)public
: si el proyecto es público (booleano)notes
: Descripción/notas del proyecto (cadena)color
: Color del proyecto (cadena)default_view
: Tipo de vista predeterminado (cadena)due_date
,due_on
,start_on
: Información de la fecha del proyecto (cadena)workspace
: objeto que contiene información del espacio de trabajoteam
: Objeto que contiene información del equiposections
: Matriz de objetos de sección en el proyectocustom_fields
: Matriz de definiciones de campos personalizados para el proyecto
Tipo MIME:
application/json
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
Configurar Claude Desktop : agregue lo siguiente a su
claude_desktop_config.json
:
Si deseas instalar la versión beta (aún no publicada), puedes usar:
@roychri/mcp-server-asana@beta
Puede encontrar la versión beta actual, si la hay, en:
https://www.npmjs.com/package/@roychri/mcp-server-asana?activeTab=versions
npm dist-tag ls @roychri/mcp-server-asana
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.
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
Realice operaciones de Asana desde un cliente MCP como la aplicación de escritorio Claude de Anthropic y muchas más.
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 -24Apache 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 -320
- -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 -