Teamwork MCP

by Vizioz
Verified

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

  • Supports configuration management for the Teamwork MCP server, allowing secure storage of API credentials and server settings.

  • Serves as the runtime environment for the MCP server that connects to Teamwork, enabling project management operations like retrieving, creating, updating, and deleting tasks.

  • Enables seamless interaction with the Teamwork project management API, providing tools for managing projects, tasks, subtasks, people, and generating reports like utilization data in various formats.

Trabajo en equipo MCP

Un servidor MCP que se conecta a la API de Teamwork y proporciona una interfaz simplificada para interactuar con proyectos y tareas de Teamwork.

Características

  • Conectarse a la API de trabajo en equipo
  • Recuperar proyectos y tareas
  • Crear, actualizar y eliminar tareas
  • Puntos finales de API RESTful
  • Manejo y registro de errores
  • Servidor MCP para integración con Cursor y otras aplicaciones

Prerrequisitos

  • Node.js (v14.17 o superior, se recomienda 18+ o incluso mejor la última versión LTS)
  • npm o hilo
  • Cuenta de trabajo en equipo con acceso a API

Herramientas MCP de trabajo en equipo disponibles

Las siguientes herramientas están disponibles a través del servidor MCP:

Herramientas del proyecto

  • getProjects - Obtener todos los proyectos de Teamwork
  • getCurrentProject : obtiene detalles sobre el proyecto actual
  • createProject - Crea un nuevo proyecto en Teamwork

Herramientas de tareas

  • getTasks - Obtener todas las tareas de Teamwork
  • getTasksByProjectId : obtiene todas las tareas de un proyecto específico en Teamwork
  • getTaskListsByProjectId : obtiene todas las listas de tareas de un proyecto específico en Teamwork
  • getTaskById - Obtener una tarea específica por ID de Teamwork
  • createTask - Crea una nueva tarea en Teamwork
  • createSubTask : crea una nueva subtarea debajo de una tarea principal en Teamwork
  • updateTask - Actualizar una tarea existente en Teamwork
  • deleteTask - Eliminar una tarea de Teamwork
  • getTasksMetricsComplete : obtiene el recuento total de tareas completadas en Teamwork
  • getTasksMetricsLate : obtiene el recuento total de tareas atrasadas en Teamwork
  • getTaskSubtasks : obtiene todas las subtareas para una tarea específica en Teamwork
  • getTaskComments : obtener comentarios para una tarea específica de Teamwork

Herramientas para comentarios

  • createComment - Crea un comentario relacionado con una tarea/mensaje/cuaderno de notas

Herramientas de la empresa

  • getCompanies - Obtenga todas las empresas de Teamwork con filtrado opcional
  • getCompanyById - Obtener una empresa específica por ID
  • createCompany - Crea una nueva empresa en Teamwork
  • updateCompany - Actualizar la información de una empresa existente
  • deleteCompany - Eliminar una empresa de Teamwork

Herramientas para personas

  • getPeople - Obtener todas las personas de Teamwork
  • getPersonById - Obtener una persona específica por ID de Teamwork
  • getProjectPeople : obtiene todas las personas asignadas a un proyecto específico desde Teamwork
  • addPeopleToProject - Agregar personas a un proyecto específico en Teamwork
  • deletePerson - Eliminar una persona de Teamwork
  • updatePerson - Actualizar la información de una persona (zona horaria, nombre, correo electrónico, etc.)
  • getProjectsPeopleMetricsPerformance : obtenga métricas de rendimiento de las personas
  • getProjectsPeopleUtilization - Obtener la utilización de las personas
  • getProjectPerson - Obtener una persona específica en un proyecto

Herramientas de informes

  • getProjectsReportingUserTaskCompletion : obtener el informe de finalización de tareas del usuario
  • getProjectsReportingUtilization : obtenga un informe de utilización en varios formatos CSV y HTML

Herramientas de tiempo

  • getTime - Obtener todas las entradas de tiempo
  • getProjectsAllocationsTime - Obtener el tiempo de asignación del proyecto
  • getTimezones : obtiene todas las zonas horarias disponibles en Teamwork (útil al actualizar las zonas horarias de los usuarios)

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/readingdancer/teamwork-mcp.git cd teamwork-mcp
  2. dependencias:
    npm install
  3. Cree un archivo .env basado en el archivo .env.example :
    cp .env.example .env
  4. Actualice el archivo .env con sus credenciales de Teamwork.

Configuración

Edite el archivo .env para configurar la aplicación:

  • PORT : El puerto en el que se ejecutará el servidor (predeterminado: 3000)
  • NODE_ENV : El entorno (desarrollo, producción, prueba)
  • LOG_LEVEL : Nivel de registro (información, error, depuración)
  • TEAMWORK_DOMAIN : Su nombre de dominio de Teamwork (por ejemplo, "su-empresa" para https://su-empresa.teamwork.com )
  • TEAMWORK_USERNAME : Su nombre de usuario de Teamwork (correo electrónico)
  • TEAMWORK_PASSWORD : Su contraseña de trabajo en equipo

Configuración de credenciales

Puede proporcionar sus credenciales de Trabajo en Equipo de tres maneras:

  1. Variables de entorno : establezca TEAMWORK_DOMAIN , TEAMWORK_USERNAME y TEAMWORK_PASSWORD en su entorno.
  2. Archivo .env : crea un archivo .env con las variables requeridas como se muestra arriba.
  3. Argumentos de la línea de comandos : Pasar credenciales al ejecutar la aplicación:
node build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password

O utilizando la forma corta:

node build/index.js --domain=your-company --user=your-email@example.com --pass=your-password

Filtrado de herramientas

Puede controlar qué herramientas están disponibles para el servidor MCP utilizando los siguientes argumentos de la línea de comandos:

  1. Lista de permitidos : solo exponer herramientas específicas:
    node build/index.js --allow-tools=getProjects,getTasks,getTaskById
    O utilizando la forma corta:
    node build/index.js --allow=getProjects,getTasks,getTaskById
  2. Lista de denegación : exponer todas las herramientas excepto las especificadas:
    node build/index.js --deny-tools=deleteTask,updateTask
    O utilizando la forma corta:
    node build/index.js --deny=deleteTask,updateTask

Filtrado de herramientas con grupos

Ahora puede especificar grupos de herramientas para el filtrado, lo que permite un control más flexible sobre las herramientas disponibles para el servidor MCP. Los grupos disponibles son:

  • Proyectos : Incluye todas las herramientas relacionadas con el proyecto.
  • Tareas : incluye todas las herramientas relacionadas con las tareas.
  • Personas : incluye todas las herramientas relacionadas con las personas.
  • Informes : incluye todas las herramientas relacionadas con los informes.
  • Tiempo : Incluye todas las herramientas relacionadas con el tiempo.
  • Comentarios : Incluye herramientas de comentarios específicas.

Uso de grupos en el filtrado de herramientas

Puede especificar estos grupos en las listas de permitidos o denegados para incluir o excluir todas las herramientas dentro de un grupo. Por ejemplo:

  1. Lista de permitidos con grupos : solo exponer grupos específicos de herramientas:
    node build/index.js --allow-tools=Tasks,People
    O utilizando la forma corta:
    node build/index.js --allow=Tasks,People
  2. Lista de denegación con grupos : expone todas las herramientas excepto aquellas en grupos específicos:
    node build/index.js --deny-tools=Reporting,Time
    O utilizando la forma corta:
    node build/index.js --deny=Reporting,Time

De forma predeterminada, todas las herramientas se exponen si no se proporciona la lista de permitidos ni la de denegados. Si se proporcionan ambas, la lista de permitidos tiene prioridad.

El filtrado de herramientas se aplica en dos niveles para mejorar la seguridad:

  1. Al enumerar las herramientas disponibles (las herramientas que no están en la lista de permitidos o en la lista de denegados no serán visibles)
  2. Al ejecutar llamadas de herramientas (los intentos de llamar a herramientas filtradas serán rechazados con un error)

Configuración de su proyecto de trabajo en equipo

Para asociar su solución actual con un proyecto de Teamwork, puede utilizar el siguiente método:

Uso de un archivo de configuración

Puedes crear un archivo .teamwork en la raíz de tu proyecto con la siguiente estructura:

PROJECT_ID = YourTeamworkProjectID

Este simple archivo de configuración asocia su solución con un proyecto específico de Teamwork; podremos usarlo para almacenar más detalles en el futuro.

Una vez configurado, el MCP podrá encontrar su proyecto Teamwork y asociarlo con su solución actual, reduciendo la cantidad de llamadas API necesarias para obtener el proyecto y las tareas relacionadas con la solución en la que está trabajando.

Uso

Uso de NPX (recomendado)

La forma más sencilla de utilizar Teamwork MCP es con npx:

npx teamwork-mcp

También puedes pasar opciones de configuración:

npx teamwork-mcp --domain=your-company --user=your-email@example.com --pass=your-password

Construyendo la aplicación

Nota: Esto no es necesario si solo desea utilizar el MCP, utilice las instrucciones NPX anteriores.

Construir la aplicación:

npm run build

Esto compilará el código TypeScript listo para usarse como un servidor MCP

Ejecutándose como un servidor MCP

Para ejecutar como servidor MCP para la integración con Cursor y otras aplicaciones, si está utilizando el archivo .env para su nombre de usuario, contraseña y URL, o si los ha guardado en variables de entorno:

NOTA: No olvide cambiar los detalles de la unidad y la ruta según dónde haya guardado el repositorio.

node C:/your-full-path/build/index.js

O puedes pasarlos usando argumentos de línea:

node C:/your-full-path/build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password

También puedes utilizar la forma abreviada:

node C:/your-full-path/build/index.js --domain=your-company --user=your-email@example.com --pass=your-password

Uso del inspector MCP

Para ejecutar el inspector MCP para depuración:

npm run inspector

Agregar a Cursor (y otros clientes MCP)

Para agregar este servidor MCP a Cursor:

Versiones anteriores a la 0.47

  1. Abra Configuración del cursor > Funciones > MCP
  2. Haga clic en "+ Agregar nuevo servidor MCP"
  3. Introduzca un nombre para el servidor (por ejemplo, "Teamwork API")
  4. Seleccione "stdio" como tipo de transporte
  5. Ingrese el comando para ejecutar el servidor: npx @vizioz/teamwork-mcp y agregue las credenciales y los argumentos de la línea de comando del dominio como se mencionó anteriormente.
    • Puede incluir opciones de filtrado de herramientas: --allow=getProjects,getTasks o --deny=deleteTask
  6. Haga clic en "Agregar"

Versiones posteriores a 0.47 (editar la configuración manualmente)

"Teamwork": { "command": "npx", "args": [ "-y", "@vizioz/teamwork-mcp", "--domain", "yourdomain", "--user", "youruser@yourdomain.com", "--pass", "yourPassword" ] }

Si desea agregar los argumentos de permitir o denegar mencionados anteriormente, simplemente agréguelos de esta manera, puede agregar cualquiera de los ejemplos dados anteriormente, también puede agregar grupos y herramientas individuales como se muestra a continuación:

"Teamwork": { "command": "npx", "args": [ "-y", "@vizioz/teamwork-mcp", "--domain", "yourdomain", "--user", "youruser@yourdomain.com", "--pass", "yourPassword", "--allow", "Tasks,Projects", "--deny", "getProjectsPeopleMetricsPerformance,getProjectsPeopleUtilization" ]

Las herramientas Teamwork MCP ahora estarán disponibles para el Agente de cursor en Composer.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Descargo de responsabilidad

Este proyecto no está afiliado, respaldado ni patrocinado por Teamwork.com. El nombre "Teamwork" en el nombre del paquete (@vizioz/teamwork-mcp) se usa únicamente con fines descriptivos para indicar compatibilidad con la API de Teamwork.com.

ID: k8c0fdmnj8