MCP-SERVER-TEMPLATE

by vyasa1986

Integrations

  • Loads environment variables from .env files for server configuration, enabling customization of transport types, HTTP settings, authentication, and logging options.

  • Provides HTTP request utilities through the 'serviceRequest' function in httpUtils.ts, supporting authenticated API requests with OAuth2 or API key authentication, retries, and response validation.

  • Implements the HTTP transport layer using Express to handle POST requests to the /mcp endpoint, process JSON-RPC messages, and support stateless request handling.

PLANTILLA DE SERVIDOR MCP

Bienvenido a MCP-SERVER-TEMPLATE , un proyecto de plantilla para implementar un servidor de Protocolo de Contexto de Modelo (MCP) con el SDK oficial de TypeScript. Este proyecto proporciona una base para crear servidores MCP con y sin estado, compatibles con diferentes mecanismos de transporte como HTTP y E/S estándar (stdio).

Tabla de contenido

Descripción general

Este proyecto, MCP-SERVER-TEMPLATE , es una plantilla de inicio basada en TypeScript para crear servidores MCP (Protocolo de Contexto de Modelo) con el SDK oficial. El servidor actúa como interfaz entre las consultas del usuario y la ejecución de la herramienta, permitiendo que los asistentes de IA y los sistemas externos invoquen herramientas dinámicamente, interpreten indicaciones y gestionen recursos de forma modular y extensible.

Capacidades clave

  • Arquitectura modular : el proyecto está dividido en módulos claros para configuración, gestión de transporte, registro de herramientas, orquestación de servidores y utilidades auxiliares, lo que promueve la separación de preocupaciones y la facilidad de mantenimiento.
  • Abstracción de transporte : soporte integrado para múltiples tipos de transporte, incluidos:
    • HTTP (sin estado) : cada solicitud genera una nueva instancia de servidor MCP para lograr un aislamiento completo y cumplimiento con las prácticas RESTful.
    • STDIO (con estado) : para integraciones de escritorio o basadas en CLI que requieren comunicación persistente.
    • Fácilmente extensible a transportes futuros como SSE o WebSocket a través de una interfaz unificada y un patrón de fábrica.
  • Inyección de dependencia : un sistema DI personalizado inyecta servicios como configuración y registro en herramientas y capas de transporte, lo que garantiza la capacidad de prueba y el desacoplamiento.
  • Sistema de herramientas : Las herramientas son clases aisladas que definen:
    • Un nombre y una descripción únicos
    • Un esquema Zod para la validación de entrada
    • Una función execute para manejar la lógica empresarial
    • Esquema JSON generado automáticamente para introspección externa
  • Extensibilidad de indicaciones y recursos : se incluye un andamiaje para soportar plantillas de indicaciones y obtención dinámica de recursos, lo que permite una futura integración con LLM para casos de uso de orquestación de indicaciones o generación aumentada por recuperación (RAG).
  • Pruebas y depuración integradas :
    • Inspector MCP : GUI para visualizar llamadas de herramientas, flujos de entrada/salida y depuración en vivo.
    • Script de prueba HTTP : envía solicitudes JSON-RPC para probar las respuestas del punto final.
    • Pruebas unitarias : marco de pruebas basado en Jest para la lógica de herramientas y utilidades.
  • Configurable y seguro : fácilmente ajustable a través de archivos de configuración .env y de tiempo de ejecución para:
    • Credenciales de autenticación y claves API
    • Puertos de servidor y opciones de transporte
    • Niveles de registro y comportamientos de la sesión

Casos de uso

Esta plantilla es ideal para:

  • Creación de servidores MCP conversacionales
  • Creación de un backend para administrar herramientas invocables para flujos de trabajo basados en LLM

Ya sea que esté creando un prototipo de una cadena de herramientas LLM, integrándola con sistemas propietarios o preparando un backend asistente MCP de producción escalable, este proyecto ofrece una solución lista para extender y completamente estructurada.

Prerrequisitos

  • Node.js (versión 18.x o posterior recomendada)
  • npm (Administrador de paquetes de Node)
  • Git (para clonar el repositorio)

Instalación

  1. Clonar el repositorio:
    git clone xxxx cd mcp-server-template
  2. Instalar dependencias:
    npm install
    Esto instalará tanto las dependencias de producción (por ejemplo, @modelcontextprotocol/sdk , express , axios ) como las dependencias de desarrollo (por ejemplo, typescript , ts-node , jest ) como se define en package.json .
  3. Asegúrese de que el paquete @modelcontextprotocol/sdk (versión ^1.10.1 ) esté instalado, ya que es la dependencia principal para la funcionalidad de MCP.

Configuración

El proyecto utiliza un sistema de configuración gestionado mediante variables de entorno y dos archivos clave en src/core/config/ . La configuración se define en ConfigService y runtimeConfig , lo que permite personalizar los tipos de transporte, el registro y las integraciones con API externas.

Opciones de configuración

  • Variables de entorno (cargadas a través de dotenv en runtimeConfig.ts ):
    • TRANSPORT_TYPE : Establece el mecanismo de transporte ( 'http' o 'stdio' , predeterminado: 'stdio' ).
    • HTTP_PORT : Puerto para el servidor HTTP (predeterminado: 3000 ).
    • HTTP_HOST : Host para el servidor HTTP (predeterminado: localhost ).
    • SESSION_SUPPORT : habilita o deshabilita el soporte de sesión (valor predeterminado: 'true' ).
    • LOG_LEVEL : Nivel de registro (por ejemplo, 'info' , 'debug' , predeterminado: 'info' ).
    • MCP_INSPECTOR_PORT : Puerto para el inspector MCP (predeterminado: 6274 ).

Ejemplo de configuración

Establecer variables de entorno en un archivo .env :

TRANSPORT_TYPE=http HTTP_PORT=3000 HTTP_HOST=localhost LOG_LEVEL=debug

Ejecución del servidor

El servidor se inicia a través del punto de entrada src/index.ts , que orquesta el proceso de inicialización y arranque mediante inyección de dependencia y configuraciones.

Proceso de inicio

  1. Configuración del entorno : index.ts carga variables de entorno utilizando dotenv para garantizar que las configuraciones (por ejemplo, TRANSPORT_TYPE , HTTP_PORT ) estén disponibles.
  2. Inicialización de dependencias : utiliza createDependencies para configurar dependencias compartidas como el registrador y ConfigService .
  3. Configuración de transporte : el transporte ( HttpTransport o StdioTransport ) se configura a través de runtimeConfig en función de la configuración TRANSPORT_TYPE .
  4. Inicialización del servidor : crea una instancia MCPServer con el transporte y las dependencias configuradas.
  5. Inicio del servidor : inicia el servidor de forma asincrónica, gestionando cualquier error fatal registrándolo y saliendo con un código de falla.

Iniciando el servidor

  1. Modo de producción :
    • Construya el proyecto para compilar TypeScript a JavaScript:
      npm run build
      Esto ejecuta tsc para generar la carpeta dist/ con archivos JavaScript compilados.
    • Iniciar el servidor:
      npm start
      Esto ejecuta node dist/index.js para ejecutar el servidor compilado.
    • Para http , el servidor escucha en http://localhost:3000/mcp (puerto y host configurables a través de HTTP_PORT y HTTP_HOST ).
    • Para stdio , el servidor lee y escribe en la consola.
  2. Modo de desarrollo :
    • Ejecute el servidor directamente con TypeScript usando ts-node :
      npm run dev
      Esto ejecuta ts-node src/index.ts , lo que permite una iteración más rápida sin un paso de compilación.

Notas

  • Asegúrese de que las variables de entorno o la configuración runtimeConfig estén configuradas correctamente antes de iniciar el servidor.
  • Verifique la salida de la consola en busca de registros (controlados por LOG_LEVEL ) para verificar que el servidor se inició correctamente.

Pruebas

El proyecto incluye varios scripts para probar el servidor, depurar su comportamiento y verificar la funcionalidad mediante pruebas automatizadas y el Inspector MCP.

Pruebas unitarias

Ejecute pruebas unitarias usando Jest para verificar la funcionalidad de componentes individuales:

npm test

Esto ejecuta jest y ejecuta todas las pruebas definidas en el proyecto (p. ej., herramientas de prueba, utilidades o lógica del servidor). Asegúrate de que los archivos de prueba estén configurados con Jest y ts-jest para compatibilidad con TypeScript.

Prueba de transporte HTTP

Se proporciona un script de prueba para el transporte HTTP para verificar la funcionalidad básica del servidor MCP.

Detalles del script ( src/scripts/testHttpTransport.js )
  • Propósito : prueba el transporte HTTP enviando una solicitud tools/list JSON-RPC al servidor y validando la respuesta.
  • Dependencias :
    • Utiliza axios para enviar solicitudes HTTP POST al servidor.
  • Funcionalidad :
    • Envía una solicitud JSON-RPC 2.0 a http://localhost:3000/mcp con method: 'tools/list' , id: 1 y los encabezados apropiados.
    • Valida la respuesta para garantizar:
      • La respuesta se adhiere a JSON-RPC 2.0 ( jsonrpc: '2.0' ).
      • El id de respuesta coincide con la solicitud ( id: 1 ).
      • La respuesta contiene un campo result con la clave tools esperada.
    • Registra un mensaje de éxito con los datos de respuesta si son válidos, o un error con los datos recibidos si el formato es inesperado.
  • Manejo de errores :
    • Captura y registra cualquier falla de solicitud (por ejemplo, errores de red, servidor que no se ejecuta) con el mensaje de error.
Ejecución de la prueba
  1. Asegúrese de que el servidor se esté ejecutando con TRANSPORT_TYPE configurado en 'http' :
    npm start
  2. Ejecute el script de prueba:
    npm run test:http
    Esto ejecuta ts-node src/scripts/testHttpTransport.ts .
Arranque y prueba combinados

Para iniciar el servidor y ejecutar la prueba HTTP en un solo comando:

npm run mcp:http

Esto ejecuta npm run start & npm run test:http , iniciando el servidor en segundo plano y ejecutando inmediatamente el script de prueba HTTP.

Resultado esperado
  • Caso de éxito : si el servidor responde correctamente, el script registra:
    ✅ HTTP transport responded correctly to tools/list Response: { "tools": [ { "name": "calculator_tool", "description": "Performs basic arithmetic operations: add, subtract, multiply, divide.", "inputSchema": {...} } ] }
  • Caso de error (formato de respuesta no válido) : si el formato de respuesta es inesperado, el script registra:
    ❌ Response received, but unexpected format Received: {...}
  • Caso de falla (la solicitud falla) : si la solicitud falla (por ejemplo, el servidor no se ejecuta), el script registra:
    ❌ HTTP request failed: <error message>
Notas
  • El script asume que el servidor se ejecuta en http://localhost:3000/mcp . Ajuste el endpoint en el script si HTTP_PORT o HTTP_HOST son diferentes.
  • Asegúrese de que herramientas como CalculatorTool estén registradas para verlas en la respuesta de tools/list .

Depuración del inspector MCP

El Inspector MCP es una herramienta poderosa para depurar y monitorear el servidor MCP, proporcionando una interfaz web para inspeccionar el estado y las interacciones del servidor.

Detalles del script ( src/scripts/mcpInspectorScript.ts )
  • Propósito : inicia el Inspector MCP, espera que su interfaz web esté lista y lo abre en un navegador para depurar el servidor MCP localmente usando el transporte stdio.
  • Dependencias :
    • Utiliza child_process para generar el proceso mcp-inspector y ejecutar comandos de apertura del navegador.
    • Utiliza axios para comprobar si se puede acceder a la interfaz web de MCP Inspector.
    • Aprovecha la inyección de dependencia a través de createDependencies() para acceder a ConfigService para la configuración del puerto.
  • Funcionalidad :
    • Genera el proceso mcp-inspector usando npx mcp-inspector node dist/index.js y heredando stdio para la salida de la consola.
    • Implementa waitUntilInspectorIsReady para sondear la interfaz de usuario web (puerto predeterminado: 6274 , configurable a través de MCP_INSPECTOR_PORT ) con reintentos (20 intentos, retraso de 500 ms).
    • Abre la interfaz de usuario web en un navegador específico de la plataforma:
      • macOS: open
      • Windows: start
      • Linux: xdg-open
    • Registra una tabla de resumen de lanzamiento con URL:
      • Interfaz de usuario del inspector MCP: http://localhost:6274 (o puerto configurado)
      • Servidor proxy MCP: http://localhost:6277
  • Manejo de errores :
    • Vuelve a intentarlo si la interfaz web no está disponible de inmediato.
    • Lanza un error y sale si el inspector no logra iniciarse después de varios intentos.
    • Mata el proceso del inspector en caso de falla y registra un mensaje para verificar o reiniciar manualmente.
Ejecución del inspector MCP
  1. Asegúrese de que el servidor esté compilado (por ejemplo, npm run build para generar dist/index.js ).
  2. Ejecute el script MCP Inspector:
    npm run mcp:inspector
    Esto ejecuta ts-node src/scripts/start-mcp-inspector.ts .
Construcción e inspección combinados

Para construir el proyecto y ejecutar el Inspector MCP en un solo comando:

npm run mcp:dev

Esto ejecuta npm run build && npm run mcp:inspector , lo que garantiza que el proyecto esté compilado antes de iniciar el inspector.

Consejos de depuración
  • Utilice la interfaz de usuario de MCP Inspector para supervisar las solicitudes del servidor, las llamadas de herramientas y las respuestas.
  • Verifique la salida de la consola para ver si hay registros de inicio o errores si el inspector no se inicia.
  • Verifique que MCP_INSPECTOR_PORT no esté siendo utilizado por otro servicio.

Formato de código

El proyecto utiliza Prettier para mantener un formato de código consistente en todos los archivos.

Código de formato

Para formatear todos los archivos del proyecto:

npm run format

Esto ejecuta prettier --write . , formateando automáticamente todos los archivos compatibles (por ejemplo, .ts , .js , .json ).

Comprobar formato

Para comprobar si todos los archivos cumplen las reglas de formato de Prettier:

npm run format:check

Esto ejecuta prettier --check . , informando cualquier archivo que no se ajuste a las reglas de formato sin modificarlos.

Estructura del proyecto

  • src/core/config/
    • configService.ts : Implementa ConfigService , una clase para administrar la configuración del servidor. Carga la configuración de las variables de entorno con valores predeterminados para el tipo de transporte, la configuración del servidor HTTP, el nivel de registro, las URL de la API (p. ej., MealDB), las credenciales de autenticación y el puerto del inspector de MCP.
    • runtimeConfig.ts : Define la configuración del entorno de ejecución mediante dotenv para cargar las variables de entorno. Establece la configuración de transporte ( transportType , puerto) y la estrategia de autenticación ( authStrategy , tokenSecret , username , password ).
  • src/core/dependencies/
    • dependencies.ts : Implementa la inyección de dependencias con la interfaz Dependencies , proporcionando un logger (mediante Winston) y una instancia ConfigService . La función createDependencies configura dinámicamente los transportes de registro según transportType (stderr para stdio , stdout para otros, además de un archivo de registro combined.log ) y exporta un logger singleton para uso global.
  • src/core/server/
    • transports/
      • http/
      • server.ts : Implementa HttpTransport , un transporte HTTP sin estado que utiliza Express. Gestiona solicitudes POST /mcp , procesa mensajes JSON-RPC con autenticación opcional mediante token de portador, almacena las respuestas en un ResponseMap y admite el envío asíncrono de respuestas. Se basa en Dependencies inyectadas para el registro y la configuración.
        • stdio/
      • server.ts : Implementa StdioTransport , un transporte que utiliza StdioServerTransport del SDK. Gestiona la comunicación stdin/stdout, inicia y cierra el transporte, y gestiona el envío de mensajes con registro de errores mediante Dependencies (dependencias) inyectadas en las dependencias.
        • baseTransport.ts : Define la interfaz BaseTransport y la clase abstracta AbstractTransport , extendiendo la interfaz Transport del SDK. Especifica métodos ( start , send , close , isRunning ) y controladores de eventos ( onmessage , onerror , onclose ) para las implementaciones de transporte, proporcionando un contrato común para HttpTransport y StdioTransport .
        • transportFactory.ts : Implementa TransportFactory , una clase estática que crea instancias de HttpTransport o StdioTransport según el tipo de TransportConfig (p. ej., 'http' o 'stdio' ). Utiliza la inyección de dependencias con Dependencies para proporcionar registro y configuración, generando un error para los tipos de transporte no compatibles.
    • mcpServer.ts : Implementa MCPServer , la clase principal del servidor que integra el Server del SDK de MCP con un transporte ( HttpTransport o StdioTransport ). Inicializa el servidor, configura un RequestHandler con un ToolRegistry , conecta el transporte y gestiona el paso de mensajes, errores y respuestas mediante Dependencies inyectadas para el registro.
    • requestHandler.ts : Implementa RequestHandler , que registra los controladores para las solicitudes tools/list y tools/call mediante el SDK de MCP. Enumera las herramientas disponibles y ejecuta llamadas a herramientas con argumentos validados (mediante Zod), admite tokens de autenticación y genera errores para herramientas ( ToolNotFoundError ) o argumentos ( ValidationError ) no válidos. Utiliza Dependencies inyectadas para el registro.
  • src/core/toolManagement/
    • toolFactory.ts : Implementa ToolFactory , una clase que crea instancias de herramientas (p. ej., calculatorTool ) mediante inyección de dependencias con Dependencies . Define un tipo genérico ToolConstructor y gestiona los errores de instanciación mediante registro.
    • toolRegistry.ts : Implementa ToolRegistry , una clase que gestiona el registro y la recuperación de herramientas. Utiliza ToolFactory para instanciar herramientas desde toolClasses , las almacena en un Map y proporciona métodos para registrar, obtener y listar herramientas con sus metadatos (nombre, descripción, esquema de entrada). Registra el estado de carga y los errores mediante Dependencies inyectadas por dependencias.
    • errors.ts : define clases de error personalizadas para la gestión de herramientas, incluyendo ToolNotFoundError (se lanza cuando una herramienta solicitada no está registrada) y ValidationError (se lanza cuando los argumentos de la herramienta no pasan la validación, por ejemplo, a través de Zod).
    • types.ts : Define tipos de TypeScript para configuraciones de transporte y autenticación. Incluye TransportType ( 'stdio' , 'sse' , 'http' ), TransportConfig (con opciones para SSE o HTTP y autenticación), SSETransportConfig (puerto, CORS, autenticación), HttpStreamTransportConfig (puerto, modo de respuesta, CORS, sesión, reanudabilidad, autenticación) y AuthConfig (estrategia, credenciales).
  • src/prompts/ : Directorio para plantillas de indicaciones (actualmente vacío, reservado para una futura implementación).
  • src/resources/ : Directorio para la gestión de recursos (actualmente vacío, reservado para futuras implementaciones).
  • src/scripts/
    • testHttpTransport.js : script de prueba para el transporte HTTP para verificar la funcionalidad básica enviando una solicitud tools/list y validando la respuesta.
    • mcpInspectorScript.ts : Script para iniciar el Inspector MCP, esperar a que su interfaz web esté lista y abrirlo en un navegador para depurar el servidor MCP. Utiliza inyección de dependencias para acceder ConfigService y configurar los puertos, y gestiona la apertura del navegador según la plataforma.
  • src/tools/
    • types/
      • ITool.ts : Define la interfaz ITool para las herramientas, especificando name , description , schema (tipo Zod), jsonSchema y el método execute para procesar CallToolRequest JSON-RPC. Exporta Dependencies para las implementaciones de herramientas.
      • baseTool.ts : implementa una clase BaseTool abstracta que reduce el código repetitivo, maneja la inyección de dependencia con Dependencies y convierte automáticamente los esquemas Zod en esquemas JSON usando zod-to-json-schema para introspección, documentación y generación de UI.
      • index.ts : exporta toolClasses como una matriz de constructores de herramientas (por ejemplo, CalculatorTool ) para carga dinámica por parte de ToolRegistry , lo que permite una fácil extensión con nuevas herramientas.
      • calculatorTool.ts : Implementa CalculatorTool , una herramienta concreta que realiza operaciones aritméticas básicas ( add , subtract , multiply , divide ) con validación de entrada a través de Zod, manejo de errores (por ejemplo, división por cero usando HttpError ) y registro a través de Dependencies inyectadas por dependencia.
    • utils/
      • httpUtils.ts : Proporciona funciones de utilidad para operaciones HTTP, incluyendo serviceRequest para realizar solicitudes HTTP autenticadas (OAuth2 o clave API) con reintentos y gestión de tiempos de espera, getAuthToken para obtener y almacenar en caché tokens OAuth2, buildQueryString para crear cadenas de consulta y validateResponse para la validación de respuestas. Se integra con ConfigService para la configuración.
      • index.ts : Exporta funciones de utilidad para su uso en herramientas y otros componentes.
  • src/index.ts : Punto de entrada para iniciar el servidor MCP. Carga variables de entorno mediante dotenv , inicializa dependencias con createDependencies , crea una instancia MCPServer con el transporte de runtimeConfig e inicia el servidor asincrónicamente, gestionando errores fatales mediante registro y cierre.

Solución de problemas

  • Error "Servidor no inicializado" :
    • Asegúrese de que los controladores estén registrados y las capacidades estén configuradas en la configuración MCPServer (a través de RequestHandler ).
    • Verifique que el transporte esté conectado inmediatamente antes de manejar cada solicitud (para HTTP).
    • Utilice el enfoque sin estado (nuevo servidor por solicitud) si el error persiste con un servidor reutilizado.
  • Problemas de rendimiento :
    • Crear un nuevo servidor por solicitud puede afectar el rendimiento con cargas de trabajo elevadas. Considere reutilizar un único MCPServer con administración de sesiones si es necesario, pero realice pruebas exhaustivas.
  • Problemas de configuración :
    • Asegúrese de que las variables de entorno estén configuradas correctamente en un archivo .env o se pasen directamente al proceso.
    • Verifique los registros ConfigService para verificar las configuraciones cargadas si fallan las integraciones de API externas (por ejemplo, MealDB, OMDB).
  • Problemas de registro :
    • Verifique que la variable de entorno LOG_LEVEL coincida con los niveles esperados (por ejemplo, 'info' , 'debug' ).
    • Para el transporte stdio , asegúrese de que los registros se dirijan a stderr según lo previsto; verifique combined.log para ver los registros basados en archivos.
  • Problemas de transporte :
    • Para HttpTransport , asegúrese de que el puerto esté disponible y que no se estén ejecutando servicios conflictivos.
    • Para StdioTransport , verifique la disponibilidad de stdin/stdout si no se procesan mensajes.
    • Si TransportFactory falla, verifique que TRANSPORT_TYPE coincida con un tipo admitido ( 'http' o 'stdio' ) en la configuración.
  • Problemas de manejo de solicitudes :
    • Si tools/list o las solicitudes tools/call fallan, verifique ToolRegistry para ver las herramientas registradas.
    • Valide los argumentos de la herramienta contra el esquema en CallToolRequestSchema para evitar ValidationError .
    • Asegúrese de que se proporcionen tokens de autenticación si las herramientas lo requieren.
  • Problemas de gestión de herramientas :
    • Si las herramientas no se pueden cargar, verifique que toolClasses en src/tools/index.ts incluya implementaciones de herramientas válidas.
    • Verifique los registros ToolFactory para detectar errores de instanciación y asegurarse de que Dependencies se inyecten correctamente.
  • Problemas del inspector MCP :
    • Si el Inspector MCP no puede iniciarse, verifique que MCP_INSPECTOR_PORT (predeterminado: 6274 ) no esté en uso.
    • Asegúrese de que dist/index.js exista ejecutando npm run build antes de iniciar el script.
    • Verifique la salida de la consola para detectar errores durante el inicio, como problemas de red o dependencias faltantes.
  • Problemas de solicitud HTTP :
    • Si serviceRequest falla, verifique las configuraciones authType , authEndpoint , clientId , clientSecret o apiKey en ConfigService .
    • Compruebe si hay problemas de red o errores del servidor (5xx) que puedan provocar reintentos.
    • Asegúrese de que la URL y el método de solicitud sean correctos y valide el esquema de respuesta con validateResponse .
  • Problemas de prueba de transporte HTTP :
    • Si el script testHttpTransport.js falla, asegúrese de que el servidor esté ejecutándose con TRANSPORT_TYPE='http' y escuchando en http://localhost:3000/mcp .
    • Verifique que el puerto y el host coincidan con el endpoint del script (ajuste si HTTP_PORT o HTTP_HOST son diferentes).
    • Verifique las herramientas registradas en ToolRegistry ; una matriz tools vacía puede indicar un problema de carga de herramientas.
  • Problemas de prueba :
    • Si npm test falla, asegúrese de que Jest esté configurado correctamente con ts-jest para compatibilidad con TypeScript y verifique que existan los archivos de prueba.
    • Si npm run mcp:inspector o npm run mcp:dev falla, verifique que @modelcontextprotocol/inspector esté instalado y que el servidor esté compilado ( dist/index.js existe).
  • Problemas de formato :
    • Si npm run format:check informa problemas, ejecute npm run format para corregir el formato automáticamente o ajuste manualmente los archivos para que coincidan con las reglas de Prettier.

Contribuyendo

No dudes en enviar incidencias o solicitudes de incorporación de cambios en el repositorio de GitHub. ¡Agradecemos cualquier contribución para mejorar la implementación del servidor, añadir nuevas funciones u optimizar el rendimiento!

Licencia

Este proyecto está licenciado bajo la licencia ISC. Consulte el archivo LICENSE para más detalles.

Expresiones de gratitud

-
security - not tested
F
license - not found
-
quality - not tested

Una plantilla de inicio basada en TypeScript para crear servidores de protocolo de contexto de modelo que permite a los asistentes de IA llamar dinámicamente a herramientas, interpretar indicaciones y administrar recursos a través de una arquitectura modular con soporte para múltiples métodos de transporte.

  1. Table of Contents
    1. Overview
      1. Key Capabilities
      2. Use Cases
    2. Prerequisites
      1. Installation
        1. Configuration
          1. Configuration Options
          2. Example Configuration
        2. Running the Server
          1. Startup Process
          2. Starting the Server
          3. Notes
        3. Testing
          1. Unit Tests
          2. HTTP Transport Test
          3. MCP Inspector Debugging
        4. Code Formatting
          1. Format Code
          2. Check Formatting
        5. Project Structure
          1. Troubleshooting
            1. Contributing
              1. License
                1. Acknowledgments

                  Related MCP Servers

                  • A
                    security
                    F
                    license
                    A
                    quality
                    A starter template for building Model Context Protocol servers that can be integrated with Cursor or Claude Desktop, allowing developers to create custom tools and extensions for AI assistants.
                    Last updated -
                    1
                    28
                    9
                    TypeScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A TypeScript implementation of a Model Context Protocol server that provides a frictionless framework for developers to build and deploy AI tools and prompts, focusing on developer experience with zero boilerplate and automatic tool registration.
                    Last updated -
                    6
                    TypeScript
                    MIT License
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.
                    Last updated -
                    67
                    TypeScript
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A Model Context Protocol implementation for managing and serving AI prompts with a TypeScript-based architecture in a monorepo structure.
                    Last updated -
                    28,526,583
                    2
                    TypeScript

                  View all related MCP servers

                  ID: 6l41001l9o