Skip to main content
Glama

Task API Server

by milkosten

Servidor de API de tareas: implementación de TypeScript de MCP

Implementación del Protocolo de Contexto de Modelo (MCP) para la API de Gestión de Tareas, escrita en TypeScript. Este proyecto funciona como implementación de referencia y como servidor de gestión de tareas funcional.

Descripción general

Este servidor MCP se conecta a un servicio API de tareas externo y proporciona una interfaz estandarizada para la gestión de tareas. Admite dos modos de ejecución:

  1. Modo STDIO : Comunicación de entrada/salida estándar para aplicaciones basadas en CLI y agentes de IA
  2. Modo HTTP+SSE : servidor accesible desde la Web con eventos enviados por el servidor para navegadores y clientes basados en HTTP

El servidor ofrece un conjunto completo de operaciones de gestión de tareas, validación exhaustiva y manejo robusto de errores.

Características

  • Operaciones de gestión de tareas :
    • Enumere las tareas existentes con capacidades de filtrado
    • Crea nuevas tareas con propiedades personalizables
    • Actualizar detalles de la tarea (descripción, estado, categoría, prioridad)
    • Eliminar tareas cuando estén completadas o ya no sean necesarias
  • Modos de interfaz dual :
    • Compatibilidad con el protocolo STDIO para la integración de agentes de IA y de línea de comandos
    • Protocolo HTTP+SSE con interfaz web para acceso basado en navegador
  • Implementación del protocolo MCP :
    • Implementación completa del Protocolo de Contexto Modelo
    • Recursos para estructuras de datos de tareas
    • Herramientas para operaciones de tareas
    • Manejo de errores y mensajes informativos
  • Seguro de calidad :
    • Cliente de prueba integral para validación
    • Apagado automático del servidor después de completar las pruebas
    • Validación detallada de las respuestas de la API

Empezando

Prerrequisitos

  • Node.js 16.x o superior
  • gestor de paquetes npm o pnpm

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/yourusername/mcp-template-ts.git cd mcp-template-ts
  2. Instalar dependencias:
    npm install
    o usando pnpm:
    pnpm install
  3. Cree un archivo .env con sus credenciales de API de tareas:
    TASK_MANAGER_API_BASE_URL=https://your-task-api-url.com/api TASK_MANAGER_API_KEY=your_api_key_here TASK_MANAGER_HTTP_PORT=3000
  4. Construir el proyecto:
    npm run build

Ejecución del servidor

Modo STDIO (para integración CLI/AI)
npm start

o

node dist/index.js
Modo HTTP (para acceso web)
npm run start:http

o

node dist/http-server.js

De forma predeterminada, el servidor HTTP se ejecuta en el puerto 3000. Puede cambiar esto configurando la variable de entorno TASK_MANAGER_HTTP_PORT .

Pruebas

Ejecute el conjunto de pruebas completo para verificar la funcionalidad:

npm test

Esto hará lo siguiente:

  1. Construir el proyecto
  2. Iniciar una instancia de servidor
  3. Conectar un cliente de prueba al servidor
  4. Ejecutar todas las operaciones de la tarea
  5. Verificar respuestas correctas
  6. Apagar automáticamente el servidor

Uso del cliente MCP

Cliente STDIO

Para conectarse al servidor STDIO desde su aplicación:

import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; import * as path from 'path'; // Create transport const transport = new StdioClientTransport({ command: 'node', args: [path.resolve('path/to/dist/index.js')] }); // Initialize client const client = new Client( { name: "your-client-name", version: "1.0.0" }, { capabilities: { prompts: {}, resources: {}, tools: {} } } ); // Connect to server await client.connect(transport); // Example: List all tasks const listTasksResult = await client.callTool({ name: "listTasks", arguments: {} }); // Example: Create a new task const createTaskResult = await client.callTool({ name: "createTask", arguments: { task: "Complete project documentation", category: "Documentation", priority: "high" } }); // Clean up when done await client.close();

Cliente HTTP

Para conectarse al servidor HTTP desde un navegador:

<!DOCTYPE html> <html> <head> <title>Task Manager</title> <script type="module"> import { Client } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/index.js'; import { SSEClientTransport } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/sse.js'; document.addEventListener('DOMContentLoaded', async () => { // Create transport const transport = new SSEClientTransport('http://localhost:3000/mcp'); // Initialize client const client = new Client( { name: "browser-client", version: "1.0.0" }, { capabilities: { prompts: {}, resources: {}, tools: {} } } ); // Connect to server await client.connect(transport); // Now you can use client.callTool() for tasks }); </script> </head> <body> <h1>Task Manager</h1> <!-- Your interface elements here --> </body> </html>

Herramientas disponibles

lista de tareas

Enumera todas las tareas disponibles.

const result = await client.callTool({ name: "listTasks", arguments: { // Optional filters status: "pending", // Filter by status category: "Work", // Filter by category priority: "high" // Filter by priority } });

crearTarea

Crea una nueva tarea.

const result = await client.callTool({ name: "createTask", arguments: { task: "Complete the project report", // Required: task description category: "Work", // Optional: task category priority: "high" // Optional: low, medium, high } });

tarea de actualización

Actualiza una tarea existente.

const result = await client.callTool({ name: "updateTask", arguments: { taskId: 123, // Required: ID of task to update task: "Updated task description", // Optional: new description status: "done", // Optional: pending, started, done category: "Personal", // Optional: new category priority: "medium" // Optional: low, medium, high } });

eliminarTarea

Elimina una tarea.

const result = await client.callTool({ name: "deleteTask", arguments: { taskId: 123 // Required: ID of task to delete } });

Variables de entorno

VariableDescripciónPor defecto
URL BASE DE LA API DEL ADMINISTRADOR DE TAREASURL para la API de tareas externasNinguno (obligatorio)
CLAVE DE API DEL ADMINISTRADOR DE TAREASClave API para autenticaciónNinguno (obligatorio)
PUERTO HTTP DEL ADMINISTRADOR DE TAREASPuerto para el servidor HTTP3000
PUERTONombre de puerto alternativo (tiene prioridad)Ninguno

Estructura del proyecto

mcp-template-ts/ ├── dist/ # Compiled JavaScript files ├── src/ # TypeScript source files │ ├── index.ts # STDIO server entry point │ ├── http-server.ts # HTTP+SSE server entry point │ ├── test-client.ts # Test client implementation ├── .env # Environment variables ├── package.json # Project dependencies ├── tsconfig.json # TypeScript configuration └── README.md # Project documentation

Desarrollo

  1. Inicie el compilador de TypeScript en modo de observación:
    npm run watch
  2. Ejecutar pruebas para verificar los cambios:
    npm test

Licencia

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

Expresiones de gratitud

  • Este proyecto utiliza @modelcontextprotocol/sdk para la implementación del protocolo MCP
  • Diseñado para la integración con herramientas de IA y aplicaciones web.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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.

Una implementación del Protocolo de Contexto de Modelo que proporciona una interfaz estandarizada para la gestión de tareas, compatible con el modo STDIO para aplicaciones CLI/AI y el modo HTTP+SSE para clientes basados en navegador.

  1. Descripción general
    1. Características
      1. Empezando
        1. Prerrequisitos
        2. Instalación
        3. Ejecución del servidor
        4. Pruebas
      2. Uso del cliente MCP
        1. Cliente STDIO
        2. Cliente HTTP
      3. Herramientas disponibles
        1. lista de tareas
        2. crearTarea
        3. tarea de actualización
        4. eliminarTarea
      4. Variables de entorno
        1. Estructura del proyecto
          1. Desarrollo
            1. Licencia
              1. Expresiones de gratitud

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that integrates with Cursor IDE, providing real-time communication, modern web dashboards, and extensible tools via SSE and WebSocket connections.
                  Last updated -
                  1,133
                  1
                  Python
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables seamless execution of commands, Python code, web content fetching, and reusable task management with secure credentials handling.
                  Last updated -
                  2
                  Python
                  MIT License
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server that enables AI clients to interact with virtual Ubuntu desktops, allowing them to browse the web, run code, and control instances through mouse/keyboard actions and bash commands.
                  Last updated -
                  5
                  9
                  JavaScript
                  MIT License
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that bridges Claude with Google Tasks, allowing users to manage task lists and tasks directly through Claude interface.
                  Last updated -
                  5
                  TypeScript
                  MIT License
                  • Apple

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/milkosten/task-mcp-server'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server