Texto estándar de MCP: Servidor de protocolo de contexto de modelo
Este servidor implementa el Protocolo de Contexto de Modelo (MCP) para uso global como código estándar. Proporciona una forma estandarizada de conectar modelos de IA a diferentes fuentes de datos y herramientas mediante dicho protocolo.
Características
Implementa el transporte de eventos enviados por el servidor (SSE) de MCP
Proporciona una estructura robusta para construir servidores MCP personalizados
Incluye herramientas de ejemplo con definiciones de tipos adecuadas
Autenticación segura con clave API
Capacidades de registro con diferentes niveles de gravedad
Gestión de sesiones para múltiples conexiones de clientes
Manejo elegante del apagado para señales SIGINT y SIGTERM
Related MCP server: SourceSync.ai MCP Server
Herramientas
El servidor actualmente incluye la siguiente herramienta de ejemplo:
calculator: Realiza operaciones aritméticas básicas (sumar, restar, multiplicar, dividir)
Para obtener información sobre cómo agregar sus propias herramientas personalizadas, consulte la sección Ampliación del texto estándar .
Configuración
La configuración del servidor está centralizada en src/config.ts . Esto facilita el ajuste de la configuración sin modificar varios archivos.
// Essential configuration options
export const config = {
server: {
name: "mcp-boilerplate",
version: "1.0.0",
port: parseInt(process.env.PORT || "4005"),
host: process.env.HOST || "localhost",
apiKey: process.env.API_KEY || "dev_key",
},
sse: {
// How often to send keepalive messages (in milliseconds)
keepaliveInterval: 30000,
// Whether to send ping events in addition to comments
usePingEvents: true,
// Initial connection message
sendConnectedEvent: true,
},
tools: {
// Number of retries for failed tool executions
maxRetries: 3,
// Delay between retries (in milliseconds)
retryDelay: 1000,
// Whether to send notifications about tool execution status
sendNotifications: true,
},
logging: {
// Default log level
defaultLevel: "debug",
// How often to send log messages (in milliseconds)
logMessageInterval: 10000,
},
};Solución de problemas de tiempos de espera de SSE
Si experimenta un error de tiempo de espera del cuerpo con su conexión MCP:
Disminuya
keepaliveIntervalpara enviar mensajes de mantenimiento más frecuentes (por ejemplo, 15 000 ms)Asegúrese de que
usePingEventsesté habilitado para una mayor estabilidad de la conexiónComprueba si hay tiempos de espera de proxy si estás usando un servidor proxy
Configuración
Instalar dependencias:
npm installCrea un archivo
.envcon las siguientes variables:
PORT=4005
API_KEY=your_api_keyConstruir el proyecto:
npm run buildIniciar el servidor:
npm run start:sseDesarrollo
# Start in development mode with hot reloading
npm run start
# Start with PM2 for production
npm run start:pm2
# Development mode with nodemon
npm run devPuntos finales de API
/health: Punto final de verificación de estado que devuelve el estado y la versión del servidor/sse: punto final SSE para establecer conexiones MCP (requiere clave API)/messages: Punto final de manejo de mensajes para la comunicación cliente-servidor
Configuración de MCP
Para conectar un MCP a este servidor, agregue la siguiente configuración:
{
"mcpServers": {
"mcp-server": {
"url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}"
}
}
}Ampliación del texto modelo
Agregar herramientas personalizadas
Siga estos pasos para agregar una nueva herramienta al servidor MCP:
Crea tu manejador de herramientas :
Agregue su nuevo controlador de herramientas en el archivo
src/tools.tso cree un nuevo archivo en el directoriosrc/toolsLa herramienta debe seguir la interfaz
ToolHandler
Configura tu herramienta :
Agregue la configuración de su herramienta a la matriz
toolConfigsensrc/tools.tsDefine el nombre, la descripción, el esquema de entrada y el controlador para tu herramienta
Exporta y registra tu herramienta :
Si creó un archivo separado, exporte su controlador e impórtelo en
src/tools.tsAsegúrese de que su herramienta esté registrada correctamente en la matriz
toolConfigs
Ejemplo:
// In src/tools.ts (adding directly to the toolConfigs array)
{
name: "myTool",
description: "My tool description",
inputSchema: {
type: "object" as const,
properties: {},
required: [],
},
handler: async () => {
return createSuccessResult({ result: "Tool result" });
},
}Manejo de errores
El servidor implementa un manejo integral de errores:
Todas las operaciones están envueltas en bloques try/catch
Validación adecuada de parámetros y entradas
Mensajes de error apropiados para una mejor depuración
Funciones auxiliares para crear respuestas estandarizadas de errores y éxitos
Consideraciones de seguridad
Autenticación de clave API para todas las conexiones
Validación de tipos para todos los parámetros
Sin información confidencial codificada
Manejo adecuado de errores para evitar fugas de información
Gestión de transporte basada en sesiones
Características del protocolo MCP
Esta plantilla admite las funciones principales de MCP:
Herramientas: Enumere y llame herramientas con la validación de parámetros adecuada
Registro: varios niveles de gravedad (depuración, información, aviso, advertencia, error, crítico, alerta, emergencia)
Configuración del servidor: nombre, versión y capacidades
Gestión de sesiones
El servidor administra las sesiones de cliente a través de:
ID de sesión únicos para cada conexión de cliente
Seguimiento de transportes activos por ID de sesión
Limpieza automática de sesiones desconectadas
Seguimiento del estado de la conexión
Recursos adicionales
Licencia
Este proyecto está licenciado bajo la licencia MIT : consulte el archivo de LICENCIA para obtener más detalles.
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.