Plantilla genérica de servidor MCP
Una plantilla de servidor de Protocolo de Contexto de Modelo (MCP) modular y extensible, diseñada para una fácil personalización y extensión.
Características
Arquitectura modular : clara separación de preocupaciones con una estructura bien definida
Archivos pequeños y enfocados : mejor capacidad de mantenimiento y más fácil de ingerir para la IA
Puntos de extensión fáciles : patrones simples para agregar nuevas herramientas y servicios
Manejo integral de errores : gestión robusta de errores en todo el código base
Seguridad de tipos : compatibilidad total con TypeScript con tipificación adecuada
Related MCP server: Emcee
Estructura del proyecto
Empezando
Prerrequisitos
Node.js 18 o superior
npm o hilo
Instalación
Clonar este repositorio:
git clone https://github.com/v4lheru/generic-mcp-template.git cd generic-mcp-templateInstalar dependencias:
npm installCree un archivo
.envbasado en.env.example:cp .env.example .envEdite el archivo
.envcon sus claves API y configuración.
Construyendo y funcionando
Construir el proyecto:
npm run buildEjecutar el servidor:
npm start
Ampliación de la plantilla
Agregar un nuevo servicio
Cree un nuevo archivo de servicio en
src/services/:// src/services/my-service.ts import { BaseService } from './base-service.js'; import config from '../config.js'; export class MyService extends BaseService { // Implement your service... }Agregue cualquier tipo necesario en
src/types/.
Agregar nuevas herramientas
Define tus herramientas en un nuevo archivo o amplía el existente en
src/tools/:// src/tools/my-tools.ts export const myTools = [ { name: "my_tool", description: "Description of my tool", inputSchema: { // JSON Schema for the tool's input } } ];Implemente controladores para sus herramientas:
// src/tools/my-tool-handlers.ts import { MyService } from '../services/my-service.js'; export function createMyToolHandlers(myService: MyService) { return { my_tool: async (args: any) => { // Implement your tool handler } }; }Registre sus herramientas y controladores en
src/index.ts.
Configuración
La plantilla utiliza un sistema de configuración centralizado en src/config.ts . La configuración se puede realizar mediante:
Variables de entorno
Argumentos de la línea de comandos (con
--env KEY=VALUE)Valores predeterminados en el código
Manejo de errores
La plantilla incluye un manejo integral de errores:
Manejo de errores a nivel de servicio con soporte de limitación de velocidad
Manejo de errores a nivel de herramienta con mensajes de error adecuados
Manejo de errores del protocolo MCP
Licencia
Instituto Tecnológico de Massachusetts (MIT)