generic-mcp-server
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
generic-mcp-template/
├── src/
│ ├── services/ # Service classes for API interactions
│ │ ├── base-service.ts # Abstract base service with common functionality
│ │ └── example-service.ts # Example service implementation
│ ├── tools/ # MCP tool definitions and handlers
│ │ ├── example-tools.ts # Tool definitions (name, description, schema)
│ │ └── example-tool-handlers.ts # Tool handler implementations
│ ├── types/ # TypeScript type definitions
│ │ └── example-types.ts # Example type definitions
│ ├── config.ts # Configuration management
│ └── index.ts # Main entry point
├── .env.example # Example environment variables
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentationEmpezando
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)
Latest Blog Posts
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/v4lheru/generic-mcp-template'
If you have feedback or need assistance with the MCP directory API, please join our Discord server