MCP-Zentao

Una integración de API para el sistema de gestión de proyectos Zent

Documentación

MCP-Zentao

Paquete de integración de API de alto nivel para el sistema de gestión de proyectos Zentao, que proporciona una encapsulación completa de funciones como gestión de tareas y seguimiento de errores, diseñado como extensión MCP para Cursor IDE.

Instalación

npm install @bigtian/mcp-zentao -g

Uso

Primer uso (configuración de la información de Zentao)

En el primer uso, es necesario proporcionar la información de configuración de Zentao:

zentao '{"config":{"url":"https://your-zentao-url","username":"your-username","password":"your-password","apiVersion":"v1"},"name":"张三","age":25,"skills":["编程","设计"]}'

La información de configuración se guarda en el archivo .zentao/config.json en el directorio del usuario, y no es necesario volver a proporcionarla en usos posteriores.

Uso posterior

Una vez completada la configuración, solo es necesario proporcionar la información relacionada con las tareas:

zentao '{"name":"张三","age":25,"skills":["编程","设计"]}'

Actualizar configuración

Si necesita actualizar la información de configuración de Zentao, solo tiene que volver a proporcionar el parámetro config:

zentao '{"config":{"url":"https://new-zentao-url","username":"new-username","password":"new-password","apiVersion":"v1"},"name":"张三","age":25,"skills":["编程","设计"]}'

Ubicación del archivo de configuración

El archivo de configuración se guarda en el archivo .zentao/config.json en el directorio del usuario:

  • Windows: C:\Users\你的用户名\.zentao\config.json
  • macOS/Linux: ~/.zentao/config.json

Características

  • Almacenamiento persistente de la información de configuración
  • Gestión automática de la información de autenticación de la API de Zentao
  • Funciones de creación, actualización y finalización de tareas
  • Seguimiento y gestión de errores (bugs)
  • Soporte completo de definiciones de tipos

Notas

  • El archivo de configuración contiene información sensible; asegúrese de que los permisos del archivo estén configurados correctamente
  • Se recomienda actualizar la contraseña periódicamente para garantizar la seguridad
  • Si encuentra problemas, puede eliminar el archivo de configuración y volver a configurarlo

Licencia

MIT

Características destacadas

  • Encapsulación completa de la API de Zentao
  • Diseño de interfaz simple y fácil de usar
  • Seguridad de tipos (soporte de TypeScript)
  • Manejo de errores completo
  • Gestión de autenticación automatizada

Diferencias con otros proyectos

A diferencia de las herramientas genéricas de operación de bases de datos (como mcp-mysql-server), este proyecto se centra en proporcionar:

  1. Funciones de negocio específicas del sistema Zentao
  2. Abstracción de API de alto nivel
  3. Soporte completo del flujo de trabajo de Zentao
  4. Solución de integración de Zentao lista para usar

Desarrollo local

  1. Clonar el repositorio
git clone https://github.com/bigtian/mcp-zentao.git
cd mcp-zentao
  1. Instalar dependencias
npm install
  1. Ejecutar pruebas
npm test
  1. Compilar el proyecto
npm run build

Uso con Docker

Uso con docker-compose (recomendado)

  1. Copiar la plantilla de variables de entorno y modificar la configuración
cp .env.example .env
# 编辑 .env 文件,填入你的禅道系统配置
  1. Iniciar el servicio
docker-compose up -d
  1. Ver los registros
docker-compose logs -f

Uso manual de Docker

  1. Construir la imagen
docker build -t mcp-zentao .
  1. Ejecutar el contenedor
docker run -d \
  --name mcp-zentao \
  -p 3000:3000 \
  -e ZENTAO_URL=your-zentao-url \
  -e ZENTAO_USERNAME=your-username \
  -e ZENTAO_PASSWORD=your-password \
  -e ZENTAO_API_VERSION=v1 \
  -v $(pwd)/logs:/app/logs \
  mcp-zentao

Configuración en Cursor IDE

Agregue la siguiente configuración en el archivo de configuración de Cursor IDE:

{
  "mcpServers": {
    "zentao": {
      "url": "http://localhost:3000"
    }
  }
}

Uso básico

import { ZentaoAPI } from '@bigtian/mcp-zentao';

// 创建API实例
const api = new ZentaoAPI({
    url: 'https://your-zentao-url',  // 你的禅道系统URL
    username: 'your-username',        // 用户名
    password: 'your-password',        // 密码
    apiVersion: 'v1'                 // API版本,默认为v1
});

// 获取我的任务列表
async function getMyTasks() {
    try {
        const tasks = await api.getMyTasks();
        console.log('我的任务:', tasks);
    } catch (error) {
        console.error('获取任务失败:', error);
    }
}

// 获取我的Bug列表
async function getMyBugs() {
    try {
        const bugs = await api.getMyBugs();
        console.log('我的Bug:', bugs);
    } catch (error) {
        console.error('获取Bug失败:', error);
    }
}

// 完成任务
async function finishTask(taskId: number) {
    try {
        await api.finishTask(taskId);
        console.log('任务已完成');
    } catch (error) {
        console.error('完成任务失败:', error);
    }
}

// 解决Bug
async function resolveBug(bugId: number) {
    try {
        await api.resolveBug(bugId, {
            resolution: 'fixed',
            resolvedBuild: 'trunk',
            comment: '问题已修复'
        });
        console.log('Bug已解决');
    } catch (error) {
        console.error('解决Bug失败:', error);
    }
}

Documentación de la API

Clase ZentaoAPI

Constructor

constructor(config: {
    url: string;          // 禅道系统URL
    username: string;     // 用户名
    password: string;     // 密码
    apiVersion?: string;  // API版本,默认为v1
})

Métodos

  1. getMyTasks(): Promise<Task[]>

    • Obtener la lista de tareas del usuario actual
    • Devuelve: Promise<Task[]>
  2. getMyBugs(): Promise<Bug[]>

    • Obtener la lista de errores (bugs) del usuario actual
    • Devuelve: Promise<Bug[]>
  3. finishTask(taskId: number): Promise<void>

    • Completar la tarea con el ID especificado
    • Parámetros: taskId - ID de la tarea
    • Devuelve: Promise
  4. resolveBug(bugId: number, resolution: BugResolution): Promise<void>

    • Resolver el error (bug) con el ID especificado
    • Parámetros:
      • bugId - ID del error (bug)
      • resolution - Solución del error (bug)
    • Devuelve: Promise

Definiciones de tipos

interface Task {
    id: number;
    name: string;
    status: string;
    pri: number;
    // ... 其他任务属性
}

interface Bug {
    id: number;
    title: string;
    status: string;
    severity: number;
    // ... 其他Bug属性
}

interface BugResolution {
    resolution: string;      // 解决方案类型
    resolvedBuild?: string; // 解决版本
    duplicateBug?: number;  // 重复Bug ID
    comment?: string;       // 备注
}

Notas

  1. Asegúrese de proporcionar la URL correcta del sistema Zentao y la versión de la API
  2. El nombre de usuario y la contraseña deben tener los permisos de acceso a la API correspondientes
  3. Todas las llamadas a la API son asíncronas; deben manejarse con async/await o Promise
  4. Se recomienda capturar los errores con try/catch

Entorno de desarrollo

  • Node.js >= 14.0.0
  • TypeScript >= 4.0.0

Contribuciones

¡Bienvenidos a enviar Issues y Pull Requests!